diff --git a/kafka-rest.openapi.yaml b/kafka-rest.openapi.yaml new file mode 100644 index 00000000..9fd0449c --- /dev/null +++ b/kafka-rest.openapi.yaml @@ -0,0 +1,4545 @@ +# Taken from https://github.com/confluentinc/kafka-rest/blob/b7b1bba059e878dd28d2dbc5c51d25d3d747bd16/api/v3/openapi.yaml +openapi: 3.0.0 + +info: + title: REST Admin API + version: 3.0.0 + contact: + name: Kafka REST Team + x-api-group: v3 + x-audience: external-public + x-tag-group: Kafka API (%s) + +paths: + /internal/kafka/v3/clusters: + x-audience: component-internal + get: + summary: 'List Clusters' + operationId: listKafkaClusters + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + 'Return a list of known Kafka clusters. Currently both Kafka and Kafka REST + Proxy are only aware of the Kafka cluster pointed at by the + ``bootstrap.servers`` configuration. Therefore only one Kafka cluster will be returned in the + response.' + tags: + - Cluster (v3) + responses: + '200': + $ref: '#/components/responses/ListClustersResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'Get Cluster' + operationId: getKafkaCluster + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the Kafka cluster with the specified ``cluster_id``. + tags: + - Cluster (v3) + responses: + '200': + $ref: '#/components/responses/GetClusterResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/acls:batch: + parameters: + - $ref: '#/components/parameters/ClusterId' + + post: + summary: 'Batch Create ACLs' + operationId: batchCreateKafkaAcls + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Create ACLs. + tags: + - ACL (v3) + requestBody: + $ref: '#/components/requestBodies/BatchCreateAclRequest' + responses: + '201': + description: 'Created' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_CreateAcls' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/acls: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List ACLs' + operationId: getKafkaAcls + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return a list of ACLs that match the search criteria. + tags: + - ACL (v3) + parameters: + - $ref: '#/components/parameters/AclResourceType' + - $ref: '#/components/parameters/AclResourceName' + - $ref: '#/components/parameters/AclPatternType' + - $ref: '#/components/parameters/AclPrincipal' + - $ref: '#/components/parameters/AclHost' + - $ref: '#/components/parameters/AclOperation' + - $ref: '#/components/parameters/AclPermission' + responses: + '200': + $ref: '#/components/responses/SearchAclsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + post: + summary: 'Create an ACL' + operationId: createKafkaAcls + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Create an ACL. + tags: + - ACL (v3) + requestBody: + $ref: '#/components/requestBodies/CreateAclRequest' + responses: + '201': + description: 'Created' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_CreateAcls' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + delete: + summary: 'Delete ACLs' + operationId: deleteKafkaAcls + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Delete the ACLs that match the search criteria. + tags: + - ACL (v3) + parameters: + - $ref: '#/components/parameters/AclResourceTypeRequired' + - $ref: '#/components/parameters/AclResourceName' + - $ref: '#/components/parameters/AclPatternTypeRequired' + - $ref: '#/components/parameters/AclPrincipal' + - $ref: '#/components/parameters/AclHost' + - $ref: '#/components/parameters/AclOperationRequired' + - $ref: '#/components/parameters/AclPermissionRequired' + responses: + '200': + $ref: '#/components/responses/DeleteAclsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_DeleteAcls' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/broker-configs: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List Dynamic Broker Configs' + operationId: listKafkaClusterConfigs + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return a list of dynamic cluster-wide broker configuration parameters for the specified Kafka + cluster. Returns an empty list if there are no dynamic cluster-wide broker configuration parameters. + + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/ListClusterConfigsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/broker-configs:alter: + parameters: + - $ref: '#/components/parameters/ClusterId' + + post: + summary: 'Batch Alter Dynamic Broker Configs' + operationId: updateKafkaClusterConfigs + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update or delete a set of dynamic cluster-wide broker configuration parameters. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/AlterClusterConfigBatchRequest' + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/broker-configs/{name}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConfigName' + + get: + summary: 'Get Dynamic Broker Config' + operationId: getKafkaClusterConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the dynamic cluster-wide broker configuration parameter specified by ``name``. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/GetClusterConfigResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + put: + summary: 'Update Dynamic Broker Config' + operationId: updateKafkaClusterConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update the dynamic cluster-wide broker configuration parameter specified by ``name``. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/UpdateClusterConfigRequest' + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + delete: + summary: 'Reset Dynamic Broker Config' + operationId: deleteKafkaClusterConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Reset the configuration parameter specified by ``name`` to its + default value by deleting a dynamic cluster-wide configuration. + tags: + - Configs (v3) + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List Brokers' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return a list of brokers that belong to the specified + Kafka cluster. + tags: + - Broker (v3) + responses: + '200': + $ref: '#/components/responses/ListBrokersResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/{broker_id}: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/BrokerId' + + get: + summary: 'Get Broker' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the broker specified by ``broker_id``. + tags: + - Broker (v3) + responses: + '200': + $ref: '#/components/responses/GetBrokerResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/-/configs: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List Dynamic Broker Configs' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of dynamic configuration parameters for all the brokers in the given Kafka cluster. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/ListBrokerConfigsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/{broker_id}/configs: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/BrokerId' + + get: + summary: 'List Broker Configs' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of configuration parameters that belong to the specified Kafka broker. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/ListBrokerConfigsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/{broker_id}/configs:alter: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/BrokerId' + + post: + summary: 'Batch Alter Broker Configs' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update or delete a set of broker configuration parameters. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/AlterBrokerConfigBatchRequest' + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/{broker_id}/configs/{name}: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/BrokerId' + - $ref: '#/components/parameters/ConfigName' + + get: + summary: 'Get Broker Config' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the configuration parameter specified by ``name``. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/GetBrokerConfigResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + put: + summary: 'Update Broker Config' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update the configuration parameter specified by ``name``. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/UpdateBrokerConfigRequest' + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + delete: + summary: 'Reset Broker Config' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Reset the configuration parameter specified by ``name`` to its default value. + tags: + - Configs (v3) + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/brokers/{broker_id}/partition-replicas: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/BrokerId' + + get: + summary: 'List Replicas by Broker' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of replicas assigned to the specified broker. + tags: + - Broker (v3) + - Replica (v3) + responses: + '200': + $ref: '#/components/responses/SearchReplicasByBrokerResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List Consumer Groups' + operationId: listKafkaConsumerGroups + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of consumer groups that belong to the specified + Kafka cluster. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/ListConsumerGroupsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + + get: + summary: 'Get Consumer Group' + operationId: getKafkaConsumerGroup + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the consumer group specified by the ``consumer_group_id``. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/GetConsumerGroupResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + + get: + summary: 'List Consumers' + operationId: listKafkaConsumers + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return a list of consumers that belong to the specified consumer + group. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/ListConsumersResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/lag-summary: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + + get: + summary: 'Get Consumer Group Lag Summary' + operationId: getKafkaConsumerGroupLagSummary + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) [![Available in dedicated clusters only](https://img.shields.io/badge/-Available%20in%20dedicated%20clusters%20only-%23bc8540)](https://docs.confluent.io/cloud/current/clusters/cluster-types.html#dedicated-cluster) + + Return the maximum and total lag of the consumers belonging to the + specified consumer group. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/GetConsumerGroupLagSummaryResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/lags: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + + get: + summary: 'List Consumer Lags' + operationId: listKafkaConsumerLags + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) [![Available in dedicated clusters only](https://img.shields.io/badge/-Available%20in%20dedicated%20clusters%20only-%23bc8540)](https://docs.confluent.io/cloud/current/clusters/cluster-types.html#dedicated-cluster) + + Return a list of consumer lags of the consumers belonging to the + specified consumer group. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/ListConsumerLagsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/lags/{topic_name}/partitions/{partition_id}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + + get: + summary: 'Get Consumer Lag' + operationId: getKafkaConsumerLag + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) [![Available in dedicated clusters only](https://img.shields.io/badge/-Available%20in%20dedicated%20clusters%20only-%23bc8540)](https://docs.confluent.io/cloud/current/clusters/cluster-types.html#dedicated-cluster) + + Return the consumer lag on a partition with the given `partition_id`. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/GetConsumerLagResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers/{consumer_id}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + - $ref: '#/components/parameters/ConsumerId' + + get: + summary: 'Get Consumer' + operationId: getKafkaConsumer + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the consumer specified by the ``consumer_id``. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/GetConsumerResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers/{consumer_id}/assignments: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + - $ref: '#/components/parameters/ConsumerId' + + get: + summary: 'List Consumer Assignments' + operationId: listKafkaConsumerAssignment + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return a list of partition assignments for the specified consumer. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/ListConsumerAssignmentsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers/{consumer_id}/assignments/{topic_name}/partitions/{partition_id}: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/ConsumerGroupId' + - $ref: '#/components/parameters/ConsumerId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + + get: + summary: 'Get Consumer Assignment' + operationId: getKafkaConsumerAssignment + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return information about the assignment for the specified consumer + to the specified partition. + tags: + - Consumer Group (v3) + responses: + '200': + $ref: '#/components/responses/GetConsumerAssignmentResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List Topics' + operationId: listKafkaTopics + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of topics that belong to the specified Kafka cluster. + parameters: + # See NOTE in the `IncludeAuthorizedOperationsCamelCase` parameter definition + - $ref: '#/components/parameters/IncludeAuthorizedOperationsCamelCase' + tags: + - Topic (v3) + responses: + '200': + $ref: '#/components/responses/ListTopicsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + post: + summary: 'Create Topic' + operationId: createKafkaTopic + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Create a topic. + Also supports a dry-run mode that only validates whether the topic creation would succeed + if the ``validate_only`` request property is explicitly specified and set to true. + tags: + - Topic (v3) + requestBody: + $ref: '#/components/requestBodies/CreateTopicRequest' + responses: + # returned when dry-run mode is being used and a topic has not been created + '200': + $ref: '#/components/responses/CreateTopicResponse' + # returned in regular mode when a topic has been created + '201': + $ref: '#/components/responses/CreateTopicResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_CreateTopic' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + get: + summary: 'Get Topic' + operationId: getKafkaTopic + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the topic with the given `topic_name`. + tags: + - Topic (v3) + parameters: + - $ref: '#/components/parameters/IncludeAuthorizedOperations' + responses: + '200': + $ref: '#/components/responses/GetTopicResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + patch: + summary: 'Update Partition Count' + operationId: updatePartitionCountKafkaTopic + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Increase the number of partitions for a topic. + tags: + - Topic (v3) + requestBody: + $ref: '#/components/requestBodies/UpdatePartitionCountRequest' + responses: + '200': + $ref: '#/components/responses/GetTopicResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_UpdatePartitionCountTopic' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + delete: + summary: 'Delete Topic' + operationId: deleteKafkaTopic + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Delete the topic with the given `topic_name`. + tags: + - Topic (v3) + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/configs: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + get: + summary: 'List Topic Configs' + operationId: listKafkaTopicConfigs + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of configuration parameters that belong to the specified topic. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/ListTopicConfigsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/configs:alter: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + post: + summary: 'Batch Alter Topic Configs' + operationId: updateKafkaTopicConfigBatch + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update or delete a set of topic configuration parameters. + Also supports a dry-run mode that only validates whether the operation would succeed if the + ``validate_only`` request property is explicitly specified and set to true. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/AlterTopicConfigBatchRequest' + responses: + # returned in both regular and dry-run modes + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/configs/{name}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/ConfigName' + + get: + summary: 'Get Topic Config' + operationId: getKafkaTopicConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the configuration parameter with the given `name`. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/GetTopicConfigResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + put: + summary: 'Update Topic Config' + operationId: updateKafkaTopicConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Update the configuration parameter with given `name`. + tags: + - Configs (v3) + requestBody: + $ref: '#/components/requestBodies/UpdateTopicConfigRequest' + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + delete: + summary: 'Reset Topic Config' + operationId: deleteKafkaTopicConfig + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Reset the configuration parameter with given `name` to its default value. + tags: + - Configs (v3) + responses: + '204': + description: 'No Content' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + get: + summary: 'List Partitions' + operationId: listKafkaPartitions + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of partitions that belong to the specified topic. + tags: + - Partition (v3) + responses: + '200': + $ref: '#/components/responses/ListPartitionsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + + get: + summary: 'Get Partition' + operationId: getKafkaPartition + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the partition with the given `partition_id`. + tags: + - Partition (v3) + responses: + '200': + $ref: '#/components/responses/GetPartitionResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/-/partitions/-/reassignment: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List All Replica Reassignments' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of all ongoing replica reassignments in the given Kafka cluster. + tags: + - Partition (v3) + responses: + '200': + $ref: '#/components/responses/ListAllReassignmentsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/-/reassignment: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + get: + summary: 'List Replica Reassignments By Topic' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of ongoing replica reassignments for the given topic. + tags: + - Partition (v3) + responses: + '200': + $ref: '#/components/responses/SearchReassignmentsByTopicResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/reassignment: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + + get: + summary: 'Get Replica Reassignments' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of ongoing replica reassignments for the given partition. + tags: + - Partition (v3) + responses: + '200': + $ref: '#/components/responses/GetReassignmentResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/replicas: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + + get: + summary: 'List Replicas' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of replicas for the specified partition. + tags: + - Replica (v3) + responses: + '200': + $ref: '#/components/responses/ListReplicasResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/replicas/{broker_id}: + x-audience: component-internal + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + - $ref: '#/components/parameters/PartitionId' + - $ref: '#/components/parameters/BrokerId' + + get: + summary: 'Get Replica' + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the replica for the specified partition assigned to the specified broker. + tags: + - Replica (v3) + responses: + '200': + $ref: '#/components/responses/GetReplicaResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/-/configs: + parameters: + - $ref: '#/components/parameters/ClusterId' + + get: + summary: 'List All Topic Configs' + operationId: listKafkaAllTopicConfigs + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Return the list of configuration parameters for all topics hosted by the specified + cluster. + tags: + - Configs (v3) + responses: + '200': + $ref: '#/components/responses/ListTopicConfigsResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/records: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + post: + summary: 'Produce Records' + operationId: produceRecord + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Produce records to the given topic, returning delivery reports for each + record produced. This API can be used in streaming mode by setting "Transfer-Encoding: + chunked" header. For as long as the connection is kept open, the server will + keep accepting records. Records are streamed to and from the server as Concatenated + JSON. For each record sent to the server, the server will + asynchronously send back a delivery report, in the same order, each with its own + error_code. An error_code of 200 indicates success. The HTTP status code will be HTTP + 200 OK as long as the connection is successfully established. To identify records + that have encountered an error, check the error_code of each delivery report. + + Note that the cluster_id is validated only when running in Confluent + Cloud. + + tags: + - Records (v3) + requestBody: + $ref: '#/components/requestBodies/ProduceRequest' + responses: + '200': + $ref: '#/components/responses/ProduceResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_ProduceRecords' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '413': + $ref: '#/components/responses/RequestEntityTooLargeErrorResponse' + '415': + $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' + '422': + $ref: '#/components/responses/UnprocessableEntity_ProduceRecord' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + + /internal/kafka/v3/clusters/{cluster_id}/topics/{topic_name}/records:batch: + parameters: + - $ref: '#/components/parameters/ClusterId' + - $ref: '#/components/parameters/TopicName' + + post: + summary: 'Produce Records Batch' + operationId: produceRecordsBatch + description: |- + [![Generally Available](https://img.shields.io/badge/Lifecycle%20Stage-Generally%20Available-%2345c6e8)](#section/Versioning/API-Lifecycle-Policy) + + Produce a batch of records to the given topic, returning delivery reports for each record produced. + To identify records that have encountered an error, check the error_code of each delivery report. + tags: + - Records (v3) + requestBody: + $ref: '#/components/requestBodies/ProduceBatchRequest' + responses: + '207': + $ref: '#/components/responses/ProduceBatchResponse' + '400': + $ref: '#/components/responses/BadRequestErrorResponse_ProduceRecords' + '401': + $ref: '#/components/responses/UnauthorizedErrorResponse' + '403': + $ref: '#/components/responses/ForbiddenErrorResponse' + '404': + $ref: '#/components/responses/NotFoundErrorResponse' + '415': + $ref: '#/components/responses/UnsupportedMediaTypeErrorResponse' + '429': + $ref: '#/components/responses/TooManyRequestsErrorResponse' + '5XX': + $ref: '#/components/responses/ServerErrorResponse' + +components: + parameters: + AclHost: + name: 'host' + description: 'The ACL host.' + in: query + required: false + schema: + type: string + + AclOperation: + name: 'operation' + description: 'The ACL operation.' + in: query + required: false + schema: + $ref: '#/components/schemas/AclOperation' + + AclOperationRequired: + name: 'operation' + description: 'The ACL operation.' + in: query + required: true + schema: + $ref: '#/components/schemas/AclOperation' + + AclPatternType: + name: 'pattern_type' + description: 'The ACL pattern type.' + in: query + required: false + schema: + $ref: '#/components/schemas/AclPatternType' + + AclPatternTypeRequired: + name: 'pattern_type' + description: 'The ACL pattern type.' + in: query + required: true + schema: + $ref: '#/components/schemas/AclPatternType' + + AclPermission: + name: 'permission' + description: 'The ACL permission.' + in: query + required: false + schema: + $ref: '#/components/schemas/AclPermission' + + AclPermissionRequired: + name: 'permission' + description: 'The ACL permission.' + in: query + required: true + schema: + $ref: '#/components/schemas/AclPermission' + + AclPrincipal: + name: 'principal' + description: 'The ACL principal.' + in: query + required: false + schema: + type: string + + AclResourceName: + name: 'resource_name' + description: 'The ACL resource name.' + in: query + required: false + schema: + type: string + + AclResourceType: + name: 'resource_type' + description: 'The ACL resource type.' + in: query + required: false + schema: + $ref: '#/components/schemas/AclResourceType' + + AclResourceTypeRequired: + name: 'resource_type' + description: 'The ACL resource type.' + in: query + required: true + schema: + $ref: '#/components/schemas/AclResourceType' + + BrokerId: + name: 'broker_id' + description: 'The broker ID.' + in: path + required: true + schema: + type: integer + example: 1 + + ClusterId: + name: 'cluster_id' + description: 'The Kafka cluster ID.' + in: path + required: true + schema: + type: string + example: 'cluster-1' + + ConfigName: + name: 'name' + description: 'The configuration parameter name.' + in: path + required: true + schema: + type: string + example: 'compression.type' + + ConsumerGroupId: + name: 'consumer_group_id' + description: 'The consumer group ID.' + in: path + required: true + schema: + type: string + example: 'consumer-group-1' + + ConsumerId: + name: 'consumer_id' + description: 'The consumer ID.' + in: path + required: true + schema: + type: string + example: 'consumer-1' + + IncludeAuthorizedOperations: + name: 'include_authorized_operations' + description: 'Specify if authorized operations should be included in the response.' + in: query + required: false + schema: + type: boolean + + # NOTE: Kafka-rest's OpenAPI spec has a known undocumented inconsistency where + # the list topics operation expects the includeAuthorizedOperations query parameter + # whereas the get topic operation expects the include_authorized_operations query parameter. + # We declare both here in our version of the spec to ensure that it is at least documented. + # The inconsistency has been set in stone for a while and is unlikely to change in the near future. + IncludeAuthorizedOperationsCamelCase: + name: 'includeAuthorizedOperations' + description: 'Specify if authorized operations should be included in the response, camelCase style.' + in: query + required: false + schema: + type: boolean + + PartitionId: + name: 'partition_id' + description: 'The partition ID.' + in: path + required: true + schema: + type: integer + example: 1 + + TopicName: + name: 'topic_name' + description: 'The topic name.' + in: path + required: true + schema: + type: string + example: topic-1 + + schemas: + AbstractConfigData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - name + - is_default + - is_read_only + - is_sensitive + - source + - synonyms + properties: + cluster_id: + type: string + name: + type: string + value: + type: string + nullable: true + is_default: + type: boolean + is_read_only: + type: boolean + is_sensitive: + type: boolean + source: + $ref: '#/components/schemas/ConfigSource' + synonyms: + type: array + items: + $ref: '#/components/schemas/ConfigSynonymData' + + AclData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - resource_type + - resource_name + - pattern_type + - principal + - host + - operation + - permission + properties: + cluster_id: + type: string + resource_type: + $ref: '#/components/schemas/AclResourceType' + resource_name: + type: string + pattern_type: + $ref: '#/components/schemas/AclPatternType' + principal: + type: string + host: + type: string + operation: + $ref: '#/components/schemas/AclOperation' + permission: + $ref: '#/components/schemas/AclPermission' + + AclDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/AclData' + + AclOperation: + type: string + x-extensible-enum: + - UNKNOWN + - ANY + - ALL + - READ + - WRITE + - CREATE + - DELETE + - ALTER + - DESCRIBE + - CLUSTER_ACTION + - DESCRIBE_CONFIGS + - ALTER_CONFIGS + - IDEMPOTENT_WRITE + + AclPatternType: + type: string + x-extensible-enum: + - UNKNOWN + - ANY + - MATCH + - LITERAL + - PREFIXED + + AclPermission: + type: string + x-extensible-enum: + - UNKNOWN + - ANY + - DENY + - ALLOW + + AclResourceType: + type: string + enum: + - UNKNOWN + - ANY + - TOPIC + - GROUP + - CLUSTER + - TRANSACTIONAL_ID + - DELEGATION_TOKEN + + AlterConfigBatchRequestData: + type: object + required: + - data + properties: + data: + type: array + items: + type: object + required: + - name + properties: + name: + type: string + value: + type: string + nullable: true + operation: + type: string + x-extensible-enum: + - SET + - DELETE + nullable: true + validate_only: + type: boolean + + AnyValue: + nullable: true + + AuthorizedOperations: + type: array + items: + type: string + x-extensible-enum: + - UNKNOWN + - ALL + - READ + - WRITE + - CREATE + - DELETE + - ALTER + - DESCRIBE + - CLUSTER_ACTION + - DESCRIBE_CONFIGS + - ALTER_CONFIGS + - IDEMPOTENT_WRITE + + BrokerConfigData: + allOf: + - $ref: '#/components/schemas/AbstractConfigData' + - type: object + required: + - broker_id + properties: + broker_id: + type: integer + + BrokerConfigDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/BrokerConfigData' + + BrokerData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - broker_id + - configs + - partition_replicas + properties: + cluster_id: + type: string + broker_id: + type: integer + host: + type: string + nullable: true + port: + type: integer + nullable: true + rack: + type: string + nullable: true + configs: + $ref: '#/components/schemas/Relationship' + partition_replicas: + $ref: '#/components/schemas/Relationship' + + BrokerDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/BrokerData' + + ClusterConfigData: + allOf: + - $ref: '#/components/schemas/AbstractConfigData' + - type: object + required: + - config_type + properties: + config_type: + $ref: '#/components/schemas/ClusterConfigType' + + ClusterConfigDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ClusterConfigData' + + ClusterConfigType: + type: string + x-extensible-enum: + - BROKER + + ClusterData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - acls + - brokers + - broker_configs + - consumer_groups + - topics + - partition_reassignments + properties: + cluster_id: + type: string + controller: + $ref: '#/components/schemas/Relationship' + acls: + $ref: '#/components/schemas/Relationship' + brokers: + $ref: '#/components/schemas/Relationship' + broker_configs: + $ref: '#/components/schemas/Relationship' + consumer_groups: + $ref: '#/components/schemas/Relationship' + topics: + $ref: '#/components/schemas/Relationship' + partition_reassignments: + $ref: '#/components/schemas/Relationship' + + ClusterDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ClusterData' + + CreateAclRequestData: + type: object + required: + - resource_type + - resource_name + - pattern_type + - principal + - host + - operation + - permission + properties: + resource_type: + $ref: '#/components/schemas/AclResourceType' + resource_name: + type: string + pattern_type: + $ref: '#/components/schemas/AclPatternType' + principal: + type: string + host: + type: string + operation: + $ref: '#/components/schemas/AclOperation' + permission: + $ref: '#/components/schemas/AclPermission' + + CreateAclRequestDataList: + allOf: + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/CreateAclRequestData' + + CreateTopicRequestData: + type: object + required: + - topic_name + properties: + topic_name: + type: string + partitions_count: + type: integer + replication_factor: + type: integer + replicas_assignments: + # This is a map from partition id (string) to array of broker ids (integer) + type: object + additionalProperties: + type: array + items: + type: integer + configs: + type: array + items: + type: object + required: + - name + properties: + name: + type: string + value: + type: string + nullable: true + validate_only: + type: boolean + + ConfigSource: + type: string + x-extensible-enum: + - DYNAMIC_CLUSTER_LINK_CONFIG + - DYNAMIC_TOPIC_CONFIG + - DYNAMIC_BROKER_LOGGER_CONFIG + - DYNAMIC_BROKER_CONFIG + - DYNAMIC_DEFAULT_BROKER_CONFIG + - STATIC_BROKER_CONFIG + - DEFAULT_CONFIG + - UNKNOWN + + ConfigSynonymData: + type: object + required: + - name + - source + properties: + name: + type: string + value: + type: string + nullable: true + source: + $ref: '#/components/schemas/ConfigSource' + + ConsumerAssignmentData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - consumer_group_id + - consumer_id + - topic_name + - partition_id + - partition + - lag + properties: + cluster_id: + type: string + consumer_group_id: + type: string + consumer_id: + type: string + topic_name: + type: string + partition_id: + type: integer + partition: + $ref: '#/components/schemas/Relationship' + lag: + $ref: '#/components/schemas/Relationship' + + ConsumerAssignmentDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ConsumerAssignmentData' + + ConsumerData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - consumer_group_id + - consumer_id + - client_id + - assignments + properties: + cluster_id: + type: string + consumer_group_id: + type: string + consumer_id: + type: string + instance_id: + type: string + nullable: true + client_id: + type: string + assignments: + $ref: '#/components/schemas/Relationship' + + ConsumerDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ConsumerData' + + ConsumerGroupData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - consumer_group_id + - is_simple + - partition_assignor + - state + - coordinator + - consumers + - lag_summary + properties: + cluster_id: + type: string + consumer_group_id: + type: string + is_simple: + type: boolean + partition_assignor: + type: string + state: + $ref: '#/components/schemas/ConsumerGroupState' + coordinator: + $ref: '#/components/schemas/Relationship' + consumer: + $ref: '#/components/schemas/Relationship' + lag_summary: + $ref: '#/components/schemas/Relationship' + + ConsumerGroupDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ConsumerGroupData' + + ConsumerGroupState: + type: string + x-extensible-enum: + - UNKNOWN + - PREPARING_REBALANCE + - COMPLETING_REBALANCE + - STABLE + - DEAD + - EMPTY + + ConsumerLagData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - consumer_group_id + - topic_name + - partition_id + - current_offset + - log_end_offset + - lag + - consumer_id + - client_id + properties: + cluster_id: + type: string + consumer_group_id: + type: string + topic_name: + type: string + partition_id: + type: integer + current_offset: + type: integer + format: int64 + log_end_offset: + type: integer + format: int64 + lag: + type: integer + format: int64 + consumer_id: + type: string + instance_id: + type: string + nullable: true + client_id: + type: string + + ConsumerLagDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ConsumerLagData' + + ConsumerGroupLagSummaryData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - consumer_group_id + - max_lag_consumer_id + - max_lag_client_id + - max_lag_topic_name + - max_lag_partition_id + - max_lag + - total_lag + - max_lag_consumer + - max_lag_partition + properties: + cluster_id: + type: string + consumer_group_id: + type: string + max_lag_consumer_id: + type: string + max_lag_instance_id: + type: string + nullable: true + max_lag_client_id: + type: string + max_lag_topic_name: + type: string + max_lag_partition_id: + type: integer + max_lag: + type: integer + format: int64 + total_lag: + type: integer + format: int64 + max_lag_consumer: + $ref: '#/components/schemas/Relationship' + max_lag_partition: + $ref: '#/components/schemas/Relationship' + + Error: + type: object + required: + - error_code + - message + properties: + error_code: + type: integer + format: int32 + message: + type: string + nullable: true + + PartitionData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - topic_name + - partition_id + - replicas + - reassignment + properties: + cluster_id: + type: string + topic_name: + type: string + partition_id: + type: integer + leader: + $ref: '#/components/schemas/Relationship' + replicas: + $ref: '#/components/schemas/Relationship' + reassignment: + $ref: '#/components/schemas/Relationship' + + PartitionDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/PartitionData' + + ProduceBatchResponse: + description: Response for producing a batch of records. + type: object + properties: + successes: + description: Successful batch results. + type: array + items: + $ref: '#/components/schemas/ProduceBatchResponseSuccessEntry' + failures: + description: Failed batch results. + type: array + items: + $ref: '#/components/schemas/ProduceBatchResponseFailureEntry' + + ProduceBatchResponseFailureEntry: + type: object + required: + - id + - error_code + properties: + id: + description: Batch entry ID. + type: string + minLength: 1 + maxLength: 80 + error_code: + description: Error code. + type: integer + format: int32 + message: + description: Error message. + type: string + + ProduceBatchResponseSuccessEntry: + type: object + required: + - id + properties: + id: + description: Batch entry ID. + type: string + minLength: 1 + maxLength: 80 + cluster_id: + type: string + topic_name: + type: string + partition_id: + type: integer + format: int32 + offset: + type: integer + format: int64 + timestamp: + type: string + format: date-time + nullable: true + key: + $ref: '#/components/schemas/ProduceResponseData' + value: + $ref: '#/components/schemas/ProduceResponseData' + + ProduceResponse: + type: object + required: + - error_code + properties: + error_code: + type: integer + format: int32 + message: + type: string + cluster_id: + type: string + topic_name: + type: string + partition_id: + type: integer + format: int32 + offset: + type: integer + format: int64 + timestamp: + type: string + format: date-time + nullable: true + key: + $ref: '#/components/schemas/ProduceResponseData' + value: + $ref: '#/components/schemas/ProduceResponseData' + + ProduceResponseData: + type: object + required: + - size + - type + properties: + size: + type: integer + format: int64 + type: + type: string + x-extensible-enum: + - BINARY + - JSON + - STRING + - AVRO + - JSONSCHEMA + - PROTOBUF + nullable: true + subject: + type: string + nullable: true + schema_id: + type: integer + nullable: true + schema_version: + type: integer + nullable: true + nullable: true + + ProduceBatchRequest: + description: Request for producing a batch of records. + type: object + required: + - entries + properties: + entries: + type: array + items: + $ref: '#/components/schemas/ProduceBatchRequestEntry' + + ProduceBatchRequestEntry: + type: object + required: + - id + properties: + id: + description: Batch entry ID. + type: string + minLength: 1 + maxLength: 80 + partition_id: + type: integer + nullable: true + format: int32 + headers: + type: array + items: + $ref: '#/components/schemas/ProduceRequestHeader' + key: + $ref: '#/components/schemas/ProduceRequestData' + value: + $ref: '#/components/schemas/ProduceRequestData' + timestamp: + type: string + format: date-time + nullable: true + + ProduceRequest: + type: object + properties: + partition_id: + type: integer + nullable: true + format: int32 + headers: + type: array + items: + $ref: '#/components/schemas/ProduceRequestHeader' + key: + $ref: '#/components/schemas/ProduceRequestData' + value: + $ref: '#/components/schemas/ProduceRequestData' + timestamp: + type: string + format: date-time + nullable: true + + ProduceRequestData: + type: object + properties: + type: + type: string + x-extensible-enum: + - BINARY + - JSON + - STRING + - AVRO + - JSONSCHEMA + - PROTOBUF + subject: + type: string + nullable: true + subject_name_strategy: + type: string + x-extensible-enum: + - TOPIC_NAME + - RECORD_NAME + - TOPIC_RECORD_NAME + nullable: true + schema_id: + type: integer + nullable: true + schema_version: + type: integer + nullable: true + schema: + type: string + nullable: true + data: + $ref: '#/components/schemas/AnyValue' + nullable: true + + ProduceRequestHeader: + type: object + required: + - name + properties: + name: + type: string + value: + type: string + format: byte + nullable: true + + ReassignmentData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - topic_name + - partition_id + - adding_replicas + - removing_replicas + - replicas + properties: + cluster_id: + type: string + topic_name: + type: string + partition_id: + type: integer + adding_replicas: + type: array + items: + type: integer + removing_replicas: + type: array + items: + type: integer + replicas: + $ref: '#/components/schemas/Relationship' + + ReassignmentDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ReassignmentData' + + Relationship: + type: object + required: + - related + properties: + related: + type: string + + ReplicaData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - topic_name + - partition_id + - broker_id + - is_leader + - is_in_sync + - broker + properties: + cluster_id: + type: string + topic_name: + type: string + partition_id: + type: integer + broker_id: + type: integer + is_leader: + type: boolean + is_in_sync: + type: boolean + broker: + $ref: '#/components/schemas/Relationship' + + ReplicaDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/ReplicaData' + + Resource: + type: object + required: + - kind + - metadata + properties: + kind: + type: string + metadata: + $ref: '#/components/schemas/ResourceMetadata' + + ResourceCollection: + type: object + required: + - kind + - metadata + properties: + kind: + type: string + metadata: + $ref: '#/components/schemas/ResourceCollectionMetadata' + + ResourceCollectionMetadata: + type: object + required: + - self + properties: + self: + type: string + next: + type: string + nullable: true + + ResourceMetadata: + type: object + required: + - self + properties: + self: + type: string + resource_name: + type: string + nullable: true + + TopicConfigData: + allOf: + - $ref: '#/components/schemas/AbstractConfigData' + - type: object + required: + - topic_name + properties: + topic_name: + type: string + + TopicConfigDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicConfigData' + + TopicData: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + required: + - cluster_id + - topic_name + - is_internal + - replication_factor + - partitions_count + - partitions + - configs + - partition_reassignments + properties: + cluster_id: + type: string + topic_name: + type: string + is_internal: + type: boolean + replication_factor: + type: integer + partitions_count: + type: integer + partitions: + $ref: '#/components/schemas/Relationship' + configs: + $ref: '#/components/schemas/Relationship' + partition_reassignments: + $ref: '#/components/schemas/Relationship' + authorized_operations: + $ref: '#/components/schemas/AuthorizedOperations' + + TopicDataList: + allOf: + - $ref: '#/components/schemas/ResourceCollection' + - type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicData' + + UpdateConfigRequestData: + type: object + properties: + value: + type: string + nullable: true + + UpdatePartitionCountRequestData: + type: object + required: + - partitions_count + properties: + partitions_count: + type: integer + format: int32 + + requestBodies: + AlterBrokerConfigBatchRequest: + description: 'The alter broker configuration parameter batch request.' + content: + application/json: + schema: + $ref: '#/components/schemas/AlterConfigBatchRequestData' + example: + data: + - name: 'max.connections' + operation: 'DELETE' + - name: 'compression.type' + value: 'gzip' + + AlterClusterConfigBatchRequest: + description: 'The alter cluster configuration parameter batch request.' + content: + application/json: + schema: + $ref: '#/components/schemas/AlterConfigBatchRequestData' + example: + data: + - name: 'max.connections' + operation: 'DELETE' + - name: 'compression.type' + value: 'gzip' + + AlterTopicConfigBatchRequest: + description: 'The alter topic configuration parameter batch request.' + content: + application/json: + schema: + $ref: '#/components/schemas/AlterConfigBatchRequestData' + examples: + batch_alter_topic_configs: + value: + data: + - name: 'cleanup.policy' + operation: 'DELETE' + - name: 'compression.type' + value: 'gzip' + validate_only_batch_alter_topic_configs: + value: + data: + - name: 'cleanup.policy' + operation: 'DELETE' + - name: 'compression.type' + value: 'gzip' + validate_only: true + + CreateAclRequest: + description: 'The ACL creation request.' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAclRequestData' + example: + resource_type: 'CLUSTER' + resource_name: 'kafka-cluster' + pattern_type: 'LITERAL' + principal: 'principalType:principalName' + host: '*' + operation: 'DESCRIBE' + permission: 'DENY' + + BatchCreateAclRequest: + description: 'The batch ACL creation request.' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAclRequestDataList' + example: + data: + - resource_type: 'CLUSTER' + resource_name: 'kafka-cluster' + pattern_type: 'LITERAL' + principal: 'principalType:principalName' + host: '*' + operation: 'DESCRIBE' + permission: 'DENY' + - resource_type: 'TOPIC' + resource_name: 'kafka-cluster' + pattern_type: 'LITERAL' + principal: 'principalType:principalName' + host: '*' + operation: 'READ' + permission: 'ALLOW' + + CreateTopicRequest: + description: 'The topic creation request.' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestData' + examples: + uniform_replication: + value: + topic_name: 'topic-X' + partitions_count: 64 + replication_factor: 3 + configs: + - name: 'cleanup.policy' + value: 'compact' + - name: 'compression.type' + value: 'gzip' + explicit_replicas_assignments: + value: + topic_name: 'topic-X' + replicas_assignments: + "0": [1,2] + "1": [2,3] + "2": [3,1] + configs: + - name: 'cleanup.policy' + value: 'compact' + - name: 'compression.type' + value: 'gzip' + dry_run_create_topic: + value: + topic_name: 'topic-X' + partitions_count: 64 + replication_factor: 3 + validate_only: true + + ProduceBatchRequest: + description: 'A batch of records to be produced to Kafka. The delivery reports are sent in the response + in the same order as the records in the request.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProduceBatchRequest' + examples: + string_batch: + description: 'If using type, one of "BINARY", "JSON" or "STRING" is required.' + value: + entries: + - id: "1" + value: + type: 'STRING' + data: 'My first message' + - id: "2" + value: + type: 'STRING' + data: 'My second message' + + ProduceRequest: + description: 'A single record to be produced to Kafka. To produce multiple records in the same + request, simply concatenate the records. The delivery reports are concatenated + in the same order as the records are sent.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProduceRequest' + examples: + binary_and_json: + description: 'If using type, one of "BINARY", "JSON" or "STRING" is required.' + value: + partition_id: 1 + headers: + - name: 'Header-1' + value: 'SGVhZGVyLTE=' + - name: 'Header-2' + value: 'SGVhZGVyLTI=' + key: + type: 'BINARY' + data: 'Zm9vYmFy' + value: + type: 'JSON' + data: {"foo":"bar"} + timestamp: '2021-02-05T19:14:42Z' + binary_and_avro_with_subject_and_raw_schema: + description: 'If using type, one of "BINARY", "JSON", "STRING", or using the schema field is required.' + value: + partition_id: 1 + headers: + - name: 'Header-1' + value: 'SGVhZGVyLTE=' + - name: 'Header-2' + value: 'SGVhZGVyLTI=' + key: + type: 'BINARY' + data: 'Zm9vYmFy' + value: + type: 'AVRO' + subject: 'topic-1-key' + schema: '{\"type\":\"string\"}' + data: 'foobar' + timestamp: '2021-02-05T19:14:42Z' + string: + description: 'If using type, one of "BINARY", "JSON" or "STRING" is required.' + value: + value: + type: 'STRING' + data: 'My message' + schema_id_and_schema_version: + description: 'If not setting type, the record is assumed to use a schema. The actual + schema is queried from Schema Registry based on the subject, schema_id + and schema_version. You can specify the subject directly or you can use + subject_name_strategy. If neither is specified, subject_name_strategy is + assumed to be TOPIC_NAME. You can use either schema_id or schema_version + to identify the actual schema in the subject.' + value: + key: + subject_name_strategy: 'TOPIC_NAME' + schema_id: 1 + data: 1000 + value: + schema_version: 1 + data: + foo: 'bar' + latest_schema: + description: 'If neither schema_id or schema_version are specified, the latest schema + for the subject is used. This should be the preferred way of using the + API. You should register the schema with Schema Registry directly, then + on Kafka REST you do not need to say anything about the schema and we + will fetch the latest one for you.' + value: + key: + data: 1000 + value: + data: 'foobar' + null_and_empty_data: + description: 'data can be omitted or can be null.' + value: + key: + schema_id: 1 + value: + schema_version: 1 + data: null + empty_value: + description: 'key or value can be omitted entirely.' + value: + key: + data: 1000 + + UpdateBrokerConfigRequest: + description: 'The broker configuration parameter update request.' + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateConfigRequestData" + example: + value: 'gzip' + + UpdateClusterConfigRequest: + description: 'The cluster configuration parameter update request.' + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateConfigRequestData" + example: + value: 'gzip' + + UpdateTopicConfigRequest: + description: 'The topic configuration parameter update request.' + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateConfigRequestData" + example: + value: 'gzip' + + UpdatePartitionCountRequest: + description : 'The number of partitions to increase the partition count to.' + content: + application/json: + schema: + $ref: "#/components/schemas/UpdatePartitionCountRequestData" + example: + partitions_count: 10 + + + responses: + CreateTopicResponse: + description: 'The created topic.' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicData' + example: + kind: 'KafkaTopic' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-X' + resource_name: 'crn:///kafka=cluster-1/topic=topic-X' + cluster_id: 'cluster-1' + topic_name: 'topic-X' + is_internal: false + replication_factor: 3 + partitions_count: 1 + partitions: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-X/partitions' + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-X/configs' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-X/partitions/-/reassignments' + + DeleteAclsResponse: + description: 'The list of deleted ACLs.' + content: + application/json: + schema: + type: object + required: + - data + properties: + data: + type: array + items: + $ref: '#/components/schemas/AclData' + example: + data: + - kind: 'KafkaAcl' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls?resource_type=TOPIC&resource_name=topic-&pattern_type=PREFIXED&principal=User%3Aalice&host=*&operation=ALL&permission=ALLOW' + cluster_id: 'cluster-1' + resource_type: 'TOPIC' + resource_name: 'topic-' + pattern_type: 'PREFIXED' + principal: 'User:alice' + host: '*' + operation: 'ALL' + permission: 'ALLOW' + - kind: 'KafkaAcl' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls?resource_type=CLUSTER&resource_name=kafka-cluster&pattern_type=LITERAL&principal=User%3Aalice&host=*&operation=DESCRIBE&permission=DENY' + cluster_id: 'cluster-1' + resource_type: 'CLUSTER' + resource_name: 'kafka-cluster' + pattern_type: 'LITERAL' + principal: 'User:alice' + host: '*' + operation: 'DESCRIBE' + permission: 'DENY' + + GetBrokerConfigResponse: + description: 'The broker configuration parameter.' + content: + application/json: + schema: + $ref: '#/components/schemas/BrokerConfigData' + example: + kind: 'KafkaBrokerConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs/compression.type' + resource_name: 'crn:///kafka=cluster-1/broker=1/config=compression.type' + cluster_id: 'cluster-1' + broker_id: 1 + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_BROKER_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_BROKER_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + GetBrokerResponse: + description: 'The broker.' + content: + application/json: + schema: + $ref: '#/components/schemas/BrokerData' + example: + kind: 'KafkaBroker' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + resource_name: 'crn:///kafka=cluster-1/broker=1' + cluster_id: 'cluster-1' + broker_id: 1 + host: 'localhost' + port: 9291 + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs' + partition_replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/partition-replicas' + + GetClusterConfigResponse: + description: 'The cluster configuration parameter.' + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterConfigData' + example: + kind: 'KafkaClusterConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs/compression.type' + resource_name: 'crn:///kafka=cluster-1/broker-config=compression.type' + cluster_id: 'cluster-1' + config_type: 'BROKER' + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + GetClusterResponse: + description: 'The Kafka cluster.' + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterData' + example: + kind: 'KafkaCluster' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1' + resource_name: 'crn:///kafka=cluster-1' + cluster_id: 'cluster-1' + controller: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + acls: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls' + brokers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers' + broker_configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs' + consumer_groups: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups' + topics: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' + + GetConsumerAssignmentResponse: + description: 'The consumer group assignment.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerAssignmentData' + example: + kind: 'KafkaConsumerAssignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1/assignment=topic=1/partition=1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + topic_name: 'topic-1' + partition_id: 1 + partition: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1' + lag: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/1' + + GetConsumerGroupResponse: + description: 'The consumer group.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerGroupData' + example: + kind: 'KafkaConsumerGroup' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + is_simple: false + partition_assignor: 'org.apache.kafka.clients.consumer.RoundRobinAssignor' + state: 'STABLE' + coordinator: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + consumers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' + lag_summary: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lag-summary' + + GetConsumerGroupLagSummaryResponse: + description: 'The max and total consumer lag in a consumer group.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerGroupLagSummaryData' + example: + kind: 'KafkaConsumerGroupLagSummary' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lag-summary' + resource_name: 'crn:///kafka=cluster-1/consumer-groups=consumer-group-1/lag-summary' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + max_lag_consumer_id: 'consumer-1' + max_lag_instance_id: 'consumer-instance-1' + max_lag_client_id: 'client-1' + max_lag_topic_name: 'topic-1' + max_lag_partition_id: 1 + max_lag: 100 + total_lag: 110 + max_lag_consumer: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1' + max_lag_partition: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1' + + GetConsumerLagResponse: + description: 'The consumer lag.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerLagData' + example: + kind: 'KafkaConsumerLag' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/lag=topic-1/partition=1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + topic_name: 'topic-1' + partition_id: 1 + consumer_id: 'consumer-1' + instance_id: 'consumer-instance-1' + client_id: 'client-1' + current_offset: 1 + log_end_offset: 101 + lag: 100 + + GetConsumerResponse: + description: 'The consumer.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerData' + example: + kind: 'KafkaConsumer' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + instance_id: 'consumer-instance-1' + client_id: 'client-1' + assignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments' + + GetPartitionResponse: + description: 'The partition' + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionData' + example: + kind: 'KafkaPartition' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + leader: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + reassignment: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' + + GetReassignmentResponse: + description: 'The ongoing replicas reassignments.' + content: + application/json: + schema: + $ref: '#/components/schemas/ReassignmentData' + example: + kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + adding_replicas: + - 1 + - 2 + removing_replicas: + - 3 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + + GetReplicaResponse: + description: 'The replica.' + content: + application/json: + schema: + $ref: '#/components/schemas/ReplicaData' + example: + kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/replica=1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + broker_id: 1 + is_leader: true + is_in_sync: true + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + + GetTopicConfigResponse: + description: 'The topic configuration parameter.' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicConfigData' + example: + kind: 'KafkaTopicConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/compression.type' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/config=compression.type' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_TOPIC_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_TOPIC_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + GetTopicResponse: + description: 'The topic.' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicData' + example: + kind: 'KafkaTopic' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + is_internal: false + replication_factor: 3 + partitions_count: 1 + partitions: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions' + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/configs' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/-/reassignments' + + ListAllReassignmentsResponse: + description: "The ongoing replicas reassignments." + content: + application/json: + schema: + $ref: '#/components/schemas/ReassignmentDataList' + example: + kind: 'KafkaReassignmentList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' + next: null + data: + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + adding_replicas: + - 1 + - 2 + removing_replicas: + - 3 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions/2/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-2/partition=2/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-2' + partition_id: 2 + adding_replicas: + - 1 + removing_replicas: + - 2 + - 3 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions/2/replicas' + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions/3/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-3/partition=3/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-3' + partition_id: 3 + adding_replicas: + - 3 + removing_replicas: + - 1 + - 2 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions/3/replicas' + + ListBrokerConfigsResponse: + description: 'The list of broker configs.' + content: + application/json: + schema: + $ref: '#/components/schemas/BrokerConfigDataList' + example: + kind: 'KafkaBrokerConfigList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs' + next: null + data: + - kind: 'KafkaBrokerConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs/max.connections' + resource_name: 'crn:///kafka=cluster-1/broker=1/config=max.connections' + cluster_id: 'cluster-1' + broker_id: 1 + name: 'max.connections' + value: '1000' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_BROKER_CONFIG' + synonyms: + - name: 'max.connections' + value: '1000' + source: 'DYNAMIC_BROKER_CONFIG' + - name: 'max.connections' + value: '2147483647' + source: 'DEFAULT_CONFIG' + - kind: 'KafkaBrokerConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs/compression.type' + resource_name: 'crn:///kafka=cluster-1/broker=1/config=compression.type' + cluster_id: 'cluster-1' + broker_id: 1 + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_BROKER_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_BROKER_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + ListBrokersResponse: + description: 'The list of brokers.' + content: + application/json: + schema: + $ref: '#/components/schemas/BrokerDataList' + example: + kind: 'KafkaBrokerList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers' + next: null + data: + - kind: 'KafkaBroker' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + resource_name: 'crn:///kafka=cluster-1/broker=1' + cluster_id: 'cluster-1' + broker_id: 1 + host: 'localhost' + port: 9291 + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/configs' + partition_replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/partition-replicas' + - kind: 'KafkaBroker' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/2' + resource_name: 'crn:///kafka=cluster-1/broker=2' + cluster_id: 'cluster-1' + broker_id: 2 + host: 'localhost' + port: 9292 + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/2/configs' + partition_replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/2/partition-replicas' + - kind: 'KafkaBroker' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/3' + resource_name: 'crn:///kafka=cluster-1/broker=3' + cluster_id: 'cluster-1' + broker_id: 3 + host: 'localhost' + port: 9293 + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/3/configs' + partition_replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/3/partition-replicas' + + ListClusterConfigsResponse: + description: 'The list of cluster configs.' + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterConfigDataList' + example: + kind: 'KafkaClusterConfigList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs' + next: null + data: + - kind: 'KafkaClusterConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs/max.connections' + resource_name: 'crn:///kafka=cluster-1/broker-config=max.connections' + cluster_id: 'cluster-1' + config_type: 'BROKER' + name: 'max.connections' + value: '1000' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + synonyms: + - name: 'max.connections' + value: '1000' + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + - name: 'max.connections' + value: '2147483647' + source: 'DEFAULT_CONFIG' + - kind: 'KafkaClusterConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs/compression.type' + resource_name: 'crn:///kafka=cluster-1/broker-config=compression.type' + cluster_id: 'cluster-1' + config_type: 'BROKER' + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_DEFAULT_BROKER_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + ListClustersResponse: + description: 'The list of Kafka clusters.' + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterDataList' + example: + kind: 'KafkaClusterList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters' + next: null + data: + - kind: 'KafkaCluster' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1' + resource_name: 'crn:///kafka=cluster-1' + cluster_id: 'cluster-1' + controller: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + acls: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls' + brokers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers' + broker_configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/broker-configs' + consumer_groups: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups' + topics: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' + + ListConsumerAssignmentsResponse: + description: 'The list of consumer group assignments.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerAssignmentDataList' + example: + kind: 'KafkaConsumerAssignmentList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments' + next: null + data: + - kind: 'KafkaConsumerAssignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1/assignment=topic=1/partition=1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + topic_name: 'topic-1' + partition_id: 1 + partition: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1' + lag: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/1' + - kind: 'KafkaConsumerAssignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments/topic-2/partitions/2' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1/assignment=topic=2/partition=2' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + topic_name: 'topic-2' + partition_id: 2 + partition: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions/2' + lag: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-2/partitions/2' + - kind: 'KafkaConsumerAssignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments/topic-3/partitions/3' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1/assignment=topic=3/partition=3' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + topic_name: 'topic-3' + partition_id: 3 + partition: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions/3' + lag: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-3/partitions/3' + + ListConsumerGroupsResponse: + description: 'The list of consumer groups.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerGroupDataList' + example: + kind: 'KafkaConsumerGroupList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups' + next: null + data: + - kind: 'KafkaConsumerGroup' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + is_simple: false + partition_assignor: 'org.apache.kafka.clients.consumer.RoundRobinAssignor' + state: 'STABLE' + coordinator: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + consumers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' + lag_summary: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lag-summary' + - kind: 'KafkaConsumerGroup' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-2' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-2' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-2' + is_simple: false + partition_assignor: 'org.apache.kafka.clients.consumer.StickyAssignor' + state: 'PREPARING_REBALANCE' + coordinator: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/2' + consumers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-2/consumers' + lag_summary: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-2/lag-summary' + - kind: 'KafkaConsumerGroup' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-3' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-3' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-3' + is_simple: false + partition_assignor: 'org.apache.kafka.clients.consumer.RangeAssignor' + state: 'DEAD' + coordinator: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/3' + consumers: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-3/consumers' + lag_summary: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-3/lag-summary' + + ListConsumerLagsResponse: + description: 'The list of consumer lags.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerLagDataList' + example: + kind: 'KafkaConsumerLagList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags' + next: null + data: + - kind: 'KafkaConsumerLag' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/lag=topic-1/partition=1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + topic_name: 'topic-1' + partition_id: 1 + consumer_id: 'consumer-1' + instance_id: 'consumer-instance-1' + client_id: 'client-1' + current_offset: 1 + log_end_offset: 101 + lag: 100 + - kind: 'KafkaConsumerLag' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/2' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/lag=topic-1/partition=2' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + topic_name: 'topic-1' + partition_id: 2 + consumer_id: 'consumer-2' + instance_id: 'consumer-instance-2' + client_id: 'client-2' + current_offset: 1 + log_end_offset: 11 + lag: 10 + - kind: 'KafkaConsumerLag' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/lags/topic-1/partitions/3' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/lag=topic-1/partition=3' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + topic_name: 'topic-1' + partition_id: 3 + consumer_id: 'consumer-3' + instance_id: 'consumer-instance-3' + client_id: 'client-3' + current_offset: 1 + log_end_offset: 1 + lag: 0 + + ListConsumersResponse: + description: 'The list of consumers.' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumerDataList' + example: + kind: 'KafkaConsumerList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' + next: null + data: + - kind: 'KafkaConsumer' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-1' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-1' + instance_id: 'consumer-instance-1' + client_id: 'client-1' + assignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments' + - kind: 'KafkaConsumer' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-2' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-2' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-2' + instance_id: 'consumer-instance-2' + client_id: 'client-2' + assignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-2/assignments' + - kind: 'KafkaConsumer' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-2' + resource_name: 'crn:///kafka=cluster-1/consumer-group=consumer-group-1/consumer=consumer-2' + cluster_id: 'cluster-1' + consumer_group_id: 'consumer-group-1' + consumer_id: 'consumer-2' + instance_id: 'consumer-instance-2' + client_id: 'client-2' + assignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-2/assignments' + + ListPartitionsResponse: + description: 'The list of partitions.' + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionDataList' + example: + kind: 'KafkaPartitionList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions' + next: null + data: + - kind: 'KafkaPartition' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + leader: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + reassignment: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' + - kind: 'KafkaPartition' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=2' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 2 + leader: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas/2' + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas' + reassignment: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/reassignment' + - kind: 'KafkaPartition' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=3' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 3 + leader: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3/replicas/3' + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3/replicas' + reassignment: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3/reassignment' + + ListReplicasResponse: + description: 'The list of replicas.' + content: + application/json: + schema: + $ref: '#/components/schemas/ReplicaDataList' + example: + kind: 'KafkaReplicaList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + next: null + data: + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/replica=1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + broker_id: 1 + is_leader: true + is_in_sync: true + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/2' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/replica=2' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + broker_id: 2 + is_leader: false + is_in_sync: true + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/2' + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/3' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/replica=3' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + broker_id: 3 + is_leader: false + is_in_sync: false + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/3' + + ListTopicConfigsResponse: + description: 'The list of cluster configs.' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicConfigDataList' + example: + kind: 'KafkaTopicConfigList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/configs' + next: null + data: + - kind: 'KafkaTopicConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/configs/cleanup.policy' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/config=cleanup.policy' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + name: 'cleanup.policy' + value: 'compact' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_TOPIC_CONFIG' + synonyms: + - name: 'cleanup.policy' + value: 'compact' + source: 'DYNAMIC_TOPIC_CONFIG' + - name: 'cleanup.policy' + value: 'delete' + source: 'DEFAULT_CONFIG' + - kind: 'KafkaTopicConfig' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/configs/compression.type' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/config=compression.type' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + name: 'compression.type' + value: 'gzip' + is_default: false + is_read_only: false + is_sensitive: false + source: 'DYNAMIC_TOPIC_CONFIG' + synonyms: + - name: 'compression.type' + value: 'gzip' + source: 'DYNAMIC_TOPIC_CONFIG' + - name: 'compression.type' + value: 'producer' + source: 'DEFAULT_CONFIG' + + ListTopicsResponse: + description: 'The list of topics.' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicDataList' + example: + kind: 'KafkaTopicList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics' + next: null + data: + - kind: 'KafkaTopic' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + is_internal: false + replication_factor: 3 + partitions_count: 1 + partitions: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions' + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/configs' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/-/reassignments' + - kind: 'KafkaTopic' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2' + resource_name: 'crn:///kafka=cluster-1/topic=topic-2' + cluster_id: 'cluster-1' + topic_name: 'topic-2' + is_internal: true + replication_factor: 4 + partitions_count: 1 + partitions: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions' + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/configs' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions/-/reassignments' + - kind: 'KafkaTopic' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3' + resource_name: 'crn:///kafka=cluster-1/topic=topic-3' + cluster_id: 'cluster-1' + topic_name: 'topic-3' + is_internal: false + replication_factor: 5 + partitions_count: 1 + partitions: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions' + configs: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/configs' + partition_reassignments: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions/-/reassignments' + + ProduceBatchResponse: + description: |- + The response containing a delivery report for each record produced to a topic. + A separate delivery report will be returned, in the same order, each with its own error_code. + content: + application/json: + schema: + $ref: '#/components/schemas/ProduceBatchResponse' + examples: + produce_batch_record_success: + description: The records were successfully produced to the topic. + value: + successes: + - id: "1" + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + offset: 0 + timestamp: '2021-02-05T19:14:42Z' + key: + type: BINARY + size: 7 + value: + type: JSON + size: 15 + - id: "2" + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + offset: 1 + timestamp: '2021-02-05T19:14:43Z' + key: + type: BINARY + size: 7 + value: + type: JSON + size: 15 + failures: [] + produce_batch_record_success_and_failure: + description: One record was produced to the topic successfully, and one failed. + value: + successes: + - id: "1" + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + offset: 0 + timestamp: '2021-02-05T19:14:42Z' + key: + type: BINARY + size: 7 + value: + type: JSON + size: 15 + failures: + - id: "2" + error_code: 400 + message: "Bad Request: data=1 is not a base64 string." + + ProduceResponse: + description: |- + The response containing a delivery report for a record produced to a topic. In streaming mode, + for each record sent, a separate delivery report will be returned, in the same order, + each with its own error_code. + content: + application/json: + schema: + $ref: '#/components/schemas/ProduceResponse' + examples: + produce_record_success: + description: The record was successfully produced to the topic. + value: + error_code: 200 + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + offset: 0 + timestamp: '2021-02-05T19:14:42Z' + key: + type: BINARY + size: 7 + value: + type: JSON + size: 15 + produce_record_bad_binary_data: + description: Thrown when sending a BINARY value which is not a base64-encoded string. + value: + error_code: 400 + message: "Bad Request: data=1 is not a base64 string." + + SearchAclsResponse: + description: 'The list of ACLs.' + content: + application/json: + schema: + $ref: '#/components/schemas/AclDataList' + example: + kind: 'KafkaAclList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls?principal=User%3Aalice' + data: + - kind: 'KafkaAcl' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls?resource_type=TOPIC&resource_name=topic-&pattern_type=PREFIXED&principal=User%3Aalice&host=*&operation=ALL&permission=ALLOW' + cluster_id: 'cluster-1' + resource_type: 'TOPIC' + resource_name: 'topic-' + pattern_type: 'PREFIXED' + principal: 'User:alice' + host: '*' + operation: 'ALL' + permission: 'ALLOW' + - kind: 'KafkaAcl' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/acls?resource_type=CLUSTER&resource_name=kafka-cluster&pattern_type=LITERAL&principal=User%3Aalice&host=*&operation=DESCRIBE&permission=DENY' + cluster_id: 'cluster-1' + resource_type: 'CLUSTER' + resource_name: 'kafka-cluster' + pattern_type: 'LITERAL' + principal: 'User:alice' + host: '*' + operation: 'DESCRIBE' + permission: 'DENY' + + SearchReassignmentsByTopicResponse: + description: "The ongoing replicas reassignments." + content: + application/json: + schema: + $ref: '#/components/schemas/ReassignmentDataList' + example: + kind: 'KafkaReassignmentList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' + next: null + data: + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=1/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 1 + adding_replicas: + - 1 + - 2 + removing_replicas: + - 3 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=2/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 2 + adding_replicas: + - 1 + removing_replicas: + - 2 + - 3 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas' + - kind: 'KafkaReassignment' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3/reassignment' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=3/reassignment' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 3 + adding_replicas: + - 3 + removing_replicas: + - 1 + - 2 + replicas: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/3/replicas' + + SearchReplicasByBrokerResponse: + description: 'The list of replicas.' + content: + application/json: + schema: + $ref: '#/components/schemas/ReplicaDataList' + example: + kind: 'KafkaReplicaList' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1/partition-replicas' + next: null + data: + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-1/partition=2/replica=1' + cluster_id: 'cluster-1' + topic_name: 'topic-1' + partition_id: 2 + broker_id: 1 + is_leader: true + is_in_sync: true + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-2/partitions/3/replicas/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-3/partition=3/replica=1' + cluster_id: 'cluster-1' + topic_name: 'topic-2' + partition_id: 3 + broker_id: 1 + is_leader: false + is_in_sync: true + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + - kind: 'KafkaReplica' + metadata: + self: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/topics/topic-3/partitions/1/replicas/1' + resource_name: 'crn:///kafka=cluster-1/topic=topic-3/partition=1/replica=1' + cluster_id: 'cluster-1' + topic_name: 'topic-3' + partition_id: 1 + broker_id: 1 + is_leader: false + is_in_sync: false + broker: + related: 'https://pkc-00000.region.provider.confluent.cloud/kafka/v3/clusters/cluster-1/brokers/1' + + # Error responses + + BadRequestErrorResponse: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + bad_request_cannot_deserialize: + description: "Thrown when trying to deserialize an integer from non-integer data." + value: + error_code: 400 + message: "Cannot deserialize value of type `java.lang.Integer` from String \"A\": not a valid `java.lang.Integer` value" + + BadRequestErrorResponse_CreateAcls: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + create_acls_cluster_name_invalid: + description: "Thrown when creating an ACL for a CLUSTER resource specifying the wrong resource name." + value: + error_code: 40002 + message: The only valid name for the CLUSTER resource is kafka-cluster" + + BadRequestErrorResponse_CreateTopic: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + create_topic_already_exists: + description: "Thrown when trying to create a topic with a name already used by an existing topic." + value: + error_code: 40002 + message: "Topic 'my-topic' already exists." + create_topic_replication_factor_too_large: + description: "Thrown when trying to create a topic with a replication factor larger than the number of brokers." + value: + error_code: 40002 + message: "Replication factor: 2 larger than available brokers: 1." + + BadRequestErrorResponse_DeleteAcls: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + delete_acls_unspecified_resource_type: + description: "Thrown when trying to delete ACLs without specifying a valid resource type." + value: + error_code: 400 + message: "resource_type cannot be unspecified or UNKNOWN" + + BadRequestErrorResponse_ProduceRecords: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + header_not_base64_encoded: + description: "Thrown when headers in the produce-record are not base64 encoded." + value: + error_code: 400 + message: "Cannot deserialize value of type `byte[]` from String \"\": Unexpected end of base64-encoded String: base64 variant 'MIME-NO-LINEFEEDS' expects padding (one or more '=' characters) at the end. This Base64Variant might have been incorrectly configured" + + UnprocessableEntity_ProduceRecord: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + produce_record_empty_request_body: + description: "Thrown when the request body is empty." + value: + error_code: 422 + message: "Payload error. Request body is empty. Data is required." + + BadRequestErrorResponse_UpdatePartitionCountTopic: + description: 'Indicates a bad request error. It could be caused by an unexpected request + body format or other forms of request validation failure.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + topic_update_partitions_invalid: + description: "Thrown when trying to update the number of partitions incorrectly." + value: + error_code: 40002 + message: "Topic already has 1 partitions." + + UnauthorizedErrorResponse: + description: 'Indicates a client authentication error. Kafka authentication failures will contain + error code 40101 in the response body.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + kafka_authentication_failed: + description: "Thrown when using Basic authentication with wrong Kafka credentials." + value: + error_code: 40101 + message: "Authentication failed" + + ForbiddenErrorResponse: + description: 'Indicates a client authorization error. Kafka authorization failures will contain + error code 40301 in the response body.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + kafka_authorization_failed: + description: "Thrown when the caller is not authorized to perform the underlying operation." + value: + error_code: 40301 + message: "Request is not authorized" + + NotFoundErrorResponse: + description: 'Indicates attempted access to an unreachable or non-existing resource like e.g. an unknown topic + or partition. GET requests to endpoints not allowed in the accesslists will also result in this response.' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + endpoint_not_found: + description: "Thrown for generic HTTP 404 errors." + value: + error_code: 404 + message: "HTTP 404 Not Found" + cluster_not_found: + description: "Thrown when using a non-existing cluster ID." + value: + error_code: 404 + message: "Cluster my-cluster cannot be found." + unknown_topic_or_partition: + description: "Thrown when using a non-existing topic name or partition ID." + value: + error_code: 40403 + message: "This server does not host this topic-partition." + + TooManyRequestsErrorResponse: + description: 'Indicates that a rate limit threshold has been reached, and the client should + retry again later.' + content: + text/html: + schema: + type: string + example: + description: "A sample response from Jetty's DoSFilter." + value: ' +
+ +URI: | +/v3/clusters/my-cluster | +
---|---|
STATUS: | +429 | +
MESSAGE: | +Too Many Requests | +
SERVLET: | +default | +