You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by te...@apache.org on 2023/04/20 02:21:29 UTC
[pulsar-site] branch main updated: Release 2.11.1 (#527)
This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new bebc6ff75a7 Release 2.11.1 (#527)
bebc6ff75a7 is described below
commit bebc6ff75a7200e610257c7a37c7d97f5a537a8e
Author: Jiwei Guo <te...@apache.org>
AuthorDate: Thu Apr 20 10:21:23 2023 +0800
Release 2.11.1 (#527)
* Release 2.11.1
* add release notes
* address comment
* fix
---
data/release-java.js | 3 +-
data/release-pulsar.js | 17 +-
release-notes/versioned/client-java-2.11.1.md | 30 +
release-notes/versioned/pulsar-2.11.1.md | 190 +
releases.json | 1 +
static/swagger/2.11.1/swagger.json | 30319 ++++++++++++++++++++
static/swagger/2.11.1/swaggerfunctions.json | 3302 +++
static/swagger/2.11.1/swaggerlookup.json | 1487 +
static/swagger/2.11.1/swaggerpackages.json | 1792 ++
static/swagger/2.11.1/swaggersink.json | 2587 ++
static/swagger/2.11.1/swaggersource.json | 2535 ++
static/swagger/2.11.1/swaggertransactions.json | 2039 ++
static/swagger/2.11.1/v2/swagger.json | 30319 ++++++++++++++++++++
static/swagger/2.11.1/v2/swaggerlookup.json | 1487 +
static/swagger/2.11.1/v3/swaggerfunctions.json | 3302 +++
static/swagger/2.11.1/v3/swaggerpackages.json | 1792 ++
static/swagger/2.11.1/v3/swaggersink.json | 2587 ++
static/swagger/2.11.1/v3/swaggersource.json | 2535 ++
static/swagger/2.11.1/v3/swaggertransactions.json | 2039 ++
static/swagger/restApiVersions.json | 19 +
20 files changed, 88377 insertions(+), 5 deletions(-)
diff --git a/data/release-java.js b/data/release-java.js
index b70aa847191..d5fd4ca56ec 100644
--- a/data/release-java.js
+++ b/data/release-java.js
@@ -1,5 +1,6 @@
module.exports = [
-{tagName: "v2.11.0",vtag:"2.11.x",releaseNotes:"/release-notes/versioned/client-java-2.11.0/",doc:"/docs/2.11.x/client-libraries-java",version:"v2.11.x"},
+{tagName: "v2.11.1",vtag:"2.11.x",releaseNotes:"/release-notes/versioned/client-java-2.11.1/",doc:"/docs/2.11.x/client-libraries-java",version:"v2.11.x"},
+{tagName: "v2.11.0",vtag:"2.11.x",releaseNotes:"/release-notes/versioned/client-java-2.11.0/",doc:"/docs/2.11.x/client-libraries-java",version:""},
{tagName: "v2.10.4",vtag:"2.10.x",releaseNotes:"/release-notes/versioned/client-java-2.10.4/",doc:"/docs/2.10.x/client-libraries-java",version:"v2.10.x"},
{tagName: "v2.10.3",vtag:"2.10.x",releaseNotes:"/release-notes/versioned/client-java-2.10.3/",doc:"/docs/2.10.x/client-libraries-java",version:""},
{tagName: "v2.10.2",vtag:"2.10.x",releaseNotes:"/release-notes/versioned/client-java-2.10.2/",doc:"/docs/2.10.x/client-libraries-java",version:""},
diff --git a/data/release-pulsar.js b/data/release-pulsar.js
index 5994c54e580..43fd3786e19 100644
--- a/data/release-pulsar.js
+++ b/data/release-pulsar.js
@@ -1,14 +1,23 @@
module.exports = [
{
"author": "Technoboy-",
- "tagName": "v2.11.0",
- "publishedAt": "2023-01-11T01:53:34Z",
+ "tagName": "v2.11.1",
+ "publishedAt": "2023-04-19T16:53:34Z",
"vtag": "2.11.x",
- "releaseNotes": "/release-notes/versioned/pulsar-2.11.0/",
- "releaseBlog": "/blog/2023/01/20/Apache-Pulsar-2-11-0",
+ "releaseNotes": "/release-notes/versioned/pulsar-2.11.1/",
"doc": "/docs/2.11.x",
"version": "v2.11.x"
},
+ {
+ "author": "Technoboy-",
+ "tagName": "v2.11.0",
+ "publishedAt": "2023-01-11T01:53:34Z",
+ "vtag": "2.11.x",
+ "releaseNotes": "/release-notes/versioned/pulsar-2.11.0/",
+ "releaseBlog": "/blog/2023/01/20/Apache-Pulsar-2-11-0",
+ "doc": "/docs/2.11.x",
+ "version": "v2.11.x"
+ },
{
"author": "liangyepianzhou",
"tagName": "v2.10.4",
diff --git a/release-notes/versioned/client-java-2.11.1.md b/release-notes/versioned/client-java-2.11.1.md
new file mode 100644
index 00000000000..2c0000ad914
--- /dev/null
+++ b/release-notes/versioned/client-java-2.11.1.md
@@ -0,0 +1,30 @@
+---
+id: client-java-2.11.1
+title: Client Java 2.11.1
+sidebar_label: Client Java 2.11.1
+---
+
+- [feature][Java] Support MAX_ACK_GROUP_SIZE configurable [#18107](https://github.com/apache/pulsar/pull/18107)
+- [feature][Java] Support LocalDateTime Conversion [#18334](https://github.com/apache/pulsar/pull/18334)
+- [improve][Java] Set fields earlier for correct ClientCnx initialization [#19327](https://github.com/apache/pulsar/pull/19327)
+- [improve][Java] Improve docs and code quality about KeyValueSchema usages [#17256](https://github.com/apache/pulsar/pull/17256)
+- [improve][Java] Add init capacity for messages in BatchMessageContainerImpl [#17822](https://github.com/apache/pulsar/pull/17822)
+- [improve][Java] Unify the acknowledge process for batch and non-batch message IDs [#17833](https://github.com/apache/pulsar/pull/17833)
+- [improve][Java] Set authentication when using loadConf in client and admin client [#18358](https://github.com/apache/pulsar/pull/18358)
+- [improve][Java] Change the get lastMessageId to debug level [#18421](https://github.com/apache/pulsar/pull/18421)
+- [improve][Java] Avoid redelivering duplicated messages when batching is enabled [#18486](https://github.com/apache/pulsar/pull/18486)
+- [improve][Java] Broker address resolution wrong if connect through a multi-dns names proxy [#19597](https://github.com/apache/pulsar/pull/19597)
+- [improve][Java] Moving get sequenceId into the sync code segment [#19837](https://github.com/apache/pulsar/pull/19837)
+- [fix][Java] For exclusive subscriptions, if two consumers are created repeatedly, the second consumer will block [#18633](https://github.com/apache/pulsar/pull/18633)
+- [fix][Java] Prevent DNS reverse lookup when physical address is an IP address [#19028](https://github.com/apache/pulsar/pull/19028)
+- [fix][Java] Fix reader listener can't auto ack with pooled message [#19354](https://github.com/apache/pulsar/pull/19354)
+- [fix][Java] Fix exception when calling loadConf on a ConsumerBuilder that has a KeySharedPolicy [#18345](https://github.com/apache/pulsar/pull/18345)
+- [fix][Java] Fix pendingLookupRequestSemaphore leak [#18219](https://github.com/apache/pulsar/pull/18219)
+- [fix][Java] Fixes batch_size not checked in MessageId#fromByteArrayWithTopic [#18405](https://github.com/apache/pulsar/pull/18405)
+- [fix][Java] Fix possible npe [#18406](https://github.com/apache/pulsar/pull/18406)
+- [fix][Java] Fix failover/exclusive consumer with batch cumulate ack issue [#18454](https://github.com/apache/pulsar/pull/18454)
+- [fix][Java] Fix the Windows absolute path not recognized in auth param string [#18403](https://github.com/apache/pulsar/pull/18403)
+- [fix][Java] Fix memory leak if enabled pooled messages [#19585](https://github.com/apache/pulsar/pull/19585)
+- [fix][Java] Fix authentication not update after changing the serviceUrl [#19510](https://github.com/apache/pulsar/pull/19510)
+- [fix][Java] Fix async completion in ConsumerImpl#processPossibleToDLQ [#19392](https://github.com/apache/pulsar/pull/19392)
+- [fix][Java] Fix DeadLetterProducer creation callback blocking client io thread [#19930](https://github.com/apache/pulsar/pull/19930)
diff --git a/release-notes/versioned/pulsar-2.11.1.md b/release-notes/versioned/pulsar-2.11.1.md
new file mode 100644
index 00000000000..1fe3252d1b2
--- /dev/null
+++ b/release-notes/versioned/pulsar-2.11.1.md
@@ -0,0 +1,190 @@
+---
+id: pulsar-2.11.1
+title: Apache Pulsar 2.11.1
+sidebar_label: Apache Pulsar 2.11.1
+---
+
+#### 2023-04-19
+
+### Broker
+- AbstractBatchedMetadataStore - use AlreadyClosedException instead of IllegalStateException [#19284](https://github.com/apache/pulsar/pull/19284)
+- Add ref count for sticky hash to optimize the performance of Key_Shared subscription [#19167](https://github.com/apache/pulsar/pull/19167)
+- Pass subName for subscription operations in ServerCnx [#19184](https://github.com/apache/pulsar/pull/19184)
+- Enable custom metadata stores [#19208](https://github.com/apache/pulsar/pull/19208)
+- Topics stats shows msgBacklog but there reality no backlog [#19275](https://github.com/apache/pulsar/pull/19275)
+- Fix open cursor with null-initialPosition result with earliest position [#18416](https://github.com/apache/pulsar/pull/18416)
+- Added isActive in ManagedCursorImpl [#19341](https://github.com/apache/pulsar/pull/19341)
+- Replaced checkBackloggedCursors with checkBackloggedCursor(single subscription check) upon subscription [#19343](https://github.com/apache/pulsar/pull/19343)
+- Close TransactionBuffer when MessageDeduplication#checkStatus failed [#19289](https://github.com/apache/pulsar/pull/19289)
+- Fix the incorrect total size if use ML interceptor [#19404](https://github.com/apache/pulsar/pull/19404)
+- Support deleting partitioned topics with the keyword -partition- [#19230](https://github.com/apache/pulsar/pull/19230)
+- Correct the prompt message [#17009](https://github.com/apache/pulsar/pull/17009)
+- Expect msgs after server initiated CloseProducer [#19446](https://github.com/apache/pulsar/pull/19446)
+- Fix Npe thrown by splitBundle [#17370](https://github.com/apache/pulsar/pull/17370)
+- Fix executeWithRetry result is null [#17694](https://github.com/apache/pulsar/pull/17694)
+- ManagedLedger: move to FENCED state in case of BadVersionException [#17736](https://github.com/apache/pulsar/pull/17736)
+- Fix can not revoke permission after update topic partition [#17393](https://github.com/apache/pulsar/pull/17393)
+- Allow deletion of a namespace that was left in deleted status [#17592](https://github.com/apache/pulsar/pull/17592)
+- Add UncaughtExceptionHandler for every thread pool [#18211](https://github.com/apache/pulsar/pull/18211)
+- Support setting ForceDeleteNamespaceAllowed dynamically [#18181](https://github.com/apache/pulsar/pull/18181)
+- Support setting forceDeleteTenantAllowed dynamically [#18192](https://github.com/apache/pulsar/pull/18192)
+- Remove locallyAcquiredLock when removeOwnership [#18197](https://github.com/apache/pulsar/pull/18197)
+- Update the log print content of createSubscriptions [#18024](https://github.com/apache/pulsar/pull/18024)
+- Unify time unit at dropping the backlog on a topic [#17957](https://github.com/apache/pulsar/pull/17957)
+- Fix mutex never released when trimming [#17911](https://github.com/apache/pulsar/pull/17911)
+- Fix getChildren in MemoryMetadataStore and EtcdMetadataStore [#18172](https://github.com/apache/pulsar/pull/18172)
+- Fix the order of resource close in the InMemoryDelayedDeliveryTracker [#18000](https://github.com/apache/pulsar/pull/18000)
+- Allow to configure and disable the size of lookahead for detecting fixed delays in messages [#17907](https://github.com/apache/pulsar/pull/17907)
+- Make BookieId work with PulsarRegistrationDriver [#17922](https://github.com/apache/pulsar/pull/17922)
+- In the trimDeletedEntries method, release the removed entry [#18305](https://github.com/apache/pulsar/pull/18305)
+- Make Consumer#equals more effective [#18662](https://github.com/apache/pulsar/pull/18662)
+- PulsarRegistrationClient - implement getAllBookies and follow BookieServiceInfo updates [#18133](https://github.com/apache/pulsar/pull/18133)
+- Fix PulsarRegistrationClient and ZkRegistrationClient not aware rack info problem [#18672](https://github.com/apache/pulsar/pull/18672)
+- Simplify extract entryMetadata code in filterEntriesForConsumer [#18729](https://github.com/apache/pulsar/pull/18729)
+- Fix uncompleted future when getting the topic policies of a deleted topic [#18824](https://github.com/apache/pulsar/pull/18824)
+- Close transactionBuffer after MessageDeduplication#checkStatus failed [#19157](https://github.com/apache/pulsar/pull/19157)
+- GetLastMessageId returns a wrong batch index of last message if enabled read compacted [#18877](https://github.com/apache/pulsar/pull/18877)
+- Fix multi invocation for ledger createComplete [#18975](https://github.com/apache/pulsar/pull/18975)
+- Fix txn coordinator recover handle committing and aborting txn race condition [#19201](https://github.com/apache/pulsar/pull/19201)
+- Reset individualDeletedMessagesSerializedSize after acked all messages [#19428](https://github.com/apache/pulsar/pull/19428)
+- Fix potential NPE cause future never complete [#19415](https://github.com/apache/pulsar/pull/19415)
+- Fix the return value of canConsumeAsync [#19412](https://github.com/apache/pulsar/pull/19412)
+- Close TransactionBuffer when creating persistent topic timeout [#19384](https://github.com/apache/pulsar/pull/19384)
+- Handle changeToReadyState failure correctly in TC client [#19308](https://github.com/apache/pulsar/pull/19308)
+- The atomicity of multiple fields of ml is broken [#19346](https://github.com/apache/pulsar/pull/19346)
+- MessagesConsumedCounter of NonDurableCursor was initialized incorrectly [#19355](https://github.com/apache/pulsar/pull/19355)
+- Improve PersistentMessageExpiryMonitor expire speed when ledger not existed [#17842](https://github.com/apache/pulsar/pull/17842)
+- Always send correct transaction id in end txn response [#19137](https://github.com/apache/pulsar/pull/19137)
+- Allow superusers to abort transactions [#19467](https://github.com/apache/pulsar/pull/19467)
+- Make ServerCnx#originalAuthData volatile [#19507](https://github.com/apache/pulsar/pull/19507)
+- Validate originalPrincipal earlier in ServerCnx [#19270](https://github.com/apache/pulsar/pull/19270)
+- Require authRole is proxyRole to set originalPrincipal [#19455](https://github.com/apache/pulsar/pull/19455)
+- ServerCnx broken after recent cherry-picks [#19521](https://github.com/apache/pulsar/pull/19521)
+- ServerCnx: go to Failed state when auth fails [#19312](https://github.com/apache/pulsar/pull/19312)
+- Add test to verify authRole cannot change [#19430](https://github.com/apache/pulsar/pull/19430)
+- Make authentication refresh threadsafe [#19506](https://github.com/apache/pulsar/pull/19506)
+- OneStageAuth State: move authn out of constructor [#19295](https://github.com/apache/pulsar/pull/19295)
+- Allow proxy to pass same role for authRole and originalRole [#19557](https://github.com/apache/pulsar/pull/19557)
+- Copy command fields and fix potential thread-safety in ServerCnx [#19517](https://github.com/apache/pulsar/pull/19517)
+- Topic load fail by ledger lost [#19444](https://github.com/apache/pulsar/pull/19444)
+- Incorrect service name selection logic [#19505](https://github.com/apache/pulsar/pull/19505)
+- Make the service name resolver cache of PulsarWebResource expire after access [#19532](https://github.com/apache/pulsar/pull/19532)
+- Simplify enabling Broker, WS Proxy hostname verification [#19674](https://github.com/apache/pulsar/pull/19674)
+- Improve tls config on replication client and cluster cli [#19588](https://github.com/apache/pulsar/pull/19588)
+- Fix geo-replication admin [#19686](https://github.com/apache/pulsar/pull/19686)
+- Filter system topic when getting topic list by binary proto [#19667](https://github.com/apache/pulsar/pull/19667)
+- Fixed history load not releasing [#19560](https://github.com/apache/pulsar/pull/19560)
+- Fix loadbalance score calculation problem [#19420](https://github.com/apache/pulsar/pull/19420)
+- Use shrink map for trackerCache [#19534](https://github.com/apache/pulsar/pull/19534)
+- Fix individual ack batch message with transaction abort redevlier duplicate messages [#14327](https://github.com/apache/pulsar/pull/14327)
+- Fix receive duplicated messages due to pendingAcks in PendingAckHandle [#19581](https://github.com/apache/pulsar/pull/19581)
+- Fail to update partition meta of topic due to ConflictException: subscription already exists for topic [#17251](https://github.com/apache/pulsar/pull/17251)
+- Fix catching ConflictException when update topic partition [#17374](https://github.com/apache/pulsar/pull/17374)
+- Only create extended partitions when updating partition number [#17349](https://github.com/apache/pulsar/pull/17349)
+- Create replicated subscriptions for new partitions when needed [#18659](https://github.com/apache/pulsar/pull/18659)
+- Fix race condition while updating partition number [#19199](https://github.com/apache/pulsar/pull/19199)
+- Topic close failure leaves subscription in a permanent fence state [#19692](https://github.com/apache/pulsar/pull/19692)
+- Fix potential exception cause the policy service init fail [#19746](https://github.com/apache/pulsar/pull/19746)
+- Allow version to start positive and grow by more than one [#19503](https://github.com/apache/pulsar/pull/19503)
+- Fix deadlock causes session notification not to work [#19754](https://github.com/apache/pulsar/pull/19754)
+- Fix issue where msgRateExpired may not refresh forever [#19759](https://github.com/apache/pulsar/pull/19759)
+- Delete topic failed if disabled system topic [#19735](https://github.com/apache/pulsar/pull/19735)
+- Fix index generator is not rollback after entries are failed added [#19727](https://github.com/apache/pulsar/pull/19727)
+- Store the original authentication data [#19519](https://github.com/apache/pulsar/pull/19519)
+- Copy subscription properties during updating the topic partition number [#19800](https://github.com/apache/pulsar/pull/19800)
+- Fix close borrowed executor [#19761](https://github.com/apache/pulsar/pull/19761)
+- Fixed race condition between ResourceLock update and invalidation [#19817](https://github.com/apache/pulsar/pull/19817)
+- Counter of pending send messages in Replicator incorrect if schema future not complete [#19242](https://github.com/apache/pulsar/pull/19242)
+- Add getState in transaction for client API [#19834](https://github.com/apache/pulsar/pull/19834)
+- Follow up #19230 to tighten the validation scope [#19234](https://github.com/apache/pulsar/pull/19234)
+- Authorize originalPrincipal when provided [#19830](https://github.com/apache/pulsar/pull/19830)
+- Follow up #19817, Fix race condition between ResourceLock update and invalidation [#19859](https://github.com/apache/pulsar/pull/19859)
+- Fix delete system topic clean topic policy [#19835](https://github.com/apache/pulsar/pull/19835)
+- Fix NPE when update topic policy [#19875](https://github.com/apache/pulsar/pull/19875)
+- Make the result of delete cursor is success if cursor is deleted [#19825](https://github.com/apache/pulsar/pull/19825)
+- Only validate superuser access if authz enabled [#19989](https://github.com/apache/pulsar/pull/19989)
+- Cleanup how superusers abort txns [#19976](https://github.com/apache/pulsar/pull/19976)
+- Return if AbstractDispatcherSingleActiveConsumer closed [#19934](https://github.com/apache/pulsar/pull/19934)
+- Use AuthenticationParameters for rest producer [#20046](https://github.com/apache/pulsar/pull/20046)
+- Fix uncompleted future when removing cursor [#20050](https://github.com/apache/pulsar/pull/20050)
+- Fix estimateBacklogFromPosition if position is greater than the greatest ledgerId [#20069](https://github.com/apache/pulsar/pull/20069)
+
+### Clients
+- [Java] Fix reader listener can't auto ack with pooled message [#19354](https://github.com/apache/pulsar/pull/19354)
+- [Java] Prevent DNS reverse lookup when physical address is an IP address [#19028](https://github.com/apache/pulsar/pull/19028)
+- [Java] Set fields earlier for correct ClientCnx initialization [#19327](https://github.com/apache/pulsar/pull/19327)
+- [Java] Improve docs and code quality about KeyValueSchema usages [#17256](https://github.com/apache/pulsar/pull/17256)
+- [Java] Add init capacity for messages in BatchMessageContainerImpl [#17822](https://github.com/apache/pulsar/pull/17822)
+- [Java] Support MAX_ACK_GROUP_SIZE configurable [#18107](https://github.com/apache/pulsar/pull/18107)
+- [Java] Fix exception when calling loadConf on a ConsumerBuilder that has a KeySharedPolicy [#18345](https://github.com/apache/pulsar/pull/18345)
+- [Java] Support LocalDateTime Conversion [#18334](https://github.com/apache/pulsar/pull/18334)
+- [Java] Fix pendingLookupRequestSemaphore leak [#18219](https://github.com/apache/pulsar/pull/18219)
+- [Java] Unify the acknowledge process for batch and non-batch message IDs [#17833](https://github.com/apache/pulsar/pull/17833)
+- [Java] Set authentication when using loadConf in client and admin client [#18358](https://github.com/apache/pulsar/pull/18358)
+- [Java] Fixes batch_size not checked in MessageId#fromByteArrayWithTopic [#18405](https://github.com/apache/pulsar/pull/18405)
+- [Java] Fix possible npe [#18406](https://github.com/apache/pulsar/pull/18406)
+- [Java] Change the get lastMessageId to debug level [#18421](https://github.com/apache/pulsar/pull/18421)
+- [Java] Fix failover/exclusive consumer with batch cumulate ack issue [#18454](https://github.com/apache/pulsar/pull/18454)
+- [Java] Avoid redelivering duplicated messages when batching is enabled [#18486](https://github.com/apache/pulsar/pull/18486)
+- [Java] For exclusive subscriptions, if two consumers are created repeatedly, the second consumer will block [#18633](https://github.com/apache/pulsar/pull/18633)
+- [Java] Fix the Windows absolute path not recognized in auth param string [#18403](https://github.com/apache/pulsar/pull/18403)
+- [Java] Broker address resolution wrong if connect through a multi-dns names proxy [#19597](https://github.com/apache/pulsar/pull/19597)
+- [Java] Fix memory leak if enabled pooled messages [#19585](https://github.com/apache/pulsar/pull/19585)
+- [Java] Fix authentication not update after changing the serviceUrl [#19510](https://github.com/apache/pulsar/pull/19510)
+- [Java] Fix async completion in ConsumerImpl#processPossibleToDLQ [#19392](https://github.com/apache/pulsar/pull/19392)
+- [Java] Moving get sequenceId into the sync code segment [#19837](https://github.com/apache/pulsar/pull/19837)
+- [Java] Fix DeadLetterProducer creation callback blocking client io thread [#19930](https://github.com/apache/pulsar/pull/19930)
+
+### Pulsar IO and Pulsar Functions
+- [Functions] Ensure prometheus metrics are grouped by type [#15558](https://github.com/apache/pulsar/pull/15558)
+- [Functions] Fix k8s merge runtime opts bug [#19481](https://github.com/apache/pulsar/pull/19481)
+- [Functions] Use AuthorizationServer more in Function Worker API [#19975](https://github.com/apache/pulsar/pull/19975)
+- [IO Connector] Debezium sources: Support loading config from secrets [#19205](https://github.com/apache/pulsar/pull/19205)
+- [IO Connector] Elasticsearch sink: Support loading config from secrets [#19206](https://github.com/apache/pulsar/pull/19206)
+- [IO Connector] Update Elasticsearch sink idle cnx timeout to 30s [#19377](https://github.com/apache/pulsar/pull/19377)
+- [IO Connector] DBC sink: allow any jdbc driver [#17951](https://github.com/apache/pulsar/pull/17951)
+- [IO Connector] ElasticSearch sink: align null fields behaviour [#18577](https://github.com/apache/pulsar/pull/18577)
+- [IO Connector] KCA sink: handle null values with KeyValue<Avro,Avro> schema [#19861](https://github.com/apache/pulsar/pull/19861)
+- [IO Connector] KCA: option to collapse partitioned topics [#19923](https://github.com/apache/pulsar/pull/19923)
+- [IO Connector] KCA: flag to force optional primitive schemas [#19951](https://github.com/apache/pulsar/pull/19951)
+-
+
+### Observability
+- [Broker] Fix wrong metrics text generated when label_cluster specified [#17704](https://github.com/apache/pulsar/pull/17704)
+- [Broker] Add metrics for transaction [#15140](https://github.com/apache/pulsar/pull/15140)
+- [Broker] Remove timestamp from Prometheus metrics [#17419](https://github.com/apache/pulsar/pull/17419)
+- [Broker] Fix incorrect bundle split count metric [#17970](https://github.com/apache/pulsar/pull/17970)
+- [Broker] Update authentication failed metrics report [#17787](https://github.com/apache/pulsar/pull/17787)
+- [Function] Fix invalid metric type "gauge " [#18129](https://github.com/apache/pulsar/pull/18129)
+
+### CLI
+- [Pulsar Admin] Returns 4xx error when pulsar-worker-service is disabled and trying to access it [#17901](https://github.com/apache/pulsar/pull/17901)
+- [Pulsar Admin] PulsarAdminBuilderImpl overrides timeout properties passed through config map [#17375](https://github.com/apache/pulsar/pull/17375)
+- [Pulsar Admin] Improve partitioned-topic condition evaluation [#19015](https://github.com/apache/pulsar/pull/19015)
+- [Pulsar Admin] Make the default value of param --get-subscription-backlog-size of admin API topics stats true [#19302](https://github.com/apache/pulsar/pull/19302)
+- [Pulsar Admin] Make response code to 400 instead of 500 when deleting topic fails due to enabled geo-replication [#19879](https://github.com/apache/pulsar/pull/19879)
+- [Pulsar Admin] Fix delete tenant [#19925](https://github.com/apache/pulsar/pull/19925)
+- [Pulsar Admin] Fix incorrect state replication.connected on API partitioned-topic stat [#19942](https://github.com/apache/pulsar/pull/19942)
+- [Pulsar CLI] Quit PerformanceConsumer after receiving numMessages messages [#17750](https://github.com/apache/pulsar/pull/17750)
+- [Pulsar CLI] Check numMessages after incrementing counter [#17826](https://github.com/apache/pulsar/pull/17826)
+- [Pulsar CLI] Fix Pulsar admin tool is ignoring tls-trust-cert path arg [#19696](https://github.com/apache/pulsar/pull/19696)
+- [Pulsar CLI] Fix Broker crashed by too much memory usage of pulsar tools [#20031](https://github.com/apache/pulsar/pull/20031)
+
+
+### Others
+- [Proxy] Only go to connecting state once [#19331](https://github.com/apache/pulsar/pull/19331)
+- [Proxy] Fix using wrong client version in pulsar proxy [#19569](https://github.com/apache/pulsar/pull/19569)
+- [Proxy] Implement graceful shutdown for Pulsar Proxy [#20011](https://github.com/apache/pulsar/pull/20011)
+- [Proxy] Fix connection read timeout handling in Pulsar Proxy [#20014](https://github.com/apache/pulsar/pull/20014)
+- [WebSocket] Add ping support [#19255](https://github.com/apache/pulsar/pull/19255)
+- [Schema] Do not print error log with stacktrace for 404 [#19130](https://github.com/apache/pulsar/pull/19130)
+- [Tiered Storage] Don't cleanup data when offload met Metastore exception [#17512](https://github.com/apache/pulsar/pull/17512)
+- Fix transitive critical CVEs in file-system tiered storage [#19957](https://github.com/apache/pulsar/pull/19957)
+
+### Library updates
+- Bump snakeyaml to 1.32 for CVE-2022-38752 [#17779](https://github.com/apache/pulsar/pull/17779)
+- Upgrade jettison to 1.5.3 [#19038](https://github.com/apache/pulsar/pull/19038)
+- Upgrade woodstox to 5.4.0 [#19041](https://github.com/apache/pulsar/pull/19041)
+- Upgrade lombok to 1.8.26 [#19426](https://github.com/apache/pulsar/pull/19426)
+- Upgrade to zk 3.8.1 [#19425](https://github.com/apache/pulsar/pull/19425)
+- Upgrade bookkeeper to 4.15.4 [#19812](https://github.com/apache/pulsar/pull/19812)
diff --git a/releases.json b/releases.json
index 4e312217bde..9995fbf7f40 100644
--- a/releases.json
+++ b/releases.json
@@ -1,4 +1,5 @@
[
+ "2.11.1",
"2.11.0",
"2.10.4",
"2.10.3",
diff --git a/static/swagger/2.11.1/swagger.json b/static/swagger/2.11.1/swagger.json
new file mode 100644
index 00000000000..d30d1365777
--- /dev/null
+++ b/static/swagger/2.11.1/swagger.json
@@ -0,0 +1,30319 @@
+{
+ "basePath": "/admin/v2",
+ "definitions": {
+ "AllocatorStats": {
+ "properties": {
+ "directArenas": {
+ "items": {
+ "$ref": "#/definitions/PoolArenaStats"
+ },
+ "type": "array"
+ },
+ "heapArenas": {
+ "items": {
+ "$ref": "#/definitions/PoolArenaStats"
+ },
+ "type": "array"
+ },
+ "normalCacheSize": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numDirectArenas": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numHeapArenas": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numThreadLocalCaches": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "smallCacheSize": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "Annotation": {
+ "type": "object"
+ },
+ "AnnotationIntrospector": {
+ "type": "object"
+ },
+ "ArrayBuilders": {
+ "properties": {
+ "booleanBuilder": {
+ "$ref": "#/definitions/BooleanBuilder"
+ },
+ "byteBuilder": {
+ "$ref": "#/definitions/ByteBuilder"
+ },
+ "doubleBuilder": {
+ "$ref": "#/definitions/DoubleBuilder"
+ },
+ "floatBuilder": {
+ "$ref": "#/definitions/FloatBuilder"
+ },
+ "intBuilder": {
+ "$ref": "#/definitions/IntBuilder"
+ },
+ "longBuilder": {
+ "$ref": "#/definitions/LongBuilder"
+ },
+ "shortBuilder": {
+ "$ref": "#/definitions/ShortBuilder"
+ }
+ },
+ "type": "object"
+ },
+ "AuthPolicies": {
+ "properties": {
+ "namespaceAuthentication": {
+ "additionalProperties": {
+ "items": {
+ "enum": [
+ "produce",
+ "consume",
+ "functions",
+ "sources",
+ "sinks",
+ "packages"
+ ],
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "type": "object"
+ },
+ "subscriptionAuthentication": {
+ "additionalProperties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "type": "object"
+ },
+ "topicAuthentication": {
+ "additionalProperties": {
+ "additionalProperties": {
+ "items": {
+ "enum": [
+ "produce",
+ "consume",
+ "functions",
+ "sources",
+ "sinks",
+ "packages"
+ ],
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "type": "object"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "AuthenticationDataSource": {
+ "properties": {
+ "commandData": {
+ "type": "string"
+ },
+ "httpAuthType": {
+ "type": "string"
+ },
+ "peerAddress": {
+ "$ref": "#/definitions/SocketAddress"
+ },
+ "subscription": {
+ "type": "string"
+ },
+ "tlsCertificates": {
+ "items": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "AuthenticationParameters": {
+ "properties": {
+ "clientAuthenticationDataSource": {
+ "$ref": "#/definitions/AuthenticationDataSource"
+ },
+ "clientRole": {
+ "type": "string"
+ },
+ "originalPrincipal": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "AutoFailoverPolicyData": {
+ "properties": {
+ "parameters": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "policyType": {
+ "enum": [
+ "min_available"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "AutoSubscriptionCreationOverride": {
+ "properties": {
+ "allowAutoSubscriptionCreation": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "AutoTopicCreationOverride": {
+ "properties": {
+ "allowAutoTopicCreation": {
+ "type": "boolean"
+ },
+ "defaultNumPartitions": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "topicType": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "BacklogQuota": {
+ "properties": {
+ "limit": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "limitSize": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "limitTime": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "policy": {
+ "enum": [
+ "producer_request_hold",
+ "producer_exception",
+ "consumer_backlog_eviction"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Base64Variant": {
+ "properties": {
+ "maxLineLength": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "paddingByte": {
+ "format": "byte",
+ "type": "string"
+ },
+ "paddingChar": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "BookieAffinityGroupData": {
+ "properties": {
+ "bookkeeperAffinityGroupPrimary": {
+ "type": "string"
+ },
+ "bookkeeperAffinityGroupSecondary": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "BookieInfo": {
+ "properties": {
+ "hostname": {
+ "type": "string"
+ },
+ "rack": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "BookiesClusterInfo": {
+ "properties": {
+ "bookies": {
+ "items": {
+ "$ref": "#/definitions/RawBookieInfo"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "BooleanBuilder": {
+ "type": "object"
+ },
+ "BrokerInfo": {
+ "properties": {
+ "serviceUrl": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "BrokerNamespaceIsolationData": {
+ "description": "The namespace isolation data for a given broker",
+ "properties": {
+ "brokerName": {
+ "description": "The broker name",
+ "example": "broker1:8080",
+ "type": "string"
+ },
+ "namespaceRegex": {
+ "description": "The namespace-isolation policies attached to this broker",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "policyName": {
+ "description": "Policy name",
+ "example": "my-policy",
+ "type": "string"
+ },
+ "primary": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "BundlesData": {
+ "properties": {
+ "boundaries": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "numBundles": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "ByteBuilder": {
+ "type": "object"
+ },
+ "Certificate": {
+ "properties": {
+ "encoded": {
+ "items": {
+ "format": "byte",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "publicKey": {
+ "$ref": "#/definitions/PublicKey"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CharacterEscapes": {
+ "properties": {
+ "escapeCodesForAscii": {
+ "items": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ClassIntrospector": {
+ "type": "object"
+ },
+ "ClassLoader": {
+ "properties": {
+ "definedPackages": {
+ "items": {
+ "$ref": "#/definitions/Package"
+ },
+ "type": "array"
+ },
+ "name": {
+ "type": "string"
+ },
+ "parent": {
+ "$ref": "#/definitions/ClassLoader"
+ },
+ "registeredAsParallelCapable": {
+ "type": "boolean"
+ },
+ "unnamedModule": {
+ "$ref": "#/definitions/Module"
+ }
+ },
+ "type": "object"
+ },
+ "ClusterData": {
+ "description": "The configuration data for a cluster",
+ "properties": {
+ "authenticationParameters": {
+ "description": "Authentication parameters when client would like to connect to cluster.",
+ "type": "string"
+ },
+ "authenticationPlugin": {
+ "description": "Authentication plugin when client would like to connect to cluster.",
+ "example": "org.apache.pulsar.client.impl.auth.AuthenticationToken",
+ "type": "string"
+ },
+ "brokerClientCertificateFilePath": {
+ "description": "TLS certificate file for internal client, used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientKeyFilePath": {
+ "description": "TLS private key file for internal client, used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsEnabled": {
+ "description": "Enable TLS when talking with other brokers in the same cluster (admin operation) or different clusters (replication)",
+ "type": "boolean"
+ },
+ "brokerClientTlsEnabledWithKeyStore": {
+ "description": "Whether internal client use KeyStore type to authenticate with other Pulsar brokers",
+ "type": "boolean"
+ },
+ "brokerClientTlsKeyStore": {
+ "description": "TLS KeyStore path for internal client, used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsKeyStorePassword": {
+ "description": "TLS KeyStore password for internal client, used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsKeyStoreType": {
+ "description": "TLS KeyStore type configuration for internal client: JKS, PKCS12, used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsTrustStore": {
+ "description": "TLS TrustStore path for internal client used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsTrustStorePassword": {
+ "description": "TLS TrustStore password for internal client used by the internal client to authenticate with Pulsar brokers",
+ "type": "string"
+ },
+ "brokerClientTlsTrustStoreType": {
+ "description": "TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers",
+ "example": "JKS",
+ "type": "string"
+ },
+ "brokerClientTrustCertsFilePath": {
+ "description": "Path for the trusted TLS certificate file for outgoing connection to a server (broker)",
+ "type": "string"
+ },
+ "brokerServiceUrl": {
+ "description": "The broker service url (for produce and consume operations)",
+ "example": "pulsar://pulsar.example.com:6650",
+ "type": "string"
+ },
+ "brokerServiceUrlTls": {
+ "description": "The secured broker service url (for produce and consume operations)",
+ "example": "pulsar+ssl://pulsar.example.com:6651",
+ "type": "string"
+ },
+ "listenerName": {
+ "description": "listenerName when client would like to connect to cluster",
+ "type": "string"
+ },
+ "peerClusterNames": {
+ "description": "A set of peer cluster names",
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "proxyProtocol": {
+ "description": "protocol to decide type of proxy routing eg: SNI-routing",
+ "enum": [
+ "SNI"
+ ],
+ "example": "SNI",
+ "type": "string"
+ },
+ "proxyServiceUrl": {
+ "description": "Proxy-service url when client would like to connect to broker via proxy.",
+ "example": "pulsar+ssl://ats-proxy.example.com:4443 or pulsar://ats-proxy.example.com:4080",
+ "type": "string"
+ },
+ "serviceUrl": {
+ "description": "The HTTP rest service URL (for admin operations)",
+ "example": "http://pulsar.example.com:8080",
+ "type": "string"
+ },
+ "serviceUrlTls": {
+ "description": "The HTTPS rest service URL (for admin operations)",
+ "example": "https://pulsar.example.com:8443",
+ "type": "string"
+ },
+ "tlsAllowInsecureConnection": {
+ "description": "Allow TLS connections to servers whose certificate cannot be be verified to have been signed by a trusted certificate authority.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFuture": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureClusterData": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureListSchemaAndMetadata": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureLong": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFuturePairBooleanSchemaCompatibilityStrategy": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFuturePartitionedTopicMetadata": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureResourceQuota": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureSchemaAndMetadata": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureSchemaVersion": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CompletableFutureVoid": {
+ "properties": {
+ "cancelled": {
+ "type": "boolean"
+ },
+ "completedExceptionally": {
+ "type": "boolean"
+ },
+ "done": {
+ "type": "boolean"
+ },
+ "numberOfDependents": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "ConnectorDefinition": {
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "sinkClass": {
+ "type": "string"
+ },
+ "sinkConfigClass": {
+ "type": "string"
+ },
+ "sourceClass": {
+ "type": "string"
+ },
+ "sourceConfigClass": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ContextAttributes": {
+ "type": "object"
+ },
+ "Currency": {
+ "properties": {
+ "currencyCode": {
+ "type": "string"
+ },
+ "defaultFractionDigits": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "numericCode": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numericCodeAsString": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "DateFormat": {
+ "properties": {
+ "calendar": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "lenient": {
+ "type": "boolean"
+ },
+ "numberFormat": {
+ "$ref": "#/definitions/NumberFormat"
+ },
+ "timeZone": {
+ "$ref": "#/definitions/TimeZone"
+ }
+ },
+ "type": "object"
+ },
+ "DelayedDeliveryPolicies": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "tickTime": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "DeleteSchemaResponse": {
+ "properties": {
+ "version": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "DeserializationConfig": {
+ "properties": {
+ "annotationIntrospector": {
+ "$ref": "#/definitions/AnnotationIntrospector"
+ },
+ "annotationProcessingEnabled": {
+ "type": "boolean"
+ },
+ "attributes": {
+ "$ref": "#/definitions/ContextAttributes"
+ },
+ "base64Variant": {
+ "$ref": "#/definitions/Base64Variant"
+ },
+ "classIntrospector": {
+ "$ref": "#/definitions/ClassIntrospector"
+ },
+ "dateFormat": {
+ "$ref": "#/definitions/DateFormat"
+ },
+ "defaultPropertyInclusion": {
+ "$ref": "#/definitions/Value"
+ },
+ "defaultVisibilityChecker": {
+ "$ref": "#/definitions/VisibilityCheckerObject"
+ },
+ "deserializationFeatures": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "fullRootName": {
+ "$ref": "#/definitions/PropertyName"
+ },
+ "handlerInstantiator": {
+ "$ref": "#/definitions/HandlerInstantiator"
+ },
+ "locale": {
+ "$ref": "#/definitions/Locale"
+ },
+ "nodeFactory": {
+ "$ref": "#/definitions/JsonNodeFactory"
+ },
+ "problemHandlers": {
+ "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler"
+ },
+ "propertyNamingStrategy": {
+ "$ref": "#/definitions/PropertyNamingStrategy"
+ },
+ "rootName": {
+ "type": "string"
+ },
+ "subtypeResolver": {
+ "$ref": "#/definitions/SubtypeResolver"
+ },
+ "timeZone": {
+ "$ref": "#/definitions/TimeZone"
+ },
+ "typeFactory": {
+ "$ref": "#/definitions/TypeFactory"
+ }
+ },
+ "type": "object"
+ },
+ "DeserializationContext": {
+ "properties": {
+ "annotationIntrospector": {
+ "$ref": "#/definitions/AnnotationIntrospector"
+ },
+ "arrayBuilders": {
+ "$ref": "#/definitions/ArrayBuilders"
+ },
+ "base64Variant": {
+ "$ref": "#/definitions/Base64Variant"
+ },
+ "config": {
+ "$ref": "#/definitions/DeserializationConfig"
+ },
+ "contextualType": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "deserializationFeatures": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "factory": {
+ "$ref": "#/definitions/DeserializerFactory"
+ },
+ "locale": {
+ "$ref": "#/definitions/Locale"
+ },
+ "nodeFactory": {
+ "$ref": "#/definitions/JsonNodeFactory"
+ },
+ "parser": {
+ "$ref": "#/definitions/JsonParser"
+ },
+ "timeZone": {
+ "$ref": "#/definitions/TimeZone"
+ },
+ "typeFactory": {
+ "$ref": "#/definitions/TypeFactory"
+ }
+ },
+ "type": "object"
+ },
+ "DeserializerFactory": {
+ "type": "object"
+ },
+ "DispatchRateImpl": {
+ "properties": {
+ "dispatchThrottlingRateInByte": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dispatchThrottlingRateInMsg": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "ratePeriodInSecond": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "relativeToPublishRate": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "DoubleBuilder": {
+ "type": "object"
+ },
+ "FailureDomain": {
+ "description": "The data of a failure domain configuration in a cluster",
+ "properties": {
+ "brokers": {
+ "description": "The collection of brokers in the same failure domain",
+ "example": "[ 'broker-1', 'broker-2' ]",
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "type": "object"
+ },
+ "FilterProvider": {
+ "type": "object"
+ },
+ "FloatBuilder": {
+ "type": "object"
+ },
+ "FormatSchema": {
+ "properties": {
+ "schemaType": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "FunctionInstanceStatsData": {
+ "properties": {
+ "avgProcessLatency": {
+ "format": "double",
+ "type": "number"
+ },
+ "lastInvocation": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "oneMin": {
+ "$ref": "#/definitions/FunctionInstanceStatsDataBase"
+ },
+ "processedSuccessfullyTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "receivedTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "systemExceptionsTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "userExceptionsTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "userMetrics": {
+ "additionalProperties": {
+ "format": "double",
+ "type": "number"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "FunctionInstanceStatsDataBase": {
+ "properties": {
+ "avgProcessLatency": {
+ "format": "double",
+ "type": "number"
+ },
+ "processedSuccessfullyTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "receivedTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "systemExceptionsTotal": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "userExceptionsTotal": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "Functions": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "FunctionsV2": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "FunctionsV2WorkerService": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "FunctionsWorkerService": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "GetAllVersionsSchemaResponse": {
+ "properties": {
+ "getSchemaResponses": {
+ "items": {
+ "$ref": "#/definitions/GetSchemaResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "GetSchemaResponse": {
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "timestamp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "enum": [
+ "NONE",
+ "STRING",
+ "JSON",
+ "PROTOBUF",
+ "AVRO",
+ "BOOLEAN",
+ "INT8",
+ "INT16",
+ "INT32",
+ "INT64",
+ "FLOAT",
+ "DOUBLE",
+ "DATE",
+ "TIME",
+ "TIMESTAMP",
+ "KEY_VALUE",
+ "INSTANT",
+ "LOCAL_DATE",
+ "LOCAL_TIME",
+ "LOCAL_DATE_TIME",
+ "PROTOBUF_NATIVE",
+ "BYTES",
+ "AUTO",
+ "AUTO_CONSUME",
+ "AUTO_PUBLISH"
+ ],
+ "type": "string"
+ },
+ "version": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "HandlerInstantiator": {
+ "type": "object"
+ },
+ "InactiveTopicPolicies": {
+ "properties": {
+ "deleteWhileInactive": {
+ "type": "boolean"
+ },
+ "inactiveTopicDeleteMode": {
+ "enum": [
+ "delete_when_no_subscriptions",
+ "delete_when_subscriptions_caught_up"
+ ],
+ "type": "string"
+ },
+ "maxInactiveDurationSeconds": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "InjectableValues": {
+ "type": "object"
+ },
+ "InputDecorator": {
+ "type": "object"
+ },
+ "IntBuilder": {
+ "type": "object"
+ },
+ "InternalConfigurationData": {
+ "properties": {
+ "bookkeeperMetadataServiceUri": {
+ "type": "string"
+ },
+ "configurationMetadataStoreUrl": {
+ "type": "string"
+ },
+ "configurationStoreServers": {
+ "type": "string"
+ },
+ "ledgersRootPath": {
+ "type": "string"
+ },
+ "metadataStoreUrl": {
+ "type": "string"
+ },
+ "stateStorageServiceUrl": {
+ "type": "string"
+ },
+ "zookeeperServers": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "IsCompatibilityResponse": {
+ "properties": {
+ "compatibility": {
+ "type": "boolean"
+ },
+ "schemaCompatibilityStrategy": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "JavaType": {
+ "properties": {
+ "abstract": {
+ "type": "boolean"
+ },
+ "arrayType": {
+ "type": "boolean"
+ },
+ "bindings": {
+ "$ref": "#/definitions/TypeBindings"
+ },
+ "collectionLikeType": {
+ "type": "boolean"
+ },
+ "concrete": {
+ "type": "boolean"
+ },
+ "containerType": {
+ "type": "boolean"
+ },
+ "contentType": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "contentTypeHandler": {
+ "type": "object"
+ },
+ "contentValueHandler": {
+ "type": "object"
+ },
+ "enumType": {
+ "type": "boolean"
+ },
+ "erasedSignature": {
+ "type": "string"
+ },
+ "final": {
+ "type": "boolean"
+ },
+ "genericSignature": {
+ "type": "string"
+ },
+ "interface": {
+ "type": "boolean"
+ },
+ "interfaces": {
+ "items": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "type": "array"
+ },
+ "javaLangObject": {
+ "type": "boolean"
+ },
+ "keyType": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "mapLikeType": {
+ "type": "boolean"
+ },
+ "primitive": {
+ "type": "boolean"
+ },
+ "referenceType": {
+ "type": "boolean"
+ },
+ "referencedType": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "superClass": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "throwable": {
+ "type": "boolean"
+ },
+ "typeHandler": {
+ "type": "object"
+ },
+ "typeName": {
+ "type": "string"
+ },
+ "valueHandler": {
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "JsonFactory": {
+ "properties": {
+ "characterEscapes": {
+ "$ref": "#/definitions/CharacterEscapes"
+ },
+ "codec": {
+ "$ref": "#/definitions/ObjectCodec"
+ },
+ "formatName": {
+ "type": "string"
+ },
+ "inputDecorator": {
+ "$ref": "#/definitions/InputDecorator"
+ },
+ "outputDecorator": {
+ "$ref": "#/definitions/OutputDecorator"
+ },
+ "rootValueSeparator": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "JsonGenerator": {
+ "properties": {
+ "characterEscapes": {
+ "$ref": "#/definitions/CharacterEscapes"
+ },
+ "closed": {
+ "type": "boolean"
+ },
+ "codec": {
+ "$ref": "#/definitions/ObjectCodec"
+ },
+ "currentValue": {
+ "type": "object"
+ },
+ "featureMask": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "formatFeatures": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "highestEscapedChar": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "outputBuffered": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "outputContext": {
+ "$ref": "#/definitions/JsonStreamContext"
+ },
+ "outputTarget": {
+ "type": "object"
+ },
+ "prettyPrinter": {
+ "$ref": "#/definitions/PrettyPrinter"
+ },
+ "schema": {
+ "$ref": "#/definitions/FormatSchema"
+ }
+ },
+ "type": "object"
+ },
+ "JsonLocation": {
+ "properties": {
+ "byteOffset": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "charOffset": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "columnNr": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "lineNr": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "sourceRef": {
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "JsonNodeFactory": {
+ "type": "object"
+ },
+ "JsonParser": {
+ "properties": {
+ "bigIntegerValue": {
+ "type": "integer"
+ },
+ "binaryValue": {
+ "items": {
+ "format": "byte",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "booleanValue": {
+ "type": "boolean"
+ },
+ "byteValue": {
+ "format": "byte",
+ "type": "string"
+ },
+ "closed": {
+ "type": "boolean"
+ },
+ "codec": {
+ "$ref": "#/definitions/ObjectCodec"
+ },
+ "currentLocation": {
+ "$ref": "#/definitions/JsonLocation"
+ },
+ "currentName": {
+ "type": "string"
+ },
+ "currentToken": {
+ "enum": [
+ "NOT_AVAILABLE",
+ "START_OBJECT",
+ "END_OBJECT",
+ "START_ARRAY",
+ "END_ARRAY",
+ "FIELD_NAME",
+ "VALUE_EMBEDDED_OBJECT",
+ "VALUE_STRING",
+ "VALUE_NUMBER_INT",
+ "VALUE_NUMBER_FLOAT",
+ "VALUE_TRUE",
+ "VALUE_FALSE",
+ "VALUE_NULL"
+ ],
+ "type": "string"
+ },
+ "currentTokenId": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "currentValue": {
+ "type": "object"
+ },
+ "decimalValue": {
+ "type": "number"
+ },
+ "doubleValue": {
+ "format": "double",
+ "type": "number"
+ },
+ "embeddedObject": {
+ "type": "object"
+ },
+ "expectedStartArrayToken": {
+ "type": "boolean"
+ },
+ "expectedStartObjectToken": {
+ "type": "boolean"
+ },
+ "featureMask": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "floatValue": {
+ "format": "float",
+ "type": "number"
+ },
+ "formatFeatures": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "inputSource": {
+ "type": "object"
+ },
+ "intValue": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "lastClearedToken": {
+ "enum": [
+ "NOT_AVAILABLE",
+ "START_OBJECT",
+ "END_OBJECT",
+ "START_ARRAY",
+ "END_ARRAY",
+ "FIELD_NAME",
+ "VALUE_EMBEDDED_OBJECT",
+ "VALUE_STRING",
+ "VALUE_NUMBER_INT",
+ "VALUE_NUMBER_FLOAT",
+ "VALUE_TRUE",
+ "VALUE_FALSE",
+ "VALUE_NULL"
+ ],
+ "type": "string"
+ },
+ "longValue": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numberType": {
+ "enum": [
+ "INT",
+ "LONG",
+ "BIG_INTEGER",
+ "FLOAT",
+ "DOUBLE",
+ "BIG_DECIMAL"
+ ],
+ "type": "string"
+ },
+ "numberValue": {
+ "$ref": "#/definitions/Number"
+ },
+ "objectId": {
+ "type": "object"
+ },
+ "parsingContext": {
+ "$ref": "#/definitions/JsonStreamContext"
+ },
+ "schema": {
+ "$ref": "#/definitions/FormatSchema"
+ },
+ "shortValue": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "textCharacters": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "textLength": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "textOffset": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "tokenLocation": {
+ "$ref": "#/definitions/JsonLocation"
+ },
+ "typeId": {
+ "type": "object"
+ },
+ "valueAsBoolean": {
+ "type": "boolean"
+ },
+ "valueAsDouble": {
+ "format": "double",
+ "type": "number"
+ },
+ "valueAsInt": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "valueAsLong": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "valueAsString": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "JsonSerializer": {
+ "properties": {
+ "unwrappingSerializer": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "JsonSerializerObject": {
+ "properties": {
+ "delegatee": {
+ "$ref": "#/definitions/JsonSerializerObject"
+ },
+ "unwrappingSerializer": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "JsonStreamContext": {
+ "properties": {
+ "currentIndex": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "currentName": {
+ "type": "string"
+ },
+ "currentValue": {
+ "type": "object"
+ },
+ "entryCount": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "parent": {
+ "$ref": "#/definitions/JsonStreamContext"
+ },
+ "typeDesc": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "KubernetesContainerFactory": {
+ "properties": {
+ "changeConfigMap": {
+ "type": "string"
+ },
+ "changeConfigMapNamespace": {
+ "type": "string"
+ },
+ "configAdminCLI": {
+ "type": "string"
+ },
+ "cpuOverCommitRatio": {
+ "format": "double",
+ "type": "number"
+ },
+ "customLabels": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "expectedMetricsCollectionInterval": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "extraFunctionDependenciesDir": {
+ "type": "string"
+ },
+ "functionDockerImages": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "functionInstanceClassPath": {
+ "type": "string"
+ },
+ "gracePeriodSeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "grpcPort": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "imagePullPolicy": {
+ "type": "string"
+ },
+ "installUserCodeDependencies": {
+ "type": "boolean"
+ },
+ "jobName": {
+ "type": "string"
+ },
+ "jobNamespace": {
+ "type": "string"
+ },
+ "k8Uri": {
+ "type": "string"
+ },
+ "memoryOverCommitRatio": {
+ "format": "double",
+ "type": "number"
+ },
+ "metricsPort": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "narExtractionDirectory": {
+ "type": "string"
+ },
+ "percentMemoryPadding": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "pulsarAdminUrl": {
+ "type": "string"
+ },
+ "pulsarDockerImageName": {
+ "type": "string"
+ },
+ "pulsarRootDir": {
+ "type": "string"
+ },
+ "pulsarServiceUrl": {
+ "type": "string"
+ },
+ "pythonDependencyRepository": {
+ "type": "string"
+ },
+ "pythonExtraDependencyRepository": {
+ "type": "string"
+ },
+ "submittingInsidePod": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "LinkedNode": {
+ "type": "object"
+ },
+ "LinkedNodeDeserializationProblemHandler": {
+ "type": "object"
+ },
+ "LoadReport": {
+ "properties": {
+ "allocatedBandwidthIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "allocatedBandwidthOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "allocatedCPU": {
+ "format": "double",
+ "type": "number"
+ },
+ "allocatedMemory": {
+ "format": "double",
+ "type": "number"
+ },
+ "allocatedMsgRateIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "allocatedMsgRateOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "bandwidthIn": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "bandwidthOut": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "brokerVersionString": {
+ "type": "string"
+ },
+ "bundleGains": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "bundleLosses": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "bundleStats": {
+ "additionalProperties": {
+ "$ref": "#/definitions/NamespaceBundleStats"
+ },
+ "type": "object"
+ },
+ "cpu": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "directMemory": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "lastUpdate": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "loadReportType": {
+ "type": "string"
+ },
+ "memory": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "msgRateIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgRateOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgThroughputIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgThroughputOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "nonPersistentTopicsEnabled": {
+ "type": "boolean"
+ },
+ "numBundles": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numConsumers": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numProducers": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numTopics": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "overLoaded": {
+ "type": "boolean"
+ },
+ "persistentTopicsEnabled": {
+ "type": "boolean"
+ },
+ "preAllocatedBandwidthIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "preAllocatedBandwidthOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "preAllocatedCPU": {
+ "format": "double",
+ "type": "number"
+ },
+ "preAllocatedMemory": {
+ "format": "double",
+ "type": "number"
+ },
+ "preAllocatedMsgRateIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "preAllocatedMsgRateOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "protocols": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "pulsarServiceUrl": {
+ "type": "string"
+ },
+ "pulsarServiceUrlTls": {
+ "type": "string"
+ },
+ "systemResourceUsage": {
+ "$ref": "#/definitions/SystemResourceUsage"
+ },
+ "timestamp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "underLoaded": {
+ "type": "boolean"
+ },
+ "webServiceUrl": {
+ "type": "string"
+ },
+ "webServiceUrlTls": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Locale": {
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "displayCountry": {
+ "type": "string"
+ },
+ "displayLanguage": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "displayScript": {
+ "type": "string"
+ },
+ "displayVariant": {
+ "type": "string"
+ },
+ "extensionKeys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "iso3Country": {
+ "type": "string"
+ },
+ "iso3Language": {
+ "type": "string"
+ },
+ "language": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string"
+ },
+ "unicodeLocaleAttributes": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "unicodeLocaleKeys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "variant": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LongBuilder": {
+ "type": "object"
+ },
+ "LongRunningProcessStatus": {
+ "properties": {
+ "lastError": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "NOT_RUN",
+ "RUNNING",
+ "SUCCESS",
+ "ERROR"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LongSchemaVersion": {
+ "properties": {
+ "version": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "MemoryLimit": {
+ "properties": {
+ "absoluteValue": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "percentOfMaxDirectMemory": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "Metrics": {
+ "properties": {
+ "dimensions": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "metrics": {
+ "additionalProperties": {
+ "type": "object"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "Module": {
+ "properties": {
+ "annotations": {
+ "items": {
+ "$ref": "#/definitions/Annotation"
+ },
+ "type": "array"
+ },
+ "classLoader": {
+ "$ref": "#/definitions/ClassLoader"
+ },
+ "declaredAnnotations": {
+ "items": {
+ "$ref": "#/definitions/Annotation"
+ },
+ "type": "array"
+ },
+ "descriptor": {
+ "$ref": "#/definitions/ModuleDescriptor"
+ },
+ "layer": {
+ "$ref": "#/definitions/ModuleLayer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "named": {
+ "type": "boolean"
+ },
+ "packages": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "type": "object"
+ },
+ "ModuleDescriptor": {
+ "properties": {
+ "automatic": {
+ "type": "boolean"
+ },
+ "open": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "ModuleLayer": {
+ "type": "object"
+ },
+ "NamespaceBundleStats": {
+ "properties": {
+ "cacheSize": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "consumerCount": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "msgRateIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgRateOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgThroughputIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgThroughputOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "producerCount": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "topics": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "NamespaceIsolationData": {
+ "description": "The data of namespace isolation configuration",
+ "properties": {
+ "auto_failover_policy": {
+ "$ref": "#/definitions/AutoFailoverPolicyData",
+ "description": "The data of auto-failover policy configuration",
+ "example": "{ \"policy_type\": \"min_available\" \"parameters\": { \"\": \"\" }}"
+ },
+ "namespaces": {
+ "description": "The list of namespaces to apply this namespace isolation data",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "primary": {
+ "description": "The list of primary brokers for serving the list of namespaces in this isolation policy",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "secondary": {
+ "description": "The list of secondary brokers for serving the list of namespaces in this isolation policy",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "NamespaceOwnershipStatus": {
+ "properties": {
+ "broker_assignment": {
+ "enum": [
+ "primary",
+ "secondary",
+ "shared"
+ ],
+ "type": "string"
+ },
+ "is_active": {
+ "type": "boolean"
+ },
+ "is_controlled": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "Number": {
+ "type": "object"
+ },
+ "NumberFormat": {
+ "properties": {
+ "currency": {
+ "$ref": "#/definitions/Currency"
+ },
+ "groupingUsed": {
+ "type": "boolean"
+ },
+ "maximumFractionDigits": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "maximumIntegerDigits": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "minimumFractionDigits": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "minimumIntegerDigits": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "parseIntegerOnly": {
+ "type": "boolean"
+ },
+ "roundingMode": {
+ "enum": [
+ "UP",
+ "DOWN",
+ "CEILING",
+ "FLOOR",
+ "HALF_UP",
+ "HALF_DOWN",
+ "HALF_EVEN",
+ "UNNECESSARY"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ObjectCodec": {
+ "properties": {
+ "factory": {
+ "$ref": "#/definitions/JsonFactory"
+ },
+ "jsonFactory": {
+ "$ref": "#/definitions/JsonFactory"
+ }
+ },
+ "type": "object"
+ },
+ "ObjectMapper": {
+ "properties": {
+ "dateFormat": {
+ "$ref": "#/definitions/DateFormat"
+ },
+ "deserializationConfig": {
+ "$ref": "#/definitions/DeserializationConfig"
+ },
+ "deserializationContext": {
+ "$ref": "#/definitions/DeserializationContext"
+ },
+ "factory": {
+ "$ref": "#/definitions/JsonFactory"
+ },
+ "injectableValues": {
+ "$ref": "#/definitions/InjectableValues"
+ },
+ "jsonFactory": {
+ "$ref": "#/definitions/JsonFactory"
+ },
+ "nodeFactory": {
+ "$ref": "#/definitions/JsonNodeFactory"
+ },
+ "propertyNamingStrategy": {
+ "$ref": "#/definitions/PropertyNamingStrategy"
+ },
+ "serializationConfig": {
+ "$ref": "#/definitions/SerializationConfig"
+ },
+ "serializerFactory": {
+ "$ref": "#/definitions/SerializerFactory"
+ },
+ "serializerProvider": {
+ "$ref": "#/definitions/SerializerProvider"
+ },
+ "serializerProviderInstance": {
+ "$ref": "#/definitions/SerializerProvider"
+ },
+ "subtypeResolver": {
+ "$ref": "#/definitions/SubtypeResolver"
+ },
+ "typeFactory": {
+ "$ref": "#/definitions/TypeFactory"
+ },
+ "visibilityChecker": {
+ "$ref": "#/definitions/VisibilityCheckerObject"
+ }
+ },
+ "type": "object"
+ },
+ "OffloadPolicies": {
+ "properties": {
+ "fileSystemProfilePath": {
+ "type": "string"
+ },
+ "fileSystemURI": {
+ "type": "string"
+ },
+ "gcsManagedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "gcsManagedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "gcsManagedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "gcsManagedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "gcsManagedLedgerOffloadServiceAccountKeyFile": {
+ "type": "string"
+ },
+ "managedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "managedLedgerOffloadDeletionLagInMillis": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "managedLedgerOffloadDriver": {
+ "type": "string"
+ },
+ "managedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadMaxThreads": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadPrefetchRounds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "managedLedgerOffloadServiceEndpoint": {
+ "type": "string"
+ },
+ "managedLedgerOffloadThresholdInBytes": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "managedLedgerOffloadedReadPriority": {
+ "enum": [
+ "BOOKKEEPER_FIRST",
+ "TIERED_STORAGE_FIRST"
+ ],
+ "type": "string"
+ },
+ "offloadersDirectory": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadCredentialId": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadCredentialSecret": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "s3ManagedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "s3ManagedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadRole": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadRoleSessionName": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadServiceEndpoint": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "OffloadPoliciesImpl": {
+ "properties": {
+ "fileSystemDriver": {
+ "type": "boolean"
+ },
+ "fileSystemProfilePath": {
+ "type": "string"
+ },
+ "fileSystemURI": {
+ "type": "string"
+ },
+ "gcsDriver": {
+ "type": "boolean"
+ },
+ "gcsManagedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "gcsManagedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "gcsManagedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "gcsManagedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "gcsManagedLedgerOffloadServiceAccountKeyFile": {
+ "type": "string"
+ },
+ "managedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "managedLedgerOffloadDeletionLagInMillis": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "managedLedgerOffloadDriver": {
+ "type": "string"
+ },
+ "managedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadMaxThreads": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadPrefetchRounds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "managedLedgerOffloadServiceEndpoint": {
+ "type": "string"
+ },
+ "managedLedgerOffloadThresholdInBytes": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "managedLedgerOffloadedReadPriority": {
+ "enum": [
+ "BOOKKEEPER_FIRST",
+ "TIERED_STORAGE_FIRST"
+ ],
+ "type": "string"
+ },
+ "offloadersDirectory": {
+ "type": "string"
+ },
+ "s3Driver": {
+ "type": "boolean"
+ },
+ "s3ManagedLedgerOffloadBucket": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadCredentialId": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadCredentialSecret": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadMaxBlockSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "s3ManagedLedgerOffloadReadBufferSizeInBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "s3ManagedLedgerOffloadRegion": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadRole": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadRoleSessionName": {
+ "type": "string"
+ },
+ "s3ManagedLedgerOffloadServiceEndpoint": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "OutputDecorator": {
+ "type": "object"
+ },
+ "OutputStream": {
+ "type": "object"
+ },
+ "Package": {
+ "properties": {
+ "annotations": {
+ "items": {
+ "$ref": "#/definitions/Annotation"
+ },
+ "type": "array"
+ },
+ "declaredAnnotations": {
+ "items": {
+ "$ref": "#/definitions/Annotation"
+ },
+ "type": "array"
+ },
+ "implementationTitle": {
+ "type": "string"
+ },
+ "implementationVendor": {
+ "type": "string"
+ },
+ "implementationVersion": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "sealed": {
+ "type": "boolean"
+ },
+ "specificationTitle": {
+ "type": "string"
+ },
+ "specificationVendor": {
+ "type": "string"
+ },
+ "specificationVersion": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PartitionedTopicMetadata": {
+ "properties": {
+ "partitions": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "PendingBookieOpsStats": {
+ "properties": {
+ "cursorLedgerCloseOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "cursorLedgerCreateOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "cursorLedgerDeleteOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "cursorLedgerOpenOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dataLedgerCloseOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dataLedgerCreateOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dataLedgerDeleteOp": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dataLedgerOpenOp": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "PersistencePolicies": {
+ "properties": {
+ "bookkeeperAckQuorum": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "bookkeeperEnsemble": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "bookkeeperWriteQuorum": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "managedLedgerMaxMarkDeleteRate": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "Policies": {
+ "properties": {
+ "auth_policies": {
+ "$ref": "#/definitions/AuthPolicies"
+ },
+ "autoSubscriptionCreationOverride": {
+ "$ref": "#/definitions/AutoSubscriptionCreationOverride"
+ },
+ "autoTopicCreationOverride": {
+ "$ref": "#/definitions/AutoTopicCreationOverride"
+ },
+ "backlog_quota_map": {
+ "additionalProperties": {
+ "$ref": "#/definitions/BacklogQuota"
+ },
+ "type": "object"
+ },
+ "bundles": {
+ "$ref": "#/definitions/BundlesData"
+ },
+ "clusterDispatchRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ },
+ "type": "object"
+ },
+ "clusterSubscribeRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/SubscribeRate"
+ },
+ "type": "object"
+ },
+ "compaction_threshold": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "deduplicationEnabled": {
+ "type": "boolean"
+ },
+ "deduplicationSnapshotIntervalSeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "delayed_delivery_policies": {
+ "$ref": "#/definitions/DelayedDeliveryPolicies"
+ },
+ "deleted": {
+ "type": "boolean"
+ },
+ "encryption_required": {
+ "type": "boolean"
+ },
+ "inactive_topic_policies": {
+ "$ref": "#/definitions/InactiveTopicPolicies"
+ },
+ "is_allow_auto_update_schema": {
+ "type": "boolean"
+ },
+ "latency_stats_sample_rate": {
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ "max_consumers_per_subscription": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_consumers_per_topic": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_producers_per_topic": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_subscriptions_per_topic": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_topics_per_namespace": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_unacked_messages_per_consumer": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "max_unacked_messages_per_subscription": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "message_ttl_in_seconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "offload_deletion_lag_ms": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "offload_policies": {
+ "$ref": "#/definitions/OffloadPolicies"
+ },
+ "offload_threshold": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "persistence": {
+ "$ref": "#/definitions/PersistencePolicies"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "publishMaxMessageRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/PublishRate"
+ },
+ "type": "object"
+ },
+ "replication_clusters": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "replicatorDispatchRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ },
+ "type": "object"
+ },
+ "resource_group_name": {
+ "type": "string"
+ },
+ "retention_policies": {
+ "$ref": "#/definitions/RetentionPolicies"
+ },
+ "schema_auto_update_compatibility_strategy": {
+ "enum": [
+ "AutoUpdateDisabled",
+ "Backward",
+ "Forward",
+ "Full",
+ "AlwaysCompatible",
+ "BackwardTransitive",
+ "ForwardTransitive",
+ "FullTransitive"
+ ],
+ "type": "string"
+ },
+ "schema_compatibility_strategy": {
+ "enum": [
+ "UNDEFINED",
+ "ALWAYS_INCOMPATIBLE",
+ "ALWAYS_COMPATIBLE",
+ "BACKWARD",
+ "FORWARD",
+ "FULL",
+ "BACKWARD_TRANSITIVE",
+ "FORWARD_TRANSITIVE",
+ "FULL_TRANSITIVE"
+ ],
+ "type": "string"
+ },
+ "schema_validation_enforced": {
+ "type": "boolean"
+ },
+ "subscriptionDispatchRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ },
+ "type": "object"
+ },
+ "subscription_auth_mode": {
+ "enum": [
+ "None",
+ "Prefix"
+ ],
+ "type": "string"
+ },
+ "subscription_expiration_time_minutes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "subscription_types_enabled": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "topicDispatchRate": {
+ "additionalProperties": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "PoolArenaStats": {
+ "properties": {
+ "chunkLists": {
+ "items": {
+ "$ref": "#/definitions/PoolChunkListStats"
+ },
+ "type": "array"
+ },
+ "numActiveAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numActiveHugeAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numActiveNormalAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numActiveSmallAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numChunkLists": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numDeallocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numHugeAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numHugeDeallocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numNormalAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numNormalDeallocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numSmallAllocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numSmallDeallocations": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "numSmallSubpages": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "smallSubpages": {
+ "items": {
+ "$ref": "#/definitions/PoolSubpageStats"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "PoolChunkListStats": {
+ "properties": {
+ "chunks": {
+ "items": {
+ "$ref": "#/definitions/PoolChunkStats"
+ },
+ "type": "array"
+ },
+ "maxUsage": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "minUsage": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "PoolChunkStats": {
+ "properties": {
+ "chunkSize": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "freeBytes": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "usage": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "PoolSubpageStats": {
+ "properties": {
+ "elementSize": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "maxNumElements": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numAvailable": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "pageSize": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "PostSchemaPayload": {
+ "properties": {
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PostSchemaResponse": {
+ "properties": {
+ "version": {
+ "$ref": "#/definitions/SchemaVersion"
+ }
+ },
+ "type": "object"
+ },
+ "PrettyPrinter": {
+ "type": "object"
+ },
+ "ProcessContainerFactory": {
+ "properties": {
+ "extraFunctionDependenciesDir": {
+ "type": "string"
+ },
+ "javaInstanceJarLocation": {
+ "type": "string"
+ },
+ "logDirectory": {
+ "type": "string"
+ },
+ "pythonInstanceLocation": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PropertyName": {
+ "properties": {
+ "empty": {
+ "type": "boolean"
+ },
+ "namespace": {
+ "type": "string"
+ },
+ "simpleName": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PropertyNamingStrategy": {
+ "type": "object"
+ },
+ "PublicKey": {
+ "properties": {
+ "algorithm": {
+ "type": "string"
+ },
+ "encoded": {
+ "items": {
+ "format": "byte",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "format": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PublishRate": {
+ "properties": {
+ "publishThrottlingRateInByte": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "publishThrottlingRateInMsg": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "RawBookieInfo": {
+ "properties": {
+ "bookieId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ResetCursorData": {
+ "properties": {
+ "batchIndex": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "entryId": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "excluded": {
+ "type": "boolean"
+ },
+ "ledgerId": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "partitionIndex": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "ResourceDescription": {
+ "properties": {
+ "resourceUsage": {
+ "additionalProperties": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "type": "object"
+ },
+ "usagePct": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "ResourceGroup": {
+ "properties": {
+ "dispatchRateInBytes": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "dispatchRateInMsgs": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "publishRateInBytes": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "publishRateInMsgs": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "ResourceQuota": {
+ "properties": {
+ "bandwidthIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "bandwidthOut": {
+ "format": "double",
+ "type": "number"
+ },
+ "dynamic": {
+ "type": "boolean"
+ },
+ "memory": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgRateIn": {
+ "format": "double",
+ "type": "number"
+ },
+ "msgRateOut": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "ResourceUnit": {
+ "properties": {
+ "availableResource": {
+ "$ref": "#/definitions/ResourceDescription"
+ },
+ "resourceId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ResourceUsage": {
+ "properties": {
+ "limit": {
+ "format": "double",
+ "type": "number"
+ },
+ "usage": {
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "Resources": {
+ "properties": {
+ "cpu": {
+ "format": "double",
+ "type": "number"
+ },
+ "disk": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "ram": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "RetentionPolicies": {
+ "properties": {
+ "retentionSizeInMB": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "retentionTimeInMinutes": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "SchemaVersion": {
+ "type": "object"
+ },
+ "SerializationConfig": {
+ "properties": {
+ "annotationIntrospector": {
+ "$ref": "#/definitions/AnnotationIntrospector"
+ },
+ "annotationProcessingEnabled": {
+ "type": "boolean"
+ },
+ "attributes": {
+ "$ref": "#/definitions/ContextAttributes"
+ },
+ "base64Variant": {
+ "$ref": "#/definitions/Base64Variant"
+ },
+ "classIntrospector": {
+ "$ref": "#/definitions/ClassIntrospector"
+ },
+ "dateFormat": {
+ "$ref": "#/definitions/DateFormat"
+ },
+ "defaultPrettyPrinter": {
+ "$ref": "#/definitions/PrettyPrinter"
+ },
+ "defaultPropertyInclusion": {
+ "$ref": "#/definitions/Value"
+ },
+ "defaultVisibilityChecker": {
+ "$ref": "#/definitions/VisibilityCheckerObject"
+ },
+ "filterProvider": {
+ "$ref": "#/definitions/FilterProvider"
+ },
+ "fullRootName": {
+ "$ref": "#/definitions/PropertyName"
+ },
+ "handlerInstantiator": {
+ "$ref": "#/definitions/HandlerInstantiator"
+ },
+ "locale": {
+ "$ref": "#/definitions/Locale"
+ },
+ "propertyNamingStrategy": {
+ "$ref": "#/definitions/PropertyNamingStrategy"
+ },
+ "rootName": {
+ "type": "string"
+ },
+ "serializationFeatures": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "serializationInclusion": {
+ "enum": [
+ "ALWAYS",
+ "NON_NULL",
+ "NON_ABSENT",
+ "NON_EMPTY",
+ "NON_DEFAULT",
+ "USE_DEFAULTS"
+ ],
+ "type": "string"
+ },
+ "subtypeResolver": {
+ "$ref": "#/definitions/SubtypeResolver"
+ },
+ "timeZone": {
+ "$ref": "#/definitions/TimeZone"
+ },
+ "typeFactory": {
+ "$ref": "#/definitions/TypeFactory"
+ }
+ },
+ "type": "object"
+ },
+ "SerializerFactory": {
+ "type": "object"
+ },
+ "SerializerProvider": {
+ "properties": {
+ "annotationIntrospector": {
+ "$ref": "#/definitions/AnnotationIntrospector"
+ },
+ "config": {
+ "$ref": "#/definitions/SerializationConfig"
+ },
+ "defaultNullKeySerializer": {
+ "$ref": "#/definitions/JsonSerializerObject"
+ },
+ "defaultNullValueSerializer": {
+ "$ref": "#/definitions/JsonSerializerObject"
+ },
+ "filterProvider": {
+ "$ref": "#/definitions/FilterProvider"
+ },
+ "generator": {
+ "$ref": "#/definitions/JsonGenerator"
+ },
+ "locale": {
+ "$ref": "#/definitions/Locale"
+ },
+ "timeZone": {
+ "$ref": "#/definitions/TimeZone"
+ },
+ "typeFactory": {
+ "$ref": "#/definitions/TypeFactory"
+ }
+ },
+ "type": "object"
+ },
+ "ShortBuilder": {
+ "type": "object"
+ },
+ "Sinks": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ },
+ "sinkList": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "SinksWorkerService": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ },
+ "sinkList": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "SocketAddress": {
+ "type": "object"
+ },
+ "Sources": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ },
+ "sourceList": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "SourcesWorkerService": {
+ "properties": {
+ "listOfConnectors": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ },
+ "sourceList": {
+ "items": {
+ "$ref": "#/definitions/ConnectorDefinition"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "SubscribeRate": {
+ "properties": {
+ "ratePeriodInSecond": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "subscribeThrottlingRatePerConsumer": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "SubtypeResolver": {
+ "type": "object"
+ },
+ "SystemResourceUsage": {
+ "properties": {
+ "bandwidthIn": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "bandwidthOut": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "cpu": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "directMemory": {
+ "$ref": "#/definitions/ResourceUsage"
+ },
+ "memory": {
+ "$ref": "#/definitions/ResourceUsage"
+ }
+ },
+ "type": "object"
+ },
+ "TenantInfo": {
+ "description": "Information of adminRoles and allowedClusters for tenant",
+ "properties": {
+ "adminRoles": {
+ "description": "Comma separated list of auth principal allowed to administrate the tenant.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "allowedClusters": {
+ "description": "Comma separated allowed clusters.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "type": "object"
+ },
+ "ThreadContainerFactory": {
+ "properties": {
+ "pulsarClientMemoryLimit": {
+ "$ref": "#/definitions/MemoryLimit"
+ },
+ "threadGroupName": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TimeZone": {
+ "properties": {
+ "displayName": {
+ "type": "string"
+ },
+ "dstsavings": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "id": {
+ "type": "string"
+ },
+ "rawOffset": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "TypeBindings": {
+ "properties": {
+ "empty": {
+ "type": "boolean"
+ },
+ "typeParameters": {
+ "items": {
+ "$ref": "#/definitions/JavaType"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TypeFactory": {
+ "properties": {
+ "classLoader": {
+ "$ref": "#/definitions/ClassLoader"
+ }
+ },
+ "type": "object"
+ },
+ "Value": {
+ "properties": {
+ "contentInclusion": {
+ "enum": [
+ "ALWAYS",
+ "NON_NULL",
+ "NON_ABSENT",
+ "NON_EMPTY",
+ "NON_DEFAULT",
+ "USE_DEFAULTS"
+ ],
+ "type": "string"
+ },
+ "valueInclusion": {
+ "enum": [
+ "ALWAYS",
+ "NON_NULL",
+ "NON_ABSENT",
+ "NON_EMPTY",
+ "NON_DEFAULT",
+ "USE_DEFAULTS"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "VisibilityChecker": {
+ "type": "object"
+ },
+ "VisibilityCheckerObject": {
+ "type": "object"
+ },
+ "WorkerConfig": {
+ "properties": {
+ "additionalJavaRuntimeArguments": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "assignmentWriteMaxRetries": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "authenticateMetricsEndpoint": {
+ "type": "boolean"
+ },
+ "authenticationEnabled": {
+ "type": "boolean"
+ },
+ "authenticationProviders": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "authorizationEnabled": {
+ "type": "boolean"
+ },
+ "authorizationProvider": {
+ "type": "string"
+ },
+ "bookkeeperClientAuthenticationParameters": {
+ "type": "string"
+ },
+ "bookkeeperClientAuthenticationParametersName": {
+ "type": "string"
+ },
+ "bookkeeperClientAuthenticationPlugin": {
+ "type": "string"
+ },
+ "brokerClientAuthenticationEnabled": {
+ "type": "boolean"
+ },
+ "brokerClientAuthenticationParameters": {
+ "type": "string"
+ },
+ "brokerClientAuthenticationPlugin": {
+ "type": "string"
+ },
+ "brokerClientTrustCertsFilePath": {
+ "type": "string"
+ },
+ "clientAuthenticationParameters": {
+ "type": "string"
+ },
+ "clientAuthenticationPlugin": {
+ "type": "string"
+ },
+ "clusterCoordinationTopic": {
+ "type": "string"
+ },
+ "clusterCoordinationTopicName": {
+ "type": "string"
+ },
+ "configurationMetadataStoreUrl": {
+ "type": "string"
+ },
+ "configurationStoreServers": {
+ "type": "string"
+ },
+ "connectorsDirectory": {
+ "type": "string"
+ },
+ "downloadDirectory": {
+ "type": "string"
+ },
+ "exposeAdminClientEnabled": {
+ "type": "boolean"
+ },
+ "failureCheckFreqMs": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "forwardSourceMessageProperty": {
+ "type": "boolean"
+ },
+ "functionAssignmentTopic": {
+ "type": "string"
+ },
+ "functionAssignmentTopicName": {
+ "type": "string"
+ },
+ "functionAuthProviderClassName": {
+ "type": "string"
+ },
+ "functionInstanceMaxResources": {
+ "$ref": "#/definitions/Resources"
+ },
+ "functionInstanceMinResources": {
+ "$ref": "#/definitions/Resources"
+ },
+ "functionInstanceResourceChangeInLockStep": {
+ "type": "boolean"
+ },
+ "functionInstanceResourceGranularities": {
+ "$ref": "#/definitions/Resources"
+ },
+ "functionMetadataTopic": {
+ "type": "string"
+ },
+ "functionMetadataTopicName": {
+ "type": "string"
+ },
+ "functionRuntimeFactoryClassName": {
+ "type": "string"
+ },
+ "functionRuntimeFactoryConfigs": {
+ "additionalProperties": {
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "functionWebServiceUrl": {
+ "type": "string"
+ },
+ "functionsDirectory": {
+ "type": "string"
+ },
+ "functionsWorkerEnablePackageManagement": {
+ "type": "boolean"
+ },
+ "functionsWorkerServiceCustomConfigs": {
+ "additionalProperties": {
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "functionsWorkerServiceNarPackage": {
+ "type": "string"
+ },
+ "httpRequestsLimitEnabled": {
+ "type": "boolean"
+ },
+ "httpRequestsMaxPerSecond": {
+ "format": "double",
+ "type": "number"
+ },
+ "httpServerAcceptQueueSize": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "httpServerThreadPoolQueueSize": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "includeStandardPrometheusMetrics": {
+ "type": "boolean"
+ },
+ "initialBrokerReconnectMaxRetries": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "initializedDlogMetadata": {
+ "type": "boolean"
+ },
+ "instanceLivenessCheckFreqMs": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "jvmGCMetricsLoggerClassName": {
+ "type": "string"
+ },
+ "kinitCommand": {
+ "type": "string"
+ },
+ "kubernetesContainerFactory": {
+ "$ref": "#/definitions/KubernetesContainerFactory"
+ },
+ "maxConcurrentHttpRequests": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "maxHttpServerConnections": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "maxPendingAsyncRequests": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "metadataStoreCacheExpirySeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "metadataStoreOperationTimeoutSeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "metadataStoreSessionTimeoutMillis": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "narExtractionDirectory": {
+ "type": "string"
+ },
+ "numFunctionPackageReplicas": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "numHttpServerThreads": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "processContainerFactory": {
+ "$ref": "#/definitions/ProcessContainerFactory"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "proxyRoles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "pulsarFunctionsCluster": {
+ "type": "string"
+ },
+ "pulsarFunctionsNamespace": {
+ "type": "string"
+ },
+ "pulsarServiceUrl": {
+ "type": "string"
+ },
+ "pulsarWebServiceUrl": {
+ "type": "string"
+ },
+ "rebalanceCheckFreqSec": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "rescheduleTimeoutMs": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "runtimeCustomizerClassName": {
+ "type": "string"
+ },
+ "runtimeCustomizerConfig": {
+ "additionalProperties": {
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "saslJaasClientAllowedIds": {
+ "type": "string"
+ },
+ "saslJaasServerRoleTokenSignerSecretPath": {
+ "type": "string"
+ },
+ "saslJaasServerSectionName": {
+ "type": "string"
+ },
+ "schedulerClassName": {
+ "type": "string"
+ },
+ "secretsProviderConfiguratorClassName": {
+ "type": "string"
+ },
+ "secretsProviderConfiguratorConfig": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "stateStorageProviderImplementation": {
+ "type": "string"
+ },
+ "stateStorageServiceUrl": {
+ "type": "string"
+ },
+ "superUserRoles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "threadContainerFactory": {
+ "$ref": "#/definitions/ThreadContainerFactory"
+ },
+ "tlsAllowInsecureConnection": {
+ "type": "boolean"
+ },
+ "tlsCertRefreshCheckDurationSec": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "tlsCertificateFilePath": {
+ "type": "string"
+ },
+ "tlsEnableHostnameVerification": {
+ "type": "boolean"
+ },
+ "tlsEnabled": {
+ "type": "boolean"
+ },
+ "tlsEnabledWithKeyStore": {
+ "type": "boolean"
+ },
+ "tlsKeyFilePath": {
+ "type": "string"
+ },
+ "tlsKeyStore": {
+ "type": "string"
+ },
+ "tlsKeyStorePassword": {
+ "type": "string"
+ },
+ "tlsKeyStoreType": {
+ "type": "string"
+ },
+ "tlsProvider": {
+ "type": "string"
+ },
+ "tlsRequireTrustedClientCertOnConnect": {
+ "type": "boolean"
+ },
+ "tlsTrustCertsFilePath": {
+ "type": "string"
+ },
+ "tlsTrustChainBytes": {
+ "items": {
+ "format": "byte",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "tlsTrustStore": {
+ "type": "string"
+ },
+ "tlsTrustStorePassword": {
+ "type": "string"
+ },
+ "tlsTrustStoreType": {
+ "type": "string"
+ },
+ "topicCompactionFrequencySec": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "uploadBuiltinSinksSources": {
+ "type": "boolean"
+ },
+ "useCompactedMetadataTopic": {
+ "type": "boolean"
+ },
+ "useTls": {
+ "type": "boolean"
+ },
+ "validateConnectorConfig": {
+ "type": "boolean"
+ },
+ "webServiceTlsCiphers": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "webServiceTlsProtocols": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ },
+ "workerHostname": {
+ "type": "string"
+ },
+ "workerId": {
+ "type": "string"
+ },
+ "workerListProbeIntervalSec": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "workerPort": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "workerPortTls": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "workerWebAddress": {
+ "type": "string"
+ },
+ "workerWebAddressTls": {
+ "type": "string"
+ },
+ "zooKeeperCacheExpirySeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "zooKeeperOperationTimeoutSeconds": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "zooKeeperSessionTimeoutMillis": {
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "WorkerFunctionInstanceStats": {
+ "properties": {
+ "metrics": {
+ "$ref": "#/definitions/FunctionInstanceStatsData"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "WorkerInfo": {
+ "properties": {
+ "port": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "workerHostname": {
+ "type": "string"
+ },
+ "workerId": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "WorkerService": {
+ "properties": {
+ "functions": {
+ "$ref": "#/definitions/FunctionsWorkerService"
+ },
+ "functionsV2": {
+ "$ref": "#/definitions/FunctionsV2WorkerService"
+ },
+ "initialized": {
+ "type": "boolean"
+ },
+ "sinks": {
+ "$ref": "#/definitions/SinksWorkerService"
+ },
+ "sources": {
+ "$ref": "#/definitions/SourcesWorkerService"
+ },
+ "workerConfig": {
+ "$ref": "#/definitions/WorkerConfig"
+ },
+ "workers": {
+ "$ref": "#/definitions/WorkersWorkerService"
+ }
+ },
+ "type": "object"
+ },
+ "Workers": {
+ "type": "object"
+ },
+ "WorkersWorkerService": {
+ "type": "object"
+ }
+ },
+ "info": {
+ "description": "This provides the REST API for admin operations",
+ "license": {
+ "name": "Apache 2.0",
+ "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
+ },
+ "title": "Pulsar Admin REST API",
+ "version": "v2"
+ },
+ "paths": {
+ "/bookies/all": {
+ "get": {
+ "description": "",
+ "operationId": "getAllBookies",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/BookiesClusterInfo"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Gets raw information for all the bookies in the cluster",
+ "tags": [
+ "bookies"
+ ]
+ }
+ },
+ "/bookies/racks-info": {
+ "get": {
+ "description": "",
+ "operationId": "getBookiesRackInfo",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "additionalProperties": {
+ "$ref": "#/definitions/BookieInfo"
+ },
+ "type": "object"
+ },
+ "type": "object"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Gets the rack placement information for all the bookies in the cluster",
+ "tags": [
+ "bookies"
+ ]
+ }
+ },
+ "/bookies/racks-info/{bookie}": {
+ "delete": {
+ "description": "",
+ "operationId": "deleteBookieRackInfo",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "bookie",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Removed the rack placement information for a specific bookie in the cluster",
+ "tags": [
+ "bookies"
+ ]
+ },
+ "get": {
+ "description": "",
+ "operationId": "getBookieRackInfo",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "bookie",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/BookieInfo"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Gets the rack placement information for a specific bookie in the cluster",
+ "tags": [
+ "bookies"
+ ]
+ },
+ "post": {
+ "description": "",
+ "operationId": "updateBookieRackInfo",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "bookie",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "group",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Updates the rack placement information for a specific bookie in the cluster (note. bookie address format:`address:port`)",
+ "tags": [
+ "bookies"
+ ]
+ }
+ },
+ "/broker-stats/allocator-stats/{allocator}": {
+ "get": {
+ "description": "",
+ "operationId": "getAllocatorStats",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "allocator",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/AllocatorStats"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get the stats for the Netty allocator. Available allocators are 'default' and 'ml-cache'",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/bookieops": {
+ "get": {
+ "description": "",
+ "operationId": "getPendingBookieOpsStats",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "$ref": "#/definitions/PendingBookieOpsStats"
+ },
+ "type": "object"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get pending bookie client op stats by namespace",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/broker-resource-availability/{tenant}/{namespace}": {
+ "get": {
+ "description": "This API gives the current broker availability in percent, each resource percentage usage is calculated and thensum of all of the resource usage percent is called broker-resource-availability<br/><br/>THIS API IS ONLY FOR USE BY TESTING FOR CONFIRMING NAMESPACE ALLOCATION ALGORITHM",
+ "operationId": "getBrokerResourceAvailability",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "$ref": "#/definitions/ResourceUnit"
+ },
+ "type": "object"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "409": {
+ "description": "Load-manager doesn't support operation"
+ }
+ },
+ "summary": "Broker availability report",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/load-report": {
+ "get": {
+ "description": "consists of topics stats & systemResourceUsage",
+ "operationId": "getLoadReport",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/LoadReport"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get Load for this broker",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/mbeans": {
+ "get": {
+ "description": "",
+ "operationId": "getMBeans",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "$ref": "#/definitions/Metrics"
+ },
+ "type": "array"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get all the mbean details of this broker JVM",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/metrics": {
+ "get": {
+ "description": "Requested should be executed by Monitoring agent on each broker to fetch the metrics",
+ "operationId": "getMetrics",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "$ref": "#/definitions/Metrics"
+ },
+ "type": "array"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Gets the metrics for Monitoring",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/broker-stats/topics": {
+ "get": {
+ "description": "",
+ "operationId": "getTopics2",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/OutputStream"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get all the topic stats by namespace",
+ "tags": [
+ "broker-stats"
+ ]
+ }
+ },
+ "/brokers": {
+ "get": {
+ "description": "",
+ "operationId": "getActiveBrokers",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "401": {
+ "description": "Authentication required"
+ },
+ "403": {
+ "description": "This operation requires super-user access"
+ }
+ },
+ "summary": "Get the list of active brokers (web service addresses) in the local cluster.If authorization is not enabled",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/backlog-quota-check": {
+ "get": {
+ "description": "",
+ "operationId": "backlogQuotaCheck",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Everything is OK"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "An REST endpoint to trigger backlogQuotaCheck",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/configuration": {
+ "get": {
+ "description": "",
+ "operationId": "getDynamicConfigurationName",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "You don't have admin permission to get configuration"
+ }
+ },
+ "summary": "Get all updatable dynamic configurations's name",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/configuration/runtime": {
+ "get": {
+ "description": "",
+ "operationId": "getRuntimeConfiguration",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get all runtime configurations. This operation requires Pulsar super-user privileges.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/configuration/values": {
+ "get": {
+ "description": "",
+ "operationId": "getAllDynamicConfigurations",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "You don't have admin permission to view configuration"
+ },
+ "404": {
+ "description": "Configuration not found"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Get value of all dynamic configurations' value overridden on local config",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/configuration/{configName}": {
+ "delete": {
+ "description": "",
+ "operationId": "deleteDynamicConfiguration",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "configName",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Service configuration updated successfully"
+ },
+ "403": {
+ "description": "You don't have admin permission to update service-configuration"
+ },
+ "412": {
+ "description": "Invalid dynamic-config value"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Delete dynamic ServiceConfiguration into metadata only. This operation requires Pulsar super-user privileges.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/configuration/{configName}/{configValue}": {
+ "post": {
+ "description": "",
+ "operationId": "updateDynamicConfiguration",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "configName",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "configValue",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Service configuration updated successfully"
+ },
+ "403": {
+ "description": "You don't have admin permission to update service-configuration"
+ },
+ "404": {
+ "description": "Configuration not found"
+ },
+ "412": {
+ "description": "Invalid dynamic-config value"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Update dynamic serviceconfiguration into zk only. This operation requires Pulsar super-user privileges.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/health": {
+ "get": {
+ "description": "",
+ "operationId": "healthCheck",
+ "parameters": [
+ {
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "in": "query",
+ "name": "topicVersion",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Everything is OK"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Cluster doesn't exist"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Run a healthCheck against the broker",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/internal-configuration": {
+ "get": {
+ "description": "",
+ "operationId": "getInternalConfigurationData",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/InternalConfigurationData"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Get the internal configuration data",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/leaderBroker": {
+ "get": {
+ "description": "",
+ "operationId": "getLeaderBroker",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/BrokerInfo"
+ }
+ },
+ "401": {
+ "description": "Authentication required"
+ },
+ "403": {
+ "description": "This operation requires super-user access"
+ },
+ "404": {
+ "description": "Leader broker not found"
+ }
+ },
+ "summary": "Get the information of the leader broker.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/ready": {
+ "get": {
+ "description": "",
+ "operationId": "isReady",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Broker is ready"
+ },
+ "500": {
+ "description": "Broker is not ready"
+ }
+ },
+ "summary": "Check if the broker is fully initialized",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/shutdown": {
+ "post": {
+ "description": "",
+ "operationId": "shutDownBrokerGracefully",
+ "parameters": [
+ {
+ "description": "if the value absent(value=0) means no concurrent limitation.",
+ "format": "int32",
+ "in": "query",
+ "name": "maxConcurrentUnloadPerSec",
+ "required": false,
+ "type": "integer"
+ },
+ {
+ "default": true,
+ "in": "query",
+ "name": "forcedTerminateTopic",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Execute shutdown command successfully"
+ },
+ "403": {
+ "description": "You don't have admin permission to update service-configuration"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Shutdown broker gracefully.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/version": {
+ "get": {
+ "description": "",
+ "operationId": "version",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Everything is OK",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Get version of current broker",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/{clusterName}/{broker-webserviceurl}/ownedNamespaces": {
+ "get": {
+ "description": "",
+ "operationId": "getOwnedNamespaces",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "clusterName",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "broker-webserviceurl",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "$ref": "#/definitions/NamespaceOwnershipStatus"
+ },
+ "type": "object"
+ }
+ },
+ "307": {
+ "description": "Current broker doesn't serve the cluster"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Cluster doesn't exist"
+ }
+ },
+ "summary": "Get the list of namespaces served by the specific broker",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/brokers/{cluster}": {
+ "get": {
+ "description": "",
+ "operationId": "getActiveBrokers",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "307": {
+ "description": "Current broker doesn't serve this cluster"
+ },
+ "401": {
+ "description": "Authentication required"
+ },
+ "403": {
+ "description": "This operation requires super-user access"
+ },
+ "404": {
+ "description": "Cluster does not exist: cluster={clustername}"
+ }
+ },
+ "summary": "Get the list of active brokers (web service addresses) in the cluster.If authorization is not enabled, any cluster name is valid.",
+ "tags": [
+ "brokers"
+ ]
+ }
+ },
+ "/clusters": {
+ "get": {
+ "description": "",
+ "operationId": "getClusters",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Return a list of clusters.",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get the list of all the Pulsar clusters.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}": {
+ "delete": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "deleteCluster",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Cluster has been deleted."
+ },
+ "403": {
+ "description": "Don't have admin permission or policies are read-only."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "412": {
+ "description": "Cluster is not empty."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Delete an existing cluster.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getCluster",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Return the cluster data.",
+ "schema": {
+ "$ref": "#/definitions/ClusterData"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get the configuration for the specified cluster.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "post": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "updateCluster",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The cluster data",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterData"
+ },
+ "x-examples": {
+ "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651'\n}"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Cluster has been updated."
+ },
+ "403": {
+ "description": "Don't have admin permission or policies are read-only."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Update the configuration for a cluster.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "put": {
+ "description": "This operation requires Pulsar superuser privileges, and the name cannot contain the '/' characters.",
+ "operationId": "createCluster",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The cluster data",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterData"
+ },
+ "x-examples": {
+ "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651',\n}"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Cluster has been created."
+ },
+ "403": {
+ "description": "You don't have admin permission to create the cluster."
+ },
+ "409": {
+ "description": "Cluster already exists."
+ },
+ "412": {
+ "description": "Cluster name is not valid."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Create a new cluster.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/failureDomains": {
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getFailureDomains",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "$ref": "#/definitions/FailureDomain"
+ },
+ "type": "object"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Get the cluster failure domains.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/failureDomains/{domainName}": {
+ "delete": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "deleteFailureDomain",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The failure domain name",
+ "in": "path",
+ "name": "domainName",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission or policy is read only"
+ },
+ "404": {
+ "description": "FailureDomain doesn't exist"
+ },
+ "412": {
+ "description": "Cluster doesn't exist"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Delete the failure domain of the cluster",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getDomain",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The failure domain name",
+ "in": "path",
+ "name": "domainName",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/FailureDomain"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "FailureDomain doesn't exist"
+ },
+ "412": {
+ "description": "Cluster doesn't exist"
+ },
+ "500": {
+ "description": "Internal server error"
+ }
+ },
+ "summary": "Get a domain in a cluster",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "post": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "setFailureDomain",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The failure domain name",
+ "in": "path",
+ "name": "domainName",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The configuration data of a failure domain",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FailureDomain"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Failure domain doesn't exist."
+ },
+ "409": {
+ "description": "Broker already exists in another domain."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Set the failure domain of the cluster.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/namespaceIsolationPolicies": {
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getNamespaceIsolationPolicies",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "additionalProperties": {
+ "$ref": "#/definitions/NamespaceIsolationData"
+ },
+ "type": "object"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get the namespace isolation policies assigned to the cluster.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/namespaceIsolationPolicies/brokers": {
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getBrokersWithNamespaceIsolationPolicy",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "$ref": "#/definitions/BrokerNamespaceIsolationData"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Namespace-isolation policies not found."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get list of brokers with namespace-isolation policies attached to them.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/namespaceIsolationPolicies/brokers/{broker}": {
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getBrokerWithNamespaceIsolationPolicy",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The broker name (<broker-hostname>:<web-service-port>)",
+ "in": "path",
+ "name": "broker",
+ "required": true,
+ "type": "string",
+ "x-example": "broker1:8080"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/BrokerNamespaceIsolationData"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Namespace-isolation policies/ Broker not found."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get a broker with namespace-isolation policies attached to it.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/namespaceIsolationPolicies/{policyName}": {
+ "delete": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "deleteNamespaceIsolationPolicy",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The namespace isolation policy name",
+ "in": "path",
+ "name": "policyName",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission or policies are read only."
+ },
+ "404": {
+ "description": "Namespace isolation policy doesn't exist."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Delete namespace isolation policy.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getNamespaceIsolationPolicy",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The name of the namespace isolation policy",
+ "in": "path",
+ "name": "policyName",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/NamespaceIsolationData"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Policy doesn't exist."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get the single namespace isolation policy assigned to the cluster.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "post": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "setNamespaceIsolationPolicy",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The namespace isolation policy name",
+ "in": "path",
+ "name": "policyName",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The namespace isolation policy data",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NamespaceIsolationData"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "400": {
+ "description": "Namespace isolation policy data is invalid."
+ },
+ "403": {
+ "description": "Don't have admin permission or policies are read-only."
+ },
+ "404": {
+ "description": "Namespace isolation policy doesn't exist."
+ },
+ "412": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Set namespace isolation policy.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/clusters/{cluster}/peers": {
+ "get": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "getPeerCluster",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Get the peer-cluster data for the specified cluster.",
+ "tags": [
+ "clusters"
+ ]
+ },
+ "post": {
+ "description": "This operation requires Pulsar superuser privileges.",
+ "operationId": "setPeerClusterNames",
+ "parameters": [
+ {
+ "description": "The cluster name",
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "The list of peer cluster names",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "x-examples": {
+ "application/json": "[\n 'cluster-a',\n 'cluster-b'\n]"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Cluster has been updated."
+ },
+ "403": {
+ "description": "Don't have admin permission or policies are read-only."
+ },
+ "404": {
+ "description": "Cluster doesn't exist."
+ },
+ "412": {
+ "description": "Peer cluster doesn't exist."
+ },
+ "500": {
+ "description": "Internal server error."
+ }
+ },
+ "summary": "Update peer-cluster-list for a cluster.",
+ "tags": [
+ "clusters"
+ ]
+ }
+ },
+ "/namespaces/{cluster}/antiAffinity/{group}": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getAntiAffinityNamespaces",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cluster",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "group",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "tenant",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "412": {
+ "description": "Cluster not exist/Anti-affinity group can't be empty."
+ }
+ },
+ "summary": "Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{property}/{namespace}/persistence/bookieAffinity": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "deleteBookieAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "property",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Delete the bookie-affinity-group from namespace-local policy.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getBookieAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "property",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/BookieAffinityGroupData"
+ }
+ },
+ "307": {
+ "description": "Current broker doesn't serve the namespace"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Get the bookie-affinity-group from namespace-local policy.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getTenantNamespaces",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant doesn't exist"
+ }
+ },
+ "summary": "Get the list of all the namespaces for a certain tenant.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "deleteNamespace",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "default": false,
+ "in": "query",
+ "name": "force",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "default": false,
+ "in": "query",
+ "name": "authoritative",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "307": {
+ "description": "Current broker doesn't serve the namespace"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "405": {
+ "description": "Broker doesn't allow forced deletion of namespaces"
+ },
+ "409": {
+ "description": "Namespace is not empty"
+ }
+ },
+ "summary": "Delete a namespace and all the topics under it.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Policies"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Get the dump all the policies specified for a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "createNamespace",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Policies for the namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/Policies"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster doesn't exist"
+ },
+ "409": {
+ "description": "Namespace already exists"
+ },
+ "412": {
+ "description": "Namespace name is not valid"
+ }
+ },
+ "summary": "Creates a new namespace with the specified policies",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/antiAffinity": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeNamespaceAntiAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove anti-affinity group of a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getNamespaceAntiAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Get anti-affinity group of a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setNamespaceAntiAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Anti-affinity group for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Invalid antiAffinityGroup"
+ }
+ },
+ "summary": "Set anti-affinity group for a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/autoSubscriptionCreation": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeAutoSubscriptionCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Remove override of broker's allowAutoSubscriptionCreation in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getAutoSubscriptionCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get autoSubscriptionCreation info in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setAutoSubscriptionCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Settings for automatic subscription creation",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/AutoSubscriptionCreationOverride"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid autoSubscriptionCreation override"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Override broker's allowAutoSubscriptionCreation setting for a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/autoTopicCreation": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeAutoTopicCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Remove override of broker's allowAutoTopicCreation in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getAutoTopicCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get autoTopicCreation info in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setAutoTopicCreation",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Settings for automatic topic creation",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AutoTopicCreationOverride"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid autoTopicCreation override"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "406": {
+ "description": "The number of partitions should be less than or equal to maxNumPartitionsPerPartitionedTopic"
+ }
+ },
+ "summary": "Override broker's allowAutoTopicCreation setting for a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/backlogQuota": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeBacklogQuota",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "enum": [
+ "destination_storage",
+ "message_age"
+ ],
+ "in": "query",
+ "name": "backlogQuotaType",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove a backlog quota policy from a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setBacklogQuota",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "enum": [
+ "destination_storage",
+ "message_age"
+ ],
+ "in": "query",
+ "name": "backlogQuotaType",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "description": "Backlog quota for all topics of the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/BacklogQuota"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request"
+ }
+ },
+ "summary": " Set a backlog quota for all the topics on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/backlogQuotaMap": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getBacklogQuotaMap",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get backlog quota map on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/bundles": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getBundlesData",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Namespace is not setup to split in bundles"
+ }
+ },
+ "summary": "Get the bundles split data.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/clearBacklog": {
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "clearNamespaceBacklog",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "default": false,
+ "in": "query",
+ "name": "authoritative",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin or operate permission on the namespace"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Clear backlog for all topics on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/clearBacklog/{subscription}": {
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "clearNamespaceBacklogForSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "subscription",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "default": false,
+ "in": "query",
+ "name": "authoritative",
+ "required": false,
+ "type": "boolean"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin or operate permission on the namespace"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Clear backlog for a given subscription on all topics on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/compactionThreshold": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
+ "operationId": "deleteCompactionThreshold",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Delete maximum number of uncompacted bytes in a topic before compaction is triggered.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
+ "operationId": "getCompactionThreshold",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ }
+ },
+ "summary": "Maximum number of uncompacted bytes in topics before compaction is triggered.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
+ "operationId": "setCompactionThreshold",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Maximum number of uncompacted bytes in a topic of the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "compactionThreshold value is not valid"
+ }
+ },
+ "summary": "Set maximum number of uncompacted bytes in a topic before compaction is triggered.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/deduplication": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeDeduplication",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Remove broker side deduplication for all topics in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getDeduplication",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Get broker side deduplication for all topics in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "modifyDeduplication",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Flag for disabling or enabling broker side deduplication for all topics in the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Enable or disable broker side deduplication for all topics in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/deduplicationSnapshotInterval": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getDeduplicationSnapshotInterval",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get deduplicationSnapshotInterval config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setDeduplicationSnapshotInterval",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Interval to take deduplication snapshot per topic",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Set deduplicationSnapshotInterval config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/delayedDelivery": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeDelayedDeliveryPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Delete delayed delivery messages config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getDelayedDeliveryPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Get delayed delivery messages config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setDelayedDeliveryPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Delayed delivery policies for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/DelayedDeliveryPolicies"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Set delayed delivery messages config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/dispatchRate": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "deleteDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Delete dispatch-rate throttling for all topics of the namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Dispatch rate for all topics of the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Set dispatch-rate throttling for all topics of the namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/encryptionRequired": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getEncryptionRequired",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get message encryption required status in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "modifyEncryptionRequired",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Flag defining if message encryption is required",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Message encryption is required or not for all topics in a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/inactiveTopicPolicies": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeInactiveTopicPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove inactive topic policies from a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getInactiveTopicPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Get inactive topic policies config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setInactiveTopicPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Inactive topic policies for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/InactiveTopicPolicies"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Set inactive topic policies config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/isAllowAutoUpdateSchema": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getIsAllowAutoUpdateSchema",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "The flag of whether allow auto update schema",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setIsAllowAutoUpdateSchema",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Flag of whether to allow auto update schema",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Update flag of whether allow auto update schema",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxConsumersPerSubscription": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxConsumersPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxConsumersPerSubscription value is not valid"
+ }
+ },
+ "summary": " Set maxConsumersPerSubscription configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxConsumersPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxConsumersPerSubscription config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxConsumersPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum consumers per subscription",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxConsumersPerSubscription value is not valid"
+ }
+ },
+ "summary": " Set maxConsumersPerSubscription configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxConsumersPerTopic": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxConsumersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove maxConsumersPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxConsumersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxConsumersPerTopic config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxConsumersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum consumers per topic",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxConsumersPerTopic value is not valid"
+ }
+ },
+ "summary": " Set maxConsumersPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxProducersPerTopic": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxProducersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove maxProducersPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxProducersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxProducersPerTopic config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxProducersPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum producers per topic",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxProducersPerTopic value is not valid"
+ }
+ },
+ "summary": " Set maxProducersPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxSubscriptionsPerTopic": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxSubscriptionsPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Remove maxSubscriptionsPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxSubscriptionsPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxSubscriptionsPerTopic config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxSubscriptionsPerTopic",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum subscriptions per topic",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxUnackedMessagesPerSubscription value is not valid"
+ }
+ },
+ "summary": " Set maxSubscriptionsPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxTopicsPerNamespace": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setInactiveTopicPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Set maxTopicsPerNamespace config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxTopicsPerNamespace",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace does not exist"
+ }
+ },
+ "summary": "Get maxTopicsPerNamespace config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setInactiveTopicPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum topics for specific namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Set maxTopicsPerNamespace config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerConsumer": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxUnackedmessagesPerConsumer",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Remove maxUnackedMessagesPerConsumer config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxUnackedMessagesPerConsumer",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxUnackedMessagesPerConsumer config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxUnackedMessagesPerConsumer",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum unacked messages per consumer",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxUnackedMessagesPerConsumer value is not valid"
+ }
+ },
+ "summary": " Set maxConsumersPerTopic configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerSubscription": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeMaxUnackedmessagesPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Remove maxUnackedMessagesPerSubscription config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getMaxUnackedmessagesPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get maxUnackedMessagesPerSubscription config on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setMaxUnackedMessagesPerSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Number of maximum unacked messages per subscription",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "maxUnackedMessagesPerSubscription value is not valid"
+ }
+ },
+ "summary": " Set maxUnackedMessagesPerSubscription configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/messageTTL": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeNamespaceMessageTTL",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Invalid TTL"
+ }
+ },
+ "summary": "Remove message TTL in seconds for namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getNamespaceMessageTTL",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Get the message TTL for the namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setNamespaceMessageTTL",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "TTL in seconds for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Invalid TTL"
+ }
+ },
+ "summary": "Set message TTL in seconds for namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/offloadDeletionLagMs": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "clearOffloadDeletionLag",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Clear the namespace configured offload deletion lag. The topics in the namespace will fallback to using the default configured deletion lag for the broker",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "A negative value denotes that deletion has been completely disabled. 'null' denotes that the topics in the namespace will fall back to the broker default for deletion lag.",
+ "operationId": "getOffloadDeletionLag",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ }
+ },
+ "summary": "Number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "A negative value disables the deletion completely.",
+ "operationId": "setOffloadDeletionLag",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "New number of milliseconds to wait before deleting a ledger segment which has been offloaded",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "offloadDeletionLagMs value is not valid"
+ }
+ },
+ "summary": "Set number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/offloadPolicies": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getOffloadPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get offload configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setOffloadPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Offload policies for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/OffloadPoliciesImpl"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid"
+ }
+ },
+ "summary": " Set offload configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/offloadThreshold": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "A negative value disables automatic offloading",
+ "operationId": "getOffloadThreshold",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ }
+ },
+ "summary": "Maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "-1 will revert to using the cluster default. A negative value disables automatic offloading. ",
+ "operationId": "setOffloadThreshold",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Maximum number of bytes stored on the pulsar cluster for a topic of the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "offloadThreshold value is not valid"
+ }
+ },
+ "summary": "Set maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/permissions": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getPermissions",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Namespace is not empty"
+ }
+ },
+ "summary": "Retrieve the permissions for a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/permissions/subscription": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getPermissionOnSubscription",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Namespace is not empty"
+ }
+ },
+ "summary": "Retrieve the permissions for a subscription.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/permissions/{role}": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "revokePermissionsOnNamespace",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "role",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ }
+ },
+ "summary": "Revoke all permissions to a role on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "grantPermissionOnNamespace",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "role",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "List of permissions for the specified role",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "items": {
+ "enum": [
+ "produce",
+ "consume",
+ "functions",
+ "sources",
+ "sinks",
+ "packages"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "501": {
+ "description": "Authorization is not enabled"
+ }
+ },
+ "summary": "Grant a new permission to a role on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/persistence": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "deletePersistence",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Delete the persistence configuration for all topics on a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getPersistence",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Get the persistence configuration for a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setPersistence",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Persistence policies for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PersistencePolicies"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid persistence policies"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Set the persistence configuration for all the topics on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity": {
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setBookieAffinityGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Bookie affinity group for the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/BookieAffinityGroupData"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "307": {
+ "description": "Current broker doesn't serve the namespace"
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ }
+ },
+ "summary": "Set the bookie-affinity-group to namespace-persistent policy.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/properties": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "clearProperties",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Clear properties on a given namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getProperties",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get key value pair properties for a given namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setProperties",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Key value pair properties for the namespace",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Put key value pairs property on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/property/{key}": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeProperty",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get property value for a given key on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getProperty",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Get property value for a given key on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/property/{key}/{value}": {
+ "put": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setProperty",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "value",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or namespace doesn't exist"
+ }
+ },
+ "summary": "Put a key value pair property on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/removeOffloadPolicies": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeOffloadPolicies",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ },
+ "409": {
+ "description": "Concurrent modification"
+ },
+ "412": {
+ "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid"
+ }
+ },
+ "summary": " Set offload configuration on a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/replication": {
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getNamespaceReplicationClusters",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Namespace is not global"
+ }
+ },
+ "summary": "Get the replication clusters for a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setNamespaceReplicationClusters",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "List of replication clusters",
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "409": {
+ "description": "Peer-cluster can't be part of replication-cluster"
+ },
+ "412": {
+ "description": "Namespace is not global or invalid cluster ids"
+ }
+ },
+ "summary": "Set the replication clusters for a namespace.",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/replicatorDispatchRate": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeReplicatorDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Remove replicator dispatch-rate throttling for all topics of the namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getReplicatorDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Namespace does not exist"
+ }
+ },
+ "summary": "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "setReplicatorDispatchRate",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "description": "Replicator dispatch rate for all topics of the specified namespace",
+ "in": "body",
+ "name": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/DispatchRateImpl"
+ }
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ }
+ },
+ "summary": "Set replicator dispatch-rate throttling for all topics of the namespace",
+ "tags": [
+ "namespaces"
+ ]
+ }
+ },
+ "/namespaces/{tenant}/{namespace}/resourcegroup": {
+ "delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "removeNamespaceResourceGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "namespace",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "403": {
+ "description": "Don't have admin permission"
+ },
+ "404": {
+ "description": "Tenant or cluster or namespace doesn't exist"
+ },
+ "412": {
+ "description": "Invalid resourcegroup"
+ }
+ },
+ "summary": "Delete resourcegroup for a namespace",
+ "tags": [
+ "namespaces"
+ ]
+ },
+ "get": {
+ "consumes": [
+ "application/json"
+ ],
+ "description": "",
+ "operationId": "getNamespaceResourceGroup",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "tenant",
+ "required": true,
+ "type": "string"
... 78562 lines suppressed ...