openapi: 3.0.0 info: title: Kafka HTTP API version: 3.0.0 servers: - url: "{protocol}://{address}:{port}/v3" description: Kafka REST Proxy. See https://docs.confluent.io/current/kafka-rest/index.html. variables: address: default: localhost description: Address of the server port: default: "8082" description: Port of the server protocol: default: http description: Protocol for interacting with server enum: - http - https - url: "{protocol}://{address}:{port}/kafka/v3" description: Kafka REST Proxy as part of Confluent Server. variables: protocol: default: http enum: - http - https description: Protocol to communicate with the server address: default: localhost description: Address of the server port: default: "8090" description: Port of the server paths: /clusters: get: summary: 'List Clusters' description: 'Returns 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 responses: '200': $ref: '#/components/responses/ListClustersResponse' /clusters/{cluster_id}: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'Get Cluster' description: 'Returns the Kafka cluster with the specified ``cluster_id``.' tags: - Cluster responses: '200': $ref: '#/components/responses/GetClusterResponse' /clusters/{cluster_id}/acls: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'Search ACLs' description: 'Returns a list of ACLs that match the search criteria.' tags: - ACL 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' post: summary: 'Create ACLs' description: 'Creates an ACL.' tags: - ACL requestBody: $ref: '#/components/requestBodies/CreateAclRequest' responses: '201': description: 'No Content' delete: summary: 'Delete ACLs' description: 'Deletes the list of ACLs that matches the search criteria.' tags: - ACL 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/DeleteAclsResponse' /clusters/{cluster_id}/broker-configs: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'List Cluster Configs' description: 'Returns a list of configuration parameters for the specified Kafka cluster.' tags: - Configs responses: '200': $ref: '#/components/responses/ListClusterConfigsResponse' /clusters/{cluster_id}/broker-configs:alter: parameters: - $ref: '#/components/parameters/ClusterId' post: summary: 'Batch Alter Cluster Configs' description: 'Updates or deletes a set of Kafka cluster configuration parameters.' tags: - Configs requestBody: $ref: '#/components/requestBodies/AlterClusterConfigBatchRequest' responses: '204': description: 'No Content' /clusters/{cluster_id}/broker-configs/{name}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/ConfigName' get: summary: 'Get Cluster Config' description: 'Returns the configuration parameter specified by ``name``.' tags: - Configs responses: '200': $ref: '#/components/responses/GetClusterConfigResponse' put: summary: 'Update Cluster Config' description: 'Updates the configuration parameter specified by ``name``.' tags: - Configs requestBody: $ref: '#/components/requestBodies/UpdateClusterConfigRequest' responses: '204': description: 'No Content' delete: summary: 'Reset Cluster Config' description: 'Resets the configuration parameter specified by ``name`` to its default value.' tags: - Configs responses: '204': description: 'No Content' /clusters/{cluster_id}/brokers: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'List Brokers' description: 'Return a list of brokers that belong to the specified Kafka cluster.' tags: - Broker responses: '200': $ref: '#/components/responses/ListBrokersResponse' /clusters/{cluster_id}/brokers/{broker_id}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/BrokerId' get: summary: 'Get Broker' description: 'Returns the broker specified by ``broker_id``.' tags: - Broker responses: '200': $ref: '#/components/responses/GetBrokerResponse' /clusters/{cluster_id}/brokers/{broker_id}/configs: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/BrokerId' get: summary: 'List Broker Configs' description: 'Return the list of configuration parameters that belong to the specified Kafka broker.' tags: - Configs responses: '200': $ref: '#/components/responses/ListBrokerConfigsResponse' /clusters/{cluster_id}/brokers/{broker_id}/configs:alter: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/BrokerId' post: summary: 'Batch Alter Broker Configs' description: 'Updates or deletes a set of broker configuration parameters.' tags: - Configs requestBody: $ref: '#/components/requestBodies/AlterBrokerConfigBatchRequest' responses: '204': description: 'No Content' /clusters/{cluster_id}/brokers/{broker_id}/configs/{name}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/BrokerId' - $ref: '#/components/parameters/ConfigName' get: summary: 'Get Broker Config' description: 'Return the configuration parameter specified by ``name``.' tags: - Configs responses: '200': $ref: '#/components/responses/GetBrokerConfigResponse' put: summary: 'Update Broker Config' description: 'Updates the configuration parameter specified by ``name``.' tags: - Configs requestBody: $ref: '#/components/requestBodies/UpdateBrokerConfigRequest' responses: '204': description: 'No Content' delete: summary: 'Reset Broker Config' description: 'Resets the configuration parameter specified by ``name`` to its default value.' tags: - Configs responses: '204': description: 'No Content' /clusters/{cluster_id}/brokers/{broker_id}/partition-replicas: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/BrokerId' get: summary: 'Search Replicas by Broker' description: 'Returns the list of replicas assigned to the specified broker.' tags: - Broker - Replica responses: '200': $ref: '#/components/responses/SearchReplicasByBrokerResponse' /clusters/{cluster_id}/consumer-groups: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'List Consumer Groups' description: 'Returns the list of consumer groups that belong to the specified Kafka cluster.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/ListConsumerGroupsResponse' /clusters/{cluster_id}/consumer-groups/{consumer_group_id}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/ConsumerGroupId' get: summary: 'Get Consumer Group' description: 'Returns the consumer group specified by the ``consumer_group_id``.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/GetConsumerGroupResponse' /clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/ConsumerGroupId' get: summary: 'List Consumers' description: 'Returns a list of consumers that belong to the specified consumer group.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/ListConsumersResponse' /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' description: 'Returns the consumer specified by the ``consumer_id``.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/GetConsumerResponse' /clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers/{consumer_id}/assignments: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/ConsumerId' get: summary: 'List Consumer Assignments' description: 'Returns a list of partition assignments for the specified consumer.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/ListConsumerAssignmentsResponse' /clusters/{cluster_id}/consumer-groups/{consumer_group_id}/consumers/{consumer_id}/assignments/{topic_name}/partitions/{partition_id}: 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' description: 'Returns information about the assignment for the specified consumer to the specified partition.' tags: - Consumer Group responses: '200': $ref: '#/components/responses/GetConsumerAssignmentResponse' /clusters/{cluster_id}/topics: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'List Topics' description: 'Returns the list of topics that belong to the specified Kafka cluster.' tags: - Topic responses: '200': $ref: '#/components/responses/ListTopicsResponse' post: summary: 'Create Topic' description: 'Creates a topic.' tags: - Topic requestBody: $ref: '#/components/requestBodies/CreateTopicRequest' responses: '201': $ref: '#/components/responses/CreateTopicResponse' /clusters/{cluster_id}/topics/{topic_name}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: summary: 'Get Topic' description: 'Returns the topic with the given `topic_name`.' tags: - Topic responses: '200': $ref: '#/components/responses/GetTopicResponse' delete: summary: 'Delete Topic' description: 'Deletes the topic with the given `topic_name`.' tags: - Topic responses: '204': description: 'No Content' /clusters/{cluster_id}/topics/{topic_name}/configs: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: summary: 'List Topic Configs' description: 'Return the list of configs that belong to the specified topic.' tags: - Configs responses: '200': $ref: '#/components/responses/ListTopicConfigsResponse' /clusters/{cluster_id}/topics/{topic_name}/configs:alter: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' post: summary: 'Batch Alter Topic Configs' description: 'Updates or deletes a set of topic configs.' tags: - Configs requestBody: $ref: '#/components/requestBodies/AlterTopicConfigBatchRequest' responses: '204': description: 'No Content' /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' description: 'Return the config with the given `name`.' tags: - Configs responses: '200': $ref: '#/components/responses/GetTopicConfigResponse' put: summary: 'Update Topic Config' description: 'Updates the config with given `name`.' tags: - Configs requestBody: $ref: '#/components/requestBodies/UpdateTopicConfigRequest' responses: '204': description: 'No Content' delete: summary: 'Reset Topic Config' description: 'Resets the config with given `name` to its default value.' tags: - Configs responses: '204': description: 'No Content' /clusters/{cluster_id}/topics/{topic_name}/partitions: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: summary: 'List Partitions' description: 'Returns the list of partitions that belong to the specified topic.' tags: - Partition responses: '200': $ref: '#/components/responses/ListPartitionsResponse' /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' description: 'Returns the partition with the given `partition_id`.' tags: - Partition responses: '200': $ref: '#/components/responses/GetPartitionResponse' /clusters/{cluster_id}/topics/-/partitions/-/reassignment: parameters: - $ref: '#/components/parameters/ClusterId' get: summary: 'List All Replica Reassignments' description: 'Returns the list of all ongoing replica reassignments in the given Kafka cluster.' tags: - Partition responses: '200': $ref: '#/components/responses/ListAllReassignmentsResponse' /clusters/{cluster_id}/topics/{topic_name}/partitions/-/reassignment: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: summary: 'Search Replica Reassignments By Topic' description: 'Returns the list of ongoing replica reassignments for the given topic.' tags: - Partition responses: '200': $ref: '#/components/responses/SearchReassignmentsByTopicResponse' /clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/reassignment: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' - $ref: '#/components/parameters/PartitionId' get: summary: 'Get Replica Reassignments' description: 'Returns the list of ongoing replica reassignments for the given partition.' tags: - Partition responses: '200': $ref: '#/components/responses/GetReassignmentResponse' /clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/replicas: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' - $ref: '#/components/parameters/PartitionId' get: summary: 'List Replicas' description: 'Returns the list of replicas for the specified partition.' tags: - Replica responses: '200': $ref: '#/components/responses/ListReplicasResponse' /clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}/replicas/{broker_id}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' - $ref: '#/components/parameters/PartitionId' - $ref: '#/components/parameters/BrokerId' get: summary: 'Get Replica' description: 'Returns the replica for the specified partition assigned to the specified broker.' tags: - Replica responses: '200': $ref: '#/components/responses/GetReplicaResponse' 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' AclPatternType: name: 'pattern_type' description: 'The ACL pattern type.' in: query required: false schema: $ref: '#/components/schemas/AclPatternType' AclPermission: name: 'permission' description: 'The ACL permission.' in: query required: false 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' 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' 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 enum: - UNKNOWN - ANY - ALL - READ - WRITE - CREATE - DELETE - ALTER - DESCRIBE - CLUSTER_ACTION - DESCRIBE_CONFIGS - ALTER_CONFIGS - IDEMPOTENT_WRITE AclPatternType: type: string enum: - UNKNOWN - ANY - MATCH - LITERAL - PREFIXED AclPermission: type: string 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 enum: - SET - DELETE nullable: true 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 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' pattern_type: $ref: '#/components/schemas/AclPatternType' principal: type: string host: type: string operation: $ref: '#/components/schemas/AclOperation' permission: $ref: '#/components/schemas/AclPermission' CreateTopicRequestData: type: object required: - topic_name - partitions_count - replication_factor properties: topic_name: type: string partitions_count: type: integer replication_factor: type: integer configs: type: array items: type: object required: - name properties: name: type: string value: type: string nullable: true ConfigSource: type: string 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 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' 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 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' ConsumerGroupDataList: allOf: - $ref: '#/components/schemas/ResourceCollection' - type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/ConsumerGroupData' ConsumerGroupState: type: string enum: - UNKNOWN - PREPARING_REBALANCE - COMPLETING_REBALANCE - STABLE - DEAD - EMPTY 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' 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 - configs - partition_reassignments properties: cluster_id: type: string topic_name: type: string is_internal: type: boolean replication_factor: type: integer partitions: $ref: '#/components/schemas/Relationship' configs: $ref: '#/components/schemas/Relationship' partition_reassignments: $ref: '#/components/schemas/Relationship' 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 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' example: data: - name: 'cleanup.policy' operation: 'DELETE' - name: 'compression.type' value: 'gzip' CreateAclRequest: description: 'The ACL creation request.' content: application/json: schema: $ref: '#/components/schemas/CreateAclRequestData' CreateTopicRequest: description: 'The topic creation request.' content: application/json: schema: $ref: '#/components/schemas/CreateTopicRequestData' example: topic_name: 'topic-X' partitions_count: 64 replication_factor: 3 configs: - name: 'cleanup.policy' value: 'compact' - name: 'compression.type' value: 'gzip' 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' responses: CreateTopicResponse: description: 'The created topic.' content: application/json: schema: $ref: '#/components/schemas/TopicData' example: kind: 'KafkaTopic' metadata: self: 'http://localhost:9391/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: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-X/partitions' configs: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-X/configs' partition_reassignments: related: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/acls?resource_type=TOPIC&resource_name=topic-&pattern_type=PREFIXED&principal=alice&host=*&operation=ALL&permission=ALLOW' cluster_id: 'cluster-1' resource_type: 'TOPIC' resource_name: 'topic-' pattern_type: 'PREFIXED' principal: 'alice' host: '*' operation: 'ALL' permission: 'ALLOW' - kind: 'KafkaAcl' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/acls?resource_type=CLUSTER&resource_name=cluster-1&pattern_type=LITERAL&principal=bob&host=*&operation=DESCRIBE&permission=DENY' cluster_id: 'cluster-1' resource_type: 'CLUSTER' resource_name: 'cluster-2' pattern_type: 'LITERAL' principal: '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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1/configs' partition_replicas: related: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1' resource_name: 'crn:///kafka=cluster-1' cluster_id: 'cluster-1' controller: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' acls: related: 'http://localhost:9391/v3/clusters/cluster-1/acls' brokers: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers' broker_configs: related: 'http://localhost:9391/v3/clusters/cluster-1/broker-configs' consumer_groups: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups' topics: related: 'http://localhost:9391/v3/clusters/cluster-1/topics' partition_reassignments: related: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1' GetConsumerGroupResponse: description: 'The consumer group.' content: application/json: schema: $ref: '#/components/schemas/ConsumerGroupData' example: kind: 'KafkaConsumerGroup' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' consumers: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' GetConsumerResponse: description: 'The consumer.' content: application/json: schema: $ref: '#/components/schemas/ConsumerData' example: kind: 'KafkaConsumer' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' reassignment: related: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/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: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions' configs: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/configs' partition_reassignments: related: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' next: null data: - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-2/partitions/2/replicas' - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1/configs' next: null data: - kind: 'KafkaBrokerConfig' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers' next: null data: - kind: 'KafkaBroker' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1/configs' partition_replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1/partition-replicas' - kind: 'KafkaBroker' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/2/configs' partition_replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers/2/partition-replicas' - kind: 'KafkaBroker' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/3/configs' partition_replicas: related: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/broker-configs' next: null data: - kind: 'KafkaClusterConfig' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters' next: null data: - kind: 'KafkaCluster' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1' resource_name: 'crn:///kafka=cluster-1' cluster_id: 'cluster-1' controller: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' acls: related: 'http://localhost:9391/v3/clusters/cluster-1/acls' brokers: related: 'http://localhost:9391/v3/clusters/cluster-1/brokers' broker_configs: related: 'http://localhost:9391/v3/clusters/cluster-1/broker-configs' consumer_groups: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups' topics: related: 'http://localhost:9391/v3/clusters/cluster-1/topics' partition_reassignments: related: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments' next: null data: - kind: 'KafkaConsumerAssignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1' - kind: 'KafkaConsumerAssignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-2/partitions/2' - kind: 'KafkaConsumerAssignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-3/partitions/3' ListConsumerGroupsResponse: description: 'The list of consumer groups.' content: application/json: schema: $ref: '#/components/schemas/ConsumerGroupDataList' example: kind: 'KafkaConsumerGroupList' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups' next: null data: - kind: 'KafkaConsumerGroup' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' consumers: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' - kind: 'KafkaConsumerGroup' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/2' consumers: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-2/consumers' - kind: 'KafkaConsumerGroup' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/3' consumers: related: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-3/consumers' ListConsumersResponse: description: 'The list of consumers.' content: application/json: schema: $ref: '#/components/schemas/ConsumerDataList' example: kind: 'KafkaConsumerList' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers' next: null data: - kind: 'KafkaConsumer' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-1/assignments' - kind: 'KafkaConsumer' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/consumer-groups/consumer-group-1/consumers/consumer-2/assignments' - kind: 'KafkaConsumer' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions' next: null data: - kind: 'KafkaPartition' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas/1' replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' reassignment: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/reassignment' - kind: 'KafkaPartition' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas/2' replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas' reassignment: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/2/reassignment' - kind: 'KafkaPartition' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/3/replicas/3' replicas: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/3/replicas' reassignment: related: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' next: null data: - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/2' - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/configs' next: null data: - kind: 'KafkaTopicConfig' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics' next: null data: - kind: 'KafkaTopic' metadata: self: 'http://localhost:9391/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: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions' configs: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/configs' partition_reassignments: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/-/reassignments' - kind: 'KafkaTopic' metadata: self: 'http://localhost:9391/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: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-2/partitions' configs: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-2/configs' partition_reassignments: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-2/partitions/-/reassignments' - kind: 'KafkaTopic' metadata: self: 'http://localhost:9391/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: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-3/partitions' configs: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-3/configs' partition_reassignments: related: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-3/partitions/-/reassignments' SearchAclsResponse: description: 'The list of ACLs.' content: application/json: schema: $ref: '#/components/schemas/AclDataList' example: kind: 'KafkaAclList' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/acls?principal=alice' data: - kind: 'KafkaAcl' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/acls?resource_type=TOPIC&resource_name=topic-&pattern_type=PREFIXED&principal=alice&host=*&operation=ALL&permission=ALLOW' cluster_id: 'cluster-1' resource_type: 'TOPIC' resource_name: 'topic-' pattern_type: 'PREFIXED' principal: 'alice' host: '*' operation: 'ALL' permission: 'ALLOW' - kind: 'KafkaAcl' metadata: self: 'http://localhost:9391/v3/clusters/cluster-1/acls?resource_type=CLUSTER&resource_name=cluster-1&pattern_type=LITERAL&principal=bob&host=*&operation=DESCRIBE&permission=DENY' cluster_id: 'cluster-1' resource_type: 'CLUSTER' resource_name: 'cluster-2' pattern_type: 'LITERAL' principal: '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: 'http://localhost:9391/v3/clusters/cluster-1/topics/-/partitions/-/reassignment' next: null data: - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/1/replicas' - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/topics/topic-1/partitions/2/replicas' - kind: 'KafkaReassignment' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1/partition-replicas' next: null data: - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1' - kind: 'KafkaReplica' metadata: self: 'http://localhost:9391/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: 'http://localhost:9391/v3/clusters/cluster-1/brokers/1'