kafka-ui/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml
Shubham Jain 6df2d0b602
Disable schemaType during schema edit (#2495)
* Disable schemaType during schema edit

Update Schema API documentation

closes #2197

* Apply suggestion


Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
2022-09-15 05:07:45 +04:00

3149 lines
71 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: http://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/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}/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"
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}/messages/schema:
get:
tags:
- Messages
summary: getTopicSchema
operationId: getTopicSchema
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/TopicMessageSchema'
/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 croups 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:
get:
tags:
- Consumer Groups
summary: get all ConsumerGroups
operationId: getConsumerGroups
parameters:
- name: clusterName
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/{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
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:
description: Deprecated - use ksql/v2 instead!
post:
tags:
- Ksql
summary: executeKsqlCommand
operationId: executeKsqlCommand
parameters:
- name: clusterName
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KsqlCommand'
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/KsqlCommandResponse'
/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/info/timestampformat:
get:
tags:
- TimeStampFormat
summary: getTimeStampFormat
operationId: getTimeStampFormat
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimeStampFormat'
components:
schemas:
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
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
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
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
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
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'
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"
required:
- name
TopicCreation:
type: object
properties:
name:
type: string
partitions:
type: integer
replicationFactor:
type: integer
configs:
type: object
additionalProperties:
type: string
required:
- name
- partitions
- replicationFactor
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
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:
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"
messagesBehind:
type: integer
format: int64
required:
- groupId
ConsumerGroupOrdering:
type: string
enum:
- NAME
- MEMBERS
- STATE
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
required:
- partition
TopicMessageSchema:
type: object
properties:
key:
$ref: "#/components/schemas/MessageSchema"
value:
$ref: "#/components/schemas/MessageSchema"
required:
- key
- value
MessageSchema:
type: object
properties:
name:
type: string
source:
type: string
enum:
- SOURCE_SCHEMA_REGISTRY
- SOURCE_PROTO_FILE
- SOURCE_UNKNOWN
schema:
type: string
required:
- name
- source
- schema
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
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:
$ref: "#/components/schemas/MessageFormat"
valueFormat:
$ref: "#/components/schemas/MessageFormat"
keySize:
type: integer
format: int64
valueSize:
type: integer
format: int64
keySchemaId:
type: string
valueSchemaId:
type: string
headersSize:
type: integer
format: int64
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
messagesBehind:
type: integer
format: int64
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
canonicalName:
type: string
params:
type: string
additionalProperties:
type: string
value:
type: string
additionalProperties:
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'
description: upon updating a schema, the type of an 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'
KsqlCommand:
type: object
properties:
ksql:
type: string
streamsProperties:
type: object
additionalProperties:
type: string
required:
- ksql
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
KsqlCommandResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Table'
message:
type: string
Table:
type: object
properties:
headers:
type: array
items:
type: string
rows:
type: array
items:
type: array
items:
type: string
required:
- headers
- rows
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