kafka-ui/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml
2023-07-04 11:05:53 +04:00

3887 lines
92 KiB
YAML

openapi: 3.0.0
info:
description: Api Documentation
version: 0.1.0
title: Api Documentation
termsOfService: urn:tos
contact: { }
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
tags:
- name: /api/clusters
- name: /api/clusters/connects
servers:
- url: /localhost
paths:
/api/clusters:
get:
tags:
- Clusters
summary: getClusters
operationId: getClusters
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Cluster'
/api/clusters/{clusterName}/cache:
post:
tags:
- Clusters
summary: updateClusterInfo
operationId: updateClusterInfo
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
404:
description: Not found
/api/clusters/{clusterName}/brokers:
get:
tags:
- Brokers
summary: getBrokers
operationId: getBrokers
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Broker'
/api/clusters/{clusterName}/brokers/{id}/configs:
get:
tags:
- Brokers
summary: getBrokerConfig
operationId: getBrokerConfig
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: integer
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BrokerConfig'
404:
description: Not found
/api/clusters/{clusterName}/brokers/{id}/configs/{name}:
put:
tags:
- Brokers
summary: updateBrokerConfigByName
operationId: updateBrokerConfigByName
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: integer
- name: name
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BrokerConfigItem'
responses:
200:
description: OK
/api/clusters/{clusterName}/metrics:
get:
tags:
- Clusters
summary: getClusterMetrics
operationId: getClusterMetrics
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterMetrics'
/api/prometheus/expose/all:
get:
tags:
- PrometheusExpose
summary: getAllMetrics
operationId: getAllMetrics
responses:
200:
description: OK
content:
application/text:
schema:
type: string
/api/clusters/{clusterName}/prometheus/expose/all:
get:
tags:
- PrometheusExpose
summary: getAllClusterMetrics
operationId: getAllClusterMetrics
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/text:
schema:
type: string
/api/clusters/{clusterName}/prometheus/expose/broker/{brokerId}:
get:
tags:
- PrometheusExpose
summary: getBrokerMetrics
operationId: getBrokerMetrics
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: brokerId
in: path
required: true
schema:
type: integer
format: int64
responses:
200:
description: OK
content:
application/text:
schema:
type: string
/api/clusters/{clusterName}/stats:
get:
tags:
- Clusters
summary: getClusterStats
operationId: getClusterStats
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterStats'
/api/clusters/{clusterName}/brokers/{id}/metrics:
get:
tags:
- Brokers
summary: getBrokersMetrics
operationId: getBrokersMetrics
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: integer
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BrokerMetrics'
/api/clusters/{clusterName}/brokers/logdirs:
get:
tags:
- Brokers
summary: getAllBrokersLogdirs
operationId: getAllBrokersLogdirs
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: broker
in: query
description: array of broker ids
required: false
schema:
type: array
items:
type: integer
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BrokersLogdirs'
/api/clusters/{clusterName}/brokers/{id}/logdirs:
patch:
tags:
- Brokers
summary: updateBrokerTopicPartitionLogDir
operationId: updateBrokerTopicPartitionLogDir
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BrokerLogdirUpdate'
responses:
200:
description: OK
/api/clusters/{clusterName}/topics:
get:
tags:
- Topics
summary: getTopics
operationId: getTopics
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
- name: perPage
in: query
required: false
schema:
type: integer
- name: showInternal
in: query
required: false
schema:
type: boolean
- name: search
in: query
required: false
schema:
type: string
- name: orderBy
in: query
required: false
schema:
$ref: '#/components/schemas/TopicColumnsToSort'
- name: sortOrder
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TopicsResponse'
post:
tags:
- Topics
summary: createTopic
operationId: createTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopicCreation'
responses:
201:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
/api/clusters/{clusterName}/topics/{topicName}/clone:
post:
tags:
- Topics
summary: cloneTopic
operationId: cloneTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
- name: newTopicName
in: query
required: true
schema:
type: string
responses:
201:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
404:
description: Not found
/api/clusters/{clusterName}/topics/{topicName}/analysis:
get:
tags:
- Topics
summary: getTopicAnalysis
operationId: getTopicAnalysis
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TopicAnalysis'
404:
description: Not found
post:
tags:
- Topics
summary: analyzeTopic
operationId: analyzeTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: Analysis started
404:
description: Not found
delete:
tags:
- Topics
summary: cancelTopicAnalysis
operationId: cancelTopicAnalysis
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: Analysis cancelled
404:
description: Not found
/api/clusters/{clusterName}/topics/{topicName}:
get:
tags:
- Topics
summary: getTopicDetails
operationId: getTopicDetails
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TopicDetails'
post:
tags:
- Topics
summary: recreateTopic
operationId: recreateTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
201:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
404:
description: Not found
408:
description: Topic recreation timeout
patch:
tags:
- Topics
summary: updateTopic
operationId: updateTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopicUpdate'
responses:
200:
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
delete:
tags:
- Topics
summary: deleteTopic
operationId: deleteTopic
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
404:
description: Not found
/api/clusters/{clusterName}/topics/{topicName}/config:
get:
tags:
- Topics
summary: getTopicConfigs
operationId: getTopicConfigs
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TopicConfig'
/api/clusters/{clusterName}/topics/{topicName}/replications:
patch:
tags:
- Topics
summary: changeReplicationFactor
operationId: changeReplicationFactor
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReplicationFactorChange'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReplicationFactorChangeResponse'
404:
description: Not found
400:
description: Bad Request
/api/clusters/{clusterName}/topic/{topicName}/serdes:
get:
tags:
- Messages
summary: getSerdes
operationId: getSerdes
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
- name: use
in: query
required: true
schema:
$ref: '#/components/schemas/SerdeUsage'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TopicSerdeSuggestion'
/api/clusters/{clusterName}/topics/{topicName}/messages:
get:
tags:
- Messages
summary: getTopicMessages
operationId: getTopicMessages
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
- name: seekType
in: query
schema:
$ref: "#/components/schemas/SeekType"
- name: seekTo
in: query
schema:
type: array
items:
type: string
description: The format is [partition]::[offset] for specifying offsets or [partition]::[timestamp in millis] for specifying timestamps
- name: limit
in: query
schema:
type: integer
- name: q
in: query
schema:
type: string
- name: filterQueryType
in: query
schema:
$ref: "#/components/schemas/MessageFilterType"
- name: seekDirection
in: query
schema:
$ref: "#/components/schemas/SeekDirection"
- name: keySerde
in: query
description: "Serde that should be used for deserialization. Will be chosen automatically if not set."
schema:
type: string
- name: valueSerde
in: query
description: "Serde that should be used for deserialization. Will be chosen automatically if not set."
schema:
type: string
responses:
200:
description: OK
content:
text/event-stream:
schema:
type: array
items:
$ref: '#/components/schemas/TopicMessageEvent'
delete:
tags:
- Messages
summary: deleteTopicMessages
operationId: deleteTopicMessages
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
- name: partitions
in: query
required: false
schema:
type: array
items:
type: integer
responses:
200:
description: OK
404:
description: Not found
post:
tags:
- Messages
summary: sendTopicMessages
operationId: sendTopicMessages
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTopicMessage'
responses:
200:
description: OK
404:
description: Not found
/api/clusters/{clusterName}/topics/{topicName}/consumer-groups:
get:
tags:
- Consumer Groups
summary: get Consumer Groups By Topics
operationId: getTopicConsumerGroups
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConsumerGroup'
/api/clusters/{clusterName}/consumer-groups/paged:
get:
tags:
- Consumer Groups
summary: Get consumer groups with paging support
operationId: getConsumerGroupsPage
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
- name: perPage
in: query
required: false
schema:
type: integer
- name: search
in: query
required: false
schema:
type: string
- name: orderBy
in: query
required: false
schema:
$ref: '#/components/schemas/ConsumerGroupOrdering'
- name: sortOrder
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroupsPageResponse'
/api/clusters/{clusterName}/consumer-groups/{id}:
get:
tags:
- Consumer Groups
summary: get Consumer Group By Id
operationId: getConsumerGroup
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroupDetails'
delete:
tags:
- Consumer Groups
summary: Delete Consumer Group by ID
operationId: deleteConsumerGroup
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
200:
description: OK
/api/clusters/{clusterName}/consumer-groups/{id}/offsets:
post:
tags:
- Consumer Groups
summary: resets consumer group offsets
operationId: resetConsumerGroupOffsets
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroupOffsetsReset'
responses:
200:
description: OK
/api/clusters/{clusterName}/schemas:
post:
tags:
- Schemas
summary: create a new subject schema or update existing subject schema
operationId: createNewSchema
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewSchemaSubject'
responses:
200:
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaSubject'
400:
description: Bad request
409:
description: Duplicate schema
422:
description: Invalid parameters
get:
tags:
- Schemas
summary: get all schemas of latest version from Schema Registry service
operationId: getSchemas
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
- name: perPage
in: query
required: false
schema:
type: integer
- name: search
in: query
required: false
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaSubjectsResponse'
/api/clusters/{clusterName}/schemas/{subject}:
delete:
tags:
- Schemas
summary: delete schema from Schema Registry service
operationId: deleteSchema
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
responses:
200:
description: OK
404:
description: Not found
/api/clusters/{clusterName}/schemas/{subject}/versions:
get:
tags:
- Schemas
summary: get all version of subject from Schema Registry service
operationId: getAllVersionsBySubject
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SchemaSubject'
/api/clusters/{clusterName}/schemas/{subject}/latest:
get:
tags:
- Schemas
summary: get the latest schema from Schema Registry service
operationId: getLatestSchema
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaSubject'
delete:
tags:
- Schemas
summary: delete the latest schema from schema registry
operationId: deleteLatestSchema
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
responses:
200:
description: OK
404:
description: Not found
/api/clusters/{clusterName}/schemas/{subject}/versions/{version}:
get:
tags:
- Schemas
summary: get schema by version from Schema Registry service
operationId: getSchemaByVersion
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: integer
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaSubject'
delete:
tags:
- Schemas
summary: delete schema by version from schema registry
operationId: deleteSchemaByVersion
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: integer
responses:
200:
description: OK
404:
description: Not found
/api/clusters/{clusterName}/schemas/compatibility:
get:
tags:
- Schemas
summary: Get global schema compatibility level
operationId: getGlobalSchemaCompatibilityLevel
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CompatibilityLevel'
put:
tags:
- Schemas
summary: Update compatibility level globally
operationId: updateGlobalSchemaCompatibilityLevel
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompatibilityLevel'
responses:
200:
description: OK
404:
description: Not Found
/api/clusters/{clusterName}/schemas/{subject}/compatibility:
put:
tags:
- Schemas
summary: Update compatibility level for specific schema.
operationId: updateSchemaCompatibilityLevel
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompatibilityLevel'
responses:
200:
description: OK
404:
description: Not Found
/api/clusters/{clusterName}/schemas/{subject}/check:
post:
tags:
- Schemas
summary: Check compatibility of the schema.
operationId: checkSchemaCompatibility
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: subject
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewSchemaSubject'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CompatibilityCheckResponse'
404:
description: Not Found
/api/clusters/{clusterName}/connects:
get:
tags:
- Kafka Connect
summary: get all kafka connect instances
operationId: getConnects
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Connect'
/api/clusters/{clusterName}/connectors:
get:
tags:
- Kafka Connect
summary: get filtered kafka connectors
operationId: getAllConnectors
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: search
in: query
required: false
schema:
type: string
- name: orderBy
in: query
required: false
schema:
$ref: '#/components/schemas/ConnectorColumnsToSort'
- name: sortOrder
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FullConnectorInfo'
/api/clusters/{clusterName}/connects/{connectName}/connectors:
get:
tags:
- Kafka Connect
summary: get connectors for provided kafka connect instance
operationId: getConnectors
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
type: string
post:
tags:
- Kafka Connect
summary: create new connector
operationId: createConnector
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewConnector'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Connector'
409:
description: rebalance is in progress
/api/clusters/{clusterName}/connects/{connectName}/connectors/{connectorName}:
get:
tags:
- Kafka Connect
summary: get information about the connector
operationId: getConnector
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Connector'
delete:
tags:
- Kafka Connect
summary: delete connector
operationId: deleteConnector
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
409:
description: rebalance is in progress
/api/clusters/{clusterName}/connects/{connectName}/connectors/{connectorName}/action/{action}:
post:
tags:
- Kafka Connect
summary: update connector state (restart, pause or resume)
operationId: updateConnectorState
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
- name: action
in: path
required: true
schema:
$ref: '#/components/schemas/ConnectorAction'
responses:
200:
description: OK
409:
description: rebalance is in progress
/api/clusters/{clusterName}/connects/{connectName}/connectors/{connectorName}/config:
get:
tags:
- Kafka Connect
summary: get connector configuration
operationId: getConnectorConfig
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorConfig'
put:
tags:
- Kafka Connect
summary: update or create connector with provided config
operationId: setConnectorConfig
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorConfig'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Connector'
409:
description: rebalance is in progress
/api/clusters/{clusterName}/connects/{connectName}/connectors/{connectorName}/tasks:
get:
tags:
- Kafka Connect
summary: get connector tasks
operationId: getConnectorTasks
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
/api/clusters/{clusterName}/connects/{connectName}/connectors/{connectorName}/tasks/{taskId}/action/restart:
post:
tags:
- Kafka Connect
summary: restart connector task
operationId: restartConnectorTask
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: connectorName
in: path
required: true
schema:
type: string
- name: taskId
in: path
required: true
schema:
type: integer
responses:
200:
description: OK
/api/clusters/{clusterName}/ksql/v2:
post:
tags:
- Ksql
summary: executeKsql
operationId: executeKsql
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KsqlCommandV2'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/KsqlCommandV2Response'
/api/clusters/{clusterName}/ksql/tables:
get:
tags:
- Ksql
summary: listTables
operationId: listTables
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/KsqlTableDescription'
/api/clusters/{clusterName}/ksql/streams:
get:
tags:
- Ksql
summary: listStreams
operationId: listStreams
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/KsqlStreamDescription'
/api/clusters/{clusterName}/ksql/response:
get:
tags:
- Ksql
summary: Open SSE pipe
operationId: openKsqlResponsePipe
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: pipeId
in: query
required: true
schema:
type: string
responses:
200:
description: OK
content:
text/event-stream:
schema:
type: array
items:
$ref: '#/components/schemas/KsqlResponse'
/api/clusters/{clusterName}/connects/{connectName}/plugins:
get:
tags:
- Kafka Connect
summary: get connector plugins
operationId: getConnectorPlugins
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConnectorPlugin'
/api/clusters/{clusterName}/connects/{connectName}/plugins/{pluginName}/config/validate:
put:
tags:
- Kafka Connect
summary: validate connector plugin configuration
operationId: validateConnectorPluginConfig
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: connectName
in: path
required: true
schema:
type: string
- name: pluginName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorConfig'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorPluginConfigValidationResponse'
/api/clusters/{clusterName}/topics/{topicName}/partitions:
patch:
tags:
- Topics
summary: increaseTopicPartitions
operationId: increaseTopicPartitions
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: topicName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PartitionsIncrease'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PartitionsIncreaseResponse'
404:
description: Not found
/api/clusters/{clusterName}/acls:
get:
tags:
- Acls
summary: listKafkaAcls
operationId: listAcls
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
- name: resourceType
in: query
required: false
schema:
$ref: '#/components/schemas/KafkaAclResourceType'
- name: resourceName
in: query
required: false
schema:
type: string
- name: namePatternType
in: query
required: false
schema:
$ref: '#/components/schemas/KafkaAclNamePatternType'
responses:
200:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/KafkaAcl'
/api/clusters/{clusterName}/acl/csv:
get:
tags:
- Acls
summary: getAclAsCsv
operationId: getAclAsCsv
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
responses:
200:
description: OK
content:
text/plain:
schema:
type: string
post:
tags:
- Acls
summary: syncAclsCsv
operationId: syncAclsCsv
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
text/plain:
schema:
type: string
responses:
200:
description: OK
/api/clusters/{clusterName}/acl:
post:
tags:
- Acls
summary: createAcl
operationId: createAcl
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaAcl'
responses:
200:
description: OK
delete:
tags:
- Acls
summary: deleteAcl
operationId: deleteAcl
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KafkaAcl'
responses:
200:
description: OK
404:
description: Acl not found
/api/authorization:
get:
tags:
- Authorization
summary: Get user authentication related info
operationId: getUserAuthInfo
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AuthenticationInfo'
/api/info:
get:
tags:
- ApplicationConfig
summary: Gets application info
operationId: getApplicationInfo
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationInfo'
/api/config:
get:
tags:
- ApplicationConfig
summary: Gets current application configuration
operationId: getCurrentConfig
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationConfig'
put:
tags:
- ApplicationConfig
summary: Restarts application with specified configuration
operationId: restartWithConfig
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestartRequest'
responses:
200:
description: OK
/api/config/validated:
put:
tags:
- ApplicationConfig
summary: Restarts application with specified configuration
operationId: validateConfig
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationConfig'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationConfigValidation'
/api/config/relatedfiles:
post:
tags:
- ApplicationConfig
summary: Restarts application with specified configuration
operationId: uploadConfigRelatedFile
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UploadedFileInfo'
components:
schemas:
TopicSerdeSuggestion:
type: object
properties:
key:
type: array
items:
$ref: '#/components/schemas/SerdeDescription'
value:
type: array
items:
$ref: '#/components/schemas/SerdeDescription'
SerdeDescription:
type: object
properties:
name:
type: string
description:
type: string
preferred:
description: "This serde was automatically chosen by cluster config. This should be enabled in UI by default. Also it will be used for deserialization if no serdes passed."
type: boolean
schema:
type: string
additionalProperties:
type: object
additionalProperties:
type: object
SerdeUsage:
type: string
enum:
- SERIALIZE
- DESERIALIZE
ErrorResponse:
description: Error object that will be returned with 4XX and 5XX HTTP statuses
type: object
properties:
code:
type: integer
description: Internal error code (can be used for message formatting & localization on UI)
message:
type: string
description: Error message
timestamp:
type: number
description: Response unix timestamp in ms
requestId:
type: string
description: Unique server-defined request id for convenient debugging
fieldsErrors:
type: array
items:
$ref: '#/components/schemas/FieldError'
stackTrace:
type: string
FieldError:
type: object
properties:
fieldName:
type: string
description: Name of field that violated format
restrictions:
description: Field format violations description (ex. ["size must be between 0 and 20", "must be a well-formed email address"])
type: array
items:
type: string
MetricsCollectionError:
type: object
properties:
message:
type: string
stackTrace:
type: string
ApplicationInfo:
type: object
properties:
enabledFeatures:
type: array
items:
type: string
enum:
- DYNAMIC_CONFIG
build:
type: object
properties:
commitId:
type: string
version:
type: string
buildTime:
type: string
isLatestRelease:
type: boolean
latestRelease:
type: object
properties:
versionTag:
type: string
publishedAt:
type: string
htmlUrl:
type: string
Cluster:
type: object
properties:
name:
type: string
defaultCluster:
type: boolean
status:
$ref: '#/components/schemas/ServerStatus'
lastError:
$ref: '#/components/schemas/MetricsCollectionError'
brokerCount:
type: integer
onlinePartitionCount:
type: integer
topicCount:
type: integer
bytesInPerSec:
type: number
bytesOutPerSec:
type: number
readOnly:
type: boolean
version:
type: string
features:
type: array
items:
type: string
enum:
- SCHEMA_REGISTRY
- KAFKA_CONNECT
- KSQL_DB
- TOPIC_DELETION
- KAFKA_ACL_VIEW # get ACLs listing
- KAFKA_ACL_EDIT # create & delete ACLs
required:
- id
- name
- status
ServerStatus:
type: string
enum:
- online
- offline
- initializing
ClusterMetrics:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Metric'
ClusterStats:
type: object
properties:
brokerCount:
type: integer
zooKeeperStatus:
type: integer
deprecated: true
activeControllers:
type: integer
description: Id of broker which is cluster's controller. null, if controller not known yet.
onlinePartitionCount:
type: integer
offlinePartitionCount:
type: integer
inSyncReplicasCount:
type: integer
outOfSyncReplicasCount:
type: integer
underReplicatedPartitionCount:
type: integer
diskUsage:
type: array
items:
$ref: '#/components/schemas/BrokerDiskUsage'
version:
type: string
BrokerDiskUsage:
type: object
properties:
brokerId:
type: integer
segmentSize:
type: integer
format: int64
segmentCount:
type: integer
required:
- brokerId
BrokerMetrics:
type: object
properties:
segmentSize:
type: integer
format: int64
segmentCount:
type: integer
metrics:
type: array
items:
$ref: '#/components/schemas/Metric'
BrokerLogdirs:
type: object
properties:
name:
type: string
error:
type: string
topics:
type: array
items:
$ref: '#/components/schemas/TopicLogdirs'
BrokersLogdirs:
type: object
properties:
name:
type: string
error:
type: string
topics:
type: array
items:
$ref: '#/components/schemas/BrokerTopicLogdirs'
TopicsResponse:
type: object
properties:
pageCount:
type: integer
topics:
type: array
items:
$ref: '#/components/schemas/Topic'
TopicColumnsToSort:
type: string
enum:
- NAME
- OUT_OF_SYNC_REPLICAS
- TOTAL_PARTITIONS
- REPLICATION_FACTOR
- SIZE
ConnectorColumnsToSort:
type: string
enum:
- NAME
- CONNECT
- TYPE
- STATUS
SortOrder:
type: string
enum:
- ASC
- DESC
Topic:
type: object
properties:
name:
type: string
internal:
type: boolean
partitionCount:
type: integer
replicationFactor:
type: integer
replicas:
type: integer
inSyncReplicas:
type: integer
segmentSize:
type: integer
format: int64
segmentCount:
type: integer
bytesInPerSec:
type: number
bytesOutPerSec:
type: number
underReplicatedPartitions:
type: integer
cleanUpPolicy:
$ref: '#/components/schemas/CleanUpPolicy'
partitions:
type: array
items:
$ref: "#/components/schemas/Partition"
required:
- name
TopicAnalysis:
type: object
description: "Represents analysis state. Note: 'progress' and 'result' fields are set exclusively depending on analysis state."
properties:
progress:
$ref: '#/components/schemas/TopicAnalysisProgress'
result:
$ref: '#/components/schemas/TopicAnalysisResult'
TopicAnalysisProgress:
type: object
properties:
startedAt:
type: integer
format: int64
completenessPercent:
type: number
msgsScanned:
type: integer
format: int64
bytesScanned:
type: integer
format: int64
TopicAnalysisResult:
type: object
properties:
startedAt:
type: integer
format: int64
finishedAt:
type: integer
format: int64
error:
type: string
totalStats:
$ref: '#/components/schemas/TopicAnalysisStats'
partitionStats:
type: array
items:
$ref: "#/components/schemas/TopicAnalysisStats"
TopicAnalysisStats:
type: object
properties:
partition:
type: integer
format: int32
description: "null if this is total stats"
totalMsgs:
type: integer
format: int64
minOffset:
type: integer
format: int64
maxOffset:
type: integer
format: int64
minTimestamp:
type: integer
format: int64
maxTimestamp:
type: integer
format: int64
nullKeys:
type: integer
format: int64
nullValues:
type: integer
format: int64
approxUniqKeys:
type: integer
format: int64
approxUniqValues:
type: integer
format: int64
keySize:
$ref: "#/components/schemas/TopicAnalysisSizeStats"
valueSize:
$ref: "#/components/schemas/TopicAnalysisSizeStats"
hourlyMsgCounts:
type: array
items:
type: object
properties:
hourStart:
type: integer
format: int64
count:
type: integer
format: int64
TopicAnalysisSizeStats:
type: object
description: "All sizes in bytes"
properties:
sum:
type: integer
format: int64
min:
type: integer
format: int64
max:
type: integer
format: int64
avg:
type: integer
format: int64
prctl50:
type: integer
format: int64
prctl75:
type: integer
format: int64
prctl95:
type: integer
format: int64
prctl99:
type: integer
format: int64
prctl999:
type: integer
format: int64
Replica:
type: object
properties:
broker:
type: integer
leader:
type: boolean
inSync:
type: boolean
TopicDetails:
type: object
properties:
name:
type: string
internal:
type: boolean
partitions:
type: array
items:
$ref: "#/components/schemas/Partition"
partitionCount:
type: integer
replicationFactor:
type: integer
replicas:
type: integer
inSyncReplicas:
type: integer
bytesInPerSec:
type: number
bytesOutPerSec:
type: number
segmentSize:
type: integer
format: int64
segmentCount:
type: integer
underReplicatedPartitions:
type: integer
cleanUpPolicy:
$ref: '#/components/schemas/CleanUpPolicy'
keySerde:
type: string
valueSerde:
type: string
required:
- name
TopicConfig:
type: object
properties:
name:
type: string
value:
type: string
defaultValue:
type: string
source:
$ref: "#/components/schemas/ConfigSource"
isSensitive:
type: boolean
isReadOnly:
type: boolean
synonyms:
type: array
items:
$ref: "#/components/schemas/ConfigSynonym"
doc:
type: string
required:
- name
TopicCreation:
type: object
properties:
name:
type: string
partitions:
type: integer
replicationFactor:
type: integer
configs:
type: object
additionalProperties:
type: string
required:
- name
- partitions
TopicUpdate:
type: object
properties:
configs:
type: object
additionalProperties:
type: string
required:
- configs
Broker:
type: object
properties:
id:
type: integer
host:
type: string
port:
type: integer
bytesInPerSec:
type: number
bytesOutPerSec:
type: number
partitionsLeader:
type: integer
partitions:
type: integer
inSyncPartitions:
type: integer
partitionsSkew:
type: number
leadersSkew:
type: number
required:
- id
BrokerLogdirUpdate:
type: object
properties:
topic:
type: string
partition:
type: integer
logDir:
type: string
ConsumerGroupState:
type: string
enum:
- UNKNOWN
- PREPARING_REBALANCE
- COMPLETING_REBALANCE
- STABLE
- DEAD
- EMPTY
MessageFormat:
type: string
enum:
- AVRO
- JSON
- PROTOBUF
- UNKNOWN
ConsumerGroup:
discriminator:
propertyName: inherit
mapping:
details: "#/components/schemas/ConsumerGroupDetails"
type: object
properties:
groupId:
type: string
members:
type: integer
topics:
type: integer
simple:
type: boolean
partitionAssignor:
type: string
state:
$ref: "#/components/schemas/ConsumerGroupState"
coordinator:
$ref: "#/components/schemas/Broker"
consumerLag:
type: integer
format: int64
description: null if consumer group has no offsets committed
required:
- groupId
ConsumerGroupOrdering:
type: string
enum:
- NAME
- MEMBERS
- STATE
- MESSAGES_BEHIND
- TOPIC_NUM
ConsumerGroupsPageResponse:
type: object
properties:
pageCount:
type: integer
consumerGroups:
type: array
items:
$ref: '#/components/schemas/ConsumerGroup'
CreateTopicMessage:
type: object
properties:
partition:
type: integer
key:
type: string
nullable: true
headers:
type: object
additionalProperties:
type: string
content:
type: string
nullable: true
keySerde:
type: string
nullable: true
valueSerde:
type: string
nullable: true
required:
- partition
TopicMessageEvent:
type: object
properties:
type:
type: string
enum:
- PHASE
- MESSAGE
- CONSUMING
- DONE
- EMIT_THROTTLING
message:
$ref: "#/components/schemas/TopicMessage"
phase:
$ref: "#/components/schemas/TopicMessagePhase"
consuming:
$ref: "#/components/schemas/TopicMessageConsuming"
TopicMessagePhase:
type: object
properties:
name:
type: string
TimeStampFormat:
type: object
properties:
timeStampFormat:
type: string
TopicMessageConsuming:
type: object
properties:
bytesConsumed:
type: integer
format: int64
elapsedMs:
type: integer
format: int64
isCancelled:
type: boolean
messagesConsumed:
type: integer
filterApplyErrors:
type: integer
TopicMessage:
type: object
properties:
partition:
type: integer
offset:
type: integer
format: int64
timestamp:
type: string
format: date-time
timestampType:
type: string
enum:
- NO_TIMESTAMP_TYPE
- CREATE_TIME
- LOG_APPEND_TIME
key:
type: string
headers:
type: object
additionalProperties:
type: string
content:
type: string
keyFormat:
#deprecated - wont be filled - use 'keySerde' field instead
$ref: "#/components/schemas/MessageFormat"
valueFormat:
#deprecated - wont be filled - use 'valueSerde' field instead
$ref: "#/components/schemas/MessageFormat"
keySize:
type: integer
format: int64
valueSize:
type: integer
format: int64
keySchemaId:
deprecated: true
description: deprecated - wont be filled - use 'keyDeserializeProperties' field instead
type: string
valueSchemaId:
deprecated: true
description: deprecated - wont be filled - use 'valueDeserializeProperties' field instead
type: string
headersSize:
type: integer
format: int64
keySerde:
type: string
valueSerde:
type: string
keyDeserializeProperties:
additionalProperties:
type: object
valueDeserializeProperties:
additionalProperties:
type: object
required:
- partition
- offset
- timestamp
SeekType:
type: string
enum:
- BEGINNING
- OFFSET
- TIMESTAMP
- LATEST
MessageFilterType:
type: string
enum:
- STRING_CONTAINS
- GROOVY_SCRIPT
SeekDirection:
type: string
enum:
- FORWARD
- BACKWARD
- TAILING
default: FORWARD
Partition:
type: object
properties:
partition:
type: integer
leader:
type: integer
replicas:
type: array
items:
$ref: '#/components/schemas/Replica'
offsetMax:
type: integer
format: int64
offsetMin:
type: integer
format: int64
required:
- topic
- partition
- offsetMax
- offsetMin
ConsumerGroupTopicPartition:
type: object
properties:
topic:
type: string
partition:
type: integer
currentOffset:
type: integer
format: int64
endOffset:
type: integer
format: int64
consumerLag:
type: integer
format: int64
description: null if consumer group has no offsets committed
consumerId:
type: string
host:
type: string
required:
- topic
- partition
ConsumerGroupDetails:
allOf:
- $ref: '#/components/schemas/ConsumerGroup'
- type: object
properties:
partitions:
type: array
items:
$ref: '#/components/schemas/ConsumerGroupTopicPartition'
Metric:
type: object
properties:
name:
type: string
labels:
type: string
additionalProperties:
type: string
value:
type: number
TopicLogdirs:
type: object
properties:
name:
type: string
partitions:
type: array
items:
$ref: '#/components/schemas/TopicPartitionLogdir'
BrokerTopicLogdirs:
type: object
properties:
name:
type: string
partitions:
type: array
items:
$ref: '#/components/schemas/BrokerTopicPartitionLogdir'
TopicPartitionLogdir:
type: object
properties:
partition:
type: integer
size:
type: integer
format: int64
offsetLag:
type: integer
format: int64
BrokerTopicPartitionLogdir:
allOf:
- $ref: '#/components/schemas/TopicPartitionLogdir'
- type: object
properties:
broker:
type: integer
SchemaSubject:
type: object
properties:
subject:
type: string
version:
type: string
id:
type: integer
schema:
type: string
compatibilityLevel:
type: string
schemaType:
$ref: '#/components/schemas/SchemaType'
required:
- id
- subject
- version
- schema
- compatibilityLevel
- schemaType
NewSchemaSubject:
type: object
description: should be set for creating/updating schema subject
properties:
subject:
type: string
schema:
type: string
schemaType:
$ref: '#/components/schemas/SchemaType'
# upon updating a schema, the type of existing schema can't be changed
required:
- subject
- schema
- schemaType
CompatibilityLevel:
type: object
properties:
compatibility:
type: string
enum:
- BACKWARD
- BACKWARD_TRANSITIVE
- FORWARD
- FORWARD_TRANSITIVE
- FULL
- FULL_TRANSITIVE
- NONE
required:
- compatibility
SchemaType:
type: string
description: upon updating a schema, the type of an existing schema can't be changed
enum:
- AVRO
- JSON
- PROTOBUF
CompatibilityCheckResponse:
type: object
properties:
isCompatible:
type: boolean
required:
- isCompatible
SchemaSubjectsResponse:
type: object
properties:
pageCount:
type: integer
schemas:
type: array
items:
$ref: '#/components/schemas/SchemaSubject'
Connect:
type: object
properties:
name:
type: string
address:
type: string
required:
- name
ConnectorConfig:
type: object
additionalProperties:
type: object
TaskId:
type: object
properties:
connector:
type: string
task:
type: integer
Task:
type: object
properties:
id:
$ref: '#/components/schemas/TaskId'
status:
$ref: '#/components/schemas/TaskStatus'
config:
$ref: '#/components/schemas/ConnectorConfig'
required:
- status
NewConnector:
type: object
properties:
name:
type: string
config:
$ref: '#/components/schemas/ConnectorConfig'
required:
- name
- config
Connector:
allOf:
- $ref: '#/components/schemas/NewConnector'
- type: object
properties:
tasks:
type: array
items:
$ref: '#/components/schemas/TaskId'
type:
$ref: '#/components/schemas/ConnectorType'
status:
$ref: '#/components/schemas/ConnectorStatus'
connect:
type: string
required:
- type
- status
- connect
ConnectorType:
type: string
enum:
- SOURCE
- SINK
ConsumerGroupOffsetsReset:
type: object
properties:
topic:
type: string
resetType:
$ref: '#/components/schemas/ConsumerGroupOffsetsResetType'
partitions:
type: array
items:
type: integer
description: list of target partitions, all partitions will be used if it is not set or empty
resetToTimestamp:
type: integer
format: int64
description: should be set if resetType is TIMESTAMP
partitionsOffsets:
type: array
items:
$ref: '#/components/schemas/PartitionOffset'
description: List of partition offsets to reset to, should be set when resetType is OFFSET
required:
- topic
- resetType
PartitionOffset:
type: object
properties:
partition:
type: integer
offset:
type: integer
format: int64
required:
- partition
ConsumerGroupOffsetsResetType:
type: string
enum:
- EARLIEST
- LATEST
- TIMESTAMP
- OFFSET
TaskStatus:
type: object
properties:
id:
type: integer
state:
$ref: '#/components/schemas/ConnectorTaskStatus'
worker_id:
type: string
trace:
type: string
required:
- id
- state
- worker_id
ConnectorStatus:
type: object
properties:
state:
$ref: '#/components/schemas/ConnectorState'
worker_id:
type: string
required:
- state
ConnectorTaskStatus:
type: string
enum:
- RUNNING
- FAILED
- PAUSED
- RESTARTING
- UNASSIGNED
ConnectorState:
type: string
enum:
- RUNNING
- FAILED
- PAUSED
- UNASSIGNED
- TASK_FAILED
ConnectorAction:
type: string
enum:
- RESTART
- RESTART_ALL_TASKS
- RESTART_FAILED_TASKS
- PAUSE
- RESUME
TaskAction:
type: string
enum:
- restart
ConnectorPlugin:
type: object
properties:
class:
type: string
ConnectorPluginConfigDefinition:
type: object
properties:
name:
type: string
type:
type: string
enum:
- BOOLEAN
- CLASS
- DOUBLE
- INT
- LIST
- LONG
- PASSWORD
- SHORT
- STRING
required:
type: boolean
default_value:
type: string
importance:
type: string
enum:
- LOW
- MEDIUM
- HIGH
documentation:
type: string
group:
type: string
width:
type: string
enum:
- SHORT
- MEDIUM
- LONG
- NONE
display_name:
type: string
dependents:
type: array
items:
type: string
order:
type: integer
ConnectorPluginConfigValue:
type: object
properties:
name:
type: string
value:
type: string
recommended_values:
type: array
items:
type: string
errors:
type: array
items:
type: string
visible:
type: boolean
ConnectorPluginConfig:
type: object
properties:
definition:
$ref: '#/components/schemas/ConnectorPluginConfigDefinition'
value:
$ref: '#/components/schemas/ConnectorPluginConfigValue'
ConnectorPluginConfigValidationResponse:
type: object
properties:
name:
type: string
error_count:
type: integer
groups:
type: array
items:
type: string
configs:
type: array
items:
$ref: '#/components/schemas/ConnectorPluginConfig'
KsqlCommandV2:
type: object
properties:
ksql:
type: string
streamsProperties:
type: object
additionalProperties:
type: string
required:
- ksql
KsqlCommandV2Response:
type: object
properties:
pipeId:
type: string
required:
- pipeId
KsqlTableDescription:
type: object
properties:
name:
type: string
topic:
type: string
keyFormat:
type: string
valueFormat:
type: string
isWindowed:
type: boolean
KsqlStreamDescription:
type: object
properties:
name:
type: string
topic:
type: string
keyFormat:
type: string
valueFormat:
type: string
KsqlResponse:
type: object
properties:
table:
$ref: '#/components/schemas/KsqlTableResponse'
KsqlTableResponse:
type: object
properties:
header:
type: string
columnNames:
type: array
items:
type: string
values:
type: array
items:
type: array
items:
type: object
FullConnectorInfo:
type: object
properties:
connect:
type: string
name:
type: string
connector_class:
type: string
type:
$ref: '#/components/schemas/ConnectorType'
topics:
type: array
items:
type: string
status:
$ref: '#/components/schemas/ConnectorStatus'
tasks_count:
type: integer
failed_tasks_count:
type: integer
required:
- name
- connect
- status
PartitionsIncrease:
type: object
properties:
totalPartitionsCount:
type: integer
minimum: 1
required:
- totalPartitionsCount
PartitionsIncreaseResponse:
type: object
properties:
totalPartitionsCount:
type: integer
topicName:
type: string
required:
- totalPartitionsCount
- topicName
ReplicationFactorChange:
type: object
properties:
totalReplicationFactor:
type: integer
required:
- totalReplicationFactor
ReplicationFactorChangeResponse:
type: object
properties:
totalReplicationFactor:
type: integer
topicName:
type: string
required:
- totalReplicationFactor
- topicName
BrokerConfigItem:
type: object
properties:
value:
type: string
BrokerConfig:
type: object
properties:
name:
type: string
value:
type: string
source:
$ref: '#/components/schemas/ConfigSource'
isSensitive:
type: boolean
isReadOnly:
type: boolean
synonyms:
type: array
items:
$ref: '#/components/schemas/ConfigSynonym'
required:
- name
- value
- source
- isSensitive
- isReadOnly
ConfigSource:
type: string
enum:
- DYNAMIC_TOPIC_CONFIG
- DYNAMIC_BROKER_LOGGER_CONFIG
- DYNAMIC_BROKER_CONFIG
- DYNAMIC_DEFAULT_BROKER_CONFIG
- STATIC_BROKER_CONFIG
- DEFAULT_CONFIG
- UNKNOWN
ConfigSynonym:
type: object
properties:
name:
type: string
value:
type: string
source:
$ref: '#/components/schemas/ConfigSource'
CleanUpPolicy:
type: string
enum:
- DELETE
- COMPACT
- COMPACT_DELETE
- UNKNOWN
AuthenticationInfo:
type: object
properties:
rbacEnabled:
type: boolean
description: true if role based access control is enabled and granular permission access is required
userInfo:
$ref: '#/components/schemas/UserInfo'
required:
- rbacEnabled
UserInfo:
type: object
properties:
username:
type: string
permissions:
type: array
items:
$ref: '#/components/schemas/UserPermission'
required:
- username
- permissions
UserPermission:
type: object
properties:
clusters:
type: array
items:
type: string
resource:
$ref: '#/components/schemas/ResourceType'
value:
type: string
actions:
type: array
items:
$ref: '#/components/schemas/Action'
required:
- clusters
- resource
- actions
Action:
type: string
enum:
- VIEW
- EDIT
- CREATE
- DELETE
- RESET_OFFSETS
- EXECUTE
- MODIFY_GLOBAL_COMPATIBILITY
- ANALYSIS_VIEW
- ANALYSIS_RUN
- MESSAGES_READ
- MESSAGES_PRODUCE
- MESSAGES_DELETE
- RESTART
ResourceType:
type: string
enum:
- APPLICATIONCONFIG
- CLUSTERCONFIG
- TOPIC
- CONSUMER
- SCHEMA
- CONNECT
- KSQL
- ACL
KafkaAcl:
type: object
required: [resourceType, resourceName, namePatternType, principal, host, operation, permission]
properties:
resourceType:
$ref: '#/components/schemas/KafkaAclResourceType'
resourceName:
type: string # "*" if acl can be applied to any resource of given type
namePatternType:
$ref: '#/components/schemas/KafkaAclNamePatternType'
principal:
type: string
host:
type: string # "*" if acl can be applied to any resource of given type
operation:
type: string
enum:
- UNKNOWN # Unknown operation, need to update mapping code on BE
- ALL # Cluster, Topic, Group
- READ # Topic, Group
- WRITE # Topic, TransactionalId
- CREATE # Cluster, Topic
- DELETE # Topic, Group
- ALTER # Cluster, Topic,
- DESCRIBE # Cluster, Topic, Group, TransactionalId, DelegationToken
- CLUSTER_ACTION # Cluster
- DESCRIBE_CONFIGS # Cluster, Topic
- ALTER_CONFIGS # Cluster, Topic
- IDEMPOTENT_WRITE # Cluster
- CREATE_TOKENS
- DESCRIBE_TOKENS
permission:
type: string
enum:
- ALLOW
- DENY
KafkaAclResourceType:
type: string
enum:
- UNKNOWN # Unknown operation, need to update mapping code on BE
- TOPIC
- GROUP
- CLUSTER
- TRANSACTIONAL_ID
- DELEGATION_TOKEN
- USER
KafkaAclNamePatternType:
type: string
enum:
- MATCH
- LITERAL
- PREFIXED
RestartRequest:
type: object
properties:
config:
$ref: '#/components/schemas/ApplicationConfig'
UploadedFileInfo:
type: object
required: [location]
properties:
location:
type: string
ApplicationConfigValidation:
type: object
properties:
clusters:
type: object
additionalProperties:
$ref: '#/components/schemas/ClusterConfigValidation'
ApplicationPropertyValidation:
type: object
required: [error]
properties:
error:
type: boolean
errorMessage:
type: string
description: Contains error message if error = true
ClusterConfigValidation:
type: object
required: [kafka]
properties:
kafka:
$ref: '#/components/schemas/ApplicationPropertyValidation'
schemaRegistry:
$ref: '#/components/schemas/ApplicationPropertyValidation'
kafkaConnects:
type: object
additionalProperties:
$ref: '#/components/schemas/ApplicationPropertyValidation'
ksqldb:
$ref: '#/components/schemas/ApplicationPropertyValidation'
ApplicationConfig:
type: object
properties:
properties:
type: object
properties:
auth:
type: object
properties:
type:
type: string
oauth2:
type: object
properties:
client:
type: object
additionalProperties:
type: object
properties:
provider:
type: string
clientId:
type: string
clientSecret:
type: string
clientName:
type: string
redirectUri:
type: string
authorizationGrantType:
type: string
issuerUri:
type: string
authorizationUri:
type: string
tokenUri:
type: string
userInfoUri:
type: string
jwkSetUri:
type: string
userNameAttribute:
type: string
scope:
type: array
items:
type: string
customParams:
type: object
additionalProperties:
type: string
rbac:
type: object
properties:
roles:
type: array
items:
type: object
properties:
name:
type: string
clusters:
type: array
items:
type: string
subjects:
type: array
items:
type: object
properties:
provider:
type: string
type:
type: string
value:
type: string
permissions:
type: array
items:
type: object
properties:
resource:
$ref: '#/components/schemas/ResourceType'
value:
type: string
actions:
type: array
items:
$ref: '#/components/schemas/Action'
webclient:
type: object
properties:
maxInMemoryBufferSize:
type: string
description: "examples: 20, 12KB, 5MB"
kafka:
type: object
properties:
polling:
type: object
properties:
pollTimeoutMs:
type: integer
partitionPollTimeout:
type: integer
noDataEmptyPolls:
type: integer
maxPageSize:
type: integer
defaultPageSize:
type: integer
adminClientTimeout:
type: integer
internalTopicPrefix:
type: string
clusters:
type: array
items:
type: object
properties:
name:
type: string
bootstrapServers:
type: string
ssl:
type: object
properties:
truststoreLocation:
type: string
truststorePassword:
type: string
schemaRegistry:
type: string
schemaRegistryAuth:
type: object
properties:
username:
type: string
password:
type: string
schemaRegistrySsl:
type: object
properties:
keystoreLocation:
type: string
keystorePassword:
type: string
ksqldbServer:
type: string
ksqldbServerSsl:
type: object
properties:
keystoreLocation:
type: string
keystorePassword:
type: string
ksqldbServerAuth:
type: object
properties:
username:
type: string
password:
type: string
kafkaConnect:
type: array
items:
type: object
properties:
name:
type: string
address:
type: string
username:
type: string
password:
type: string
keystoreLocation:
type: string
keystorePassword:
type: string
metrics:
type: object
properties:
type:
type: string
port:
type: integer
format: int32
ssl:
type: boolean
username:
type: string
password:
type: string
keystoreLocation:
type: string
keystorePassword:
type: string
properties:
type: object
additionalProperties: true
readOnly:
type: boolean
disableLogDirsCollection:
type: boolean
serde:
type: array
items:
type: object
properties:
name:
type: string
className:
type: string
filePath:
type: string
properties:
type: object
additionalProperties: true
topicKeysPattern:
type: string
topicValuesPattern:
type: string
defaultKeySerde:
type: string
defaultValueSerde:
type: string
masking:
type: array
items:
type: object
properties:
type:
type: string
enum:
- REMOVE
- MASK
- REPLACE
fields:
type: array
items:
type: string
fieldsNamePattern:
type: string
maskingCharsReplacement:
type: array
items:
type: string
replacement:
type: string
topicKeysPattern:
type: string
topicValuesPattern:
type: string
pollingThrottleRate:
type: integer
format: int64