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 ...