You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2024/04/02 06:00:52 UTC

(pulsar-site) branch main updated (ee11559a50d5 -> 4c6ba184202d)

This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


    from ee11559a50d5  [feat][doc] show how to use Pulsar BOM with Java client (#874)
     new f0e63dd66ca0 Add instructions to close the release vote
     new 15fe65cc6036 Improve release process instructions
     new e5f88d90b87e Improve release notes guide
     new 4c6ba184202d Add release notes for Pulsar 3.0.4

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 contribute/release-note-guide.md                   | 10 ++-
 contribute/release-process.md                      | 77 +++++++++++++++++-----
 data/release-java.js                               |  1 +
 data/release-pulsar.js                             | 11 +++-
 release-notes/versioned/client-java-3.0.4.md       | 15 +++++
 release-notes/versioned/pulsar-3.0.4.md            | 73 ++++++++++++++++++++
 releases.json                                      |  1 +
 static/swagger/{3.0.3 => 3.0.4}/swagger.json       |  3 -
 .../swagger/{3.0.0 => 3.0.4}/swaggerfunctions.json |  0
 .../swagger/{2.10.5 => 3.0.4}/swaggerlookup.json   |  0
 .../swagger/{3.0.0 => 3.0.4}/swaggerpackages.json  |  0
 static/swagger/{3.0.0 => 3.0.4}/swaggersink.json   |  0
 static/swagger/{3.0.0 => 3.0.4}/swaggersource.json |  0
 .../{3.0.0 => 3.0.4}/swaggertransactions.json      |  0
 static/swagger/{3.0.3 => 3.0.4/v2}/swagger.json    |  3 -
 .../{2.10.5 => 3.0.4/v2}/swaggerlookup.json        |  0
 .../{3.0.0 => 3.0.4/v3}/swaggerfunctions.json      |  0
 .../{3.0.0 => 3.0.4/v3}/swaggerpackages.json       |  0
 .../swagger/{3.0.0 => 3.0.4/v3}/swaggersink.json   |  0
 .../swagger/{3.0.0 => 3.0.4/v3}/swaggersource.json |  0
 .../{3.0.0 => 3.0.4/v3}/swaggertransactions.json   |  0
 static/swagger/restApiVersions.json                | 19 ++++++
 22 files changed, 189 insertions(+), 24 deletions(-)
 create mode 100644 release-notes/versioned/client-java-3.0.4.md
 create mode 100644 release-notes/versioned/pulsar-3.0.4.md
 copy static/swagger/{3.0.3 => 3.0.4}/swagger.json (99%)
 copy static/swagger/{3.0.0 => 3.0.4}/swaggerfunctions.json (100%)
 copy static/swagger/{2.10.5 => 3.0.4}/swaggerlookup.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4}/swaggerpackages.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4}/swaggersink.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4}/swaggersource.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4}/swaggertransactions.json (100%)
 copy static/swagger/{3.0.3 => 3.0.4/v2}/swagger.json (99%)
 copy static/swagger/{2.10.5 => 3.0.4/v2}/swaggerlookup.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4/v3}/swaggerfunctions.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4/v3}/swaggerpackages.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4/v3}/swaggersink.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4/v3}/swaggersource.json (100%)
 copy static/swagger/{3.0.0 => 3.0.4/v3}/swaggertransactions.json (100%)


(pulsar-site) 03/04: Improve release notes guide

Posted by lh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit e5f88d90b87e9ad0a86f1b3129c95510a59fff52
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Apr 2 08:44:50 2024 +0300

    Improve release notes guide
---
 contribute/release-note-guide.md | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/contribute/release-note-guide.md b/contribute/release-note-guide.md
index 8da5adae2063..6b0b7a95a8c2 100644
--- a/contribute/release-note-guide.md
+++ b/contribute/release-note-guide.md
@@ -49,7 +49,15 @@ Here are 2 approaches:
 Using "git log"
 
 ```bash
-git log --reverse  --oneline v2.11.3..v2.11.4 | colrm 1 12 | sed 's/\] \[/][/' | perl -p -e 's/^\s+//' | sort
+PREVIOUS_VERSION=3.0.3
+VERSION_WITHOUT_RC=3.0.4
+git log --reverse  --oneline v$PREVIOUS_VERSION..v$VERSION_WITHOUT_RC | colrm 1 12 | sed 's/\] \[/][/' | perl -p -e 's/^\s+//' | awk -F ']' '{
+    if ($1 ~ /^\[/) {
+        print $1 "]" $2, $0
+    } else {
+        print "[zzz]", $0
+    }
+}' | sort | cut -d ' ' -f2- | sed 's/\(#\([0-9]\+\)\)/[#\2](https:\/\/github.com\/apache\/pulsar\/pull\/\2)/g' | sed 's/^/- /'
 ```
 
 Alternatively using "gh pr list"


(pulsar-site) 01/04: Add instructions to close the release vote

Posted by lh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit f0e63dd66ca0bcfe16026acaadd2d60344bd0a95
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Apr 2 07:49:41 2024 +0300

    Add instructions to close the release vote
---
 contribute/release-process.md | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/contribute/release-process.md b/contribute/release-process.md
index 5fdff1d26a08..0c25d3e12e06 100644
--- a/contribute/release-process.md
+++ b/contribute/release-process.md
@@ -520,6 +520,37 @@ The vote should be open for at least 72 hours (3 days). Votes from Pulsar PMC me
 
 If the release is approved here with 3 +1 binding votes, you can then proceed to the next step. Otherwise, you should repeat the previous steps and prepare another release candidate to vote.
 
+
+## Summarize the voting for the release
+
+Once the vote has been passed, you will need to send a result vote to [dev@pulsar.apache.org](mailto:dev@pulsar.apache.org) on the voting thread.
+
+Message:
+
+```shell
+tee >(pbcopy) <<EOF
+Hello all,
+
+The vote to release Apache Pulsar version ${VERSION_WITHOUT_RC} based on ${VERSION_RC} is now closed.
+
+The vote PASSED with X binding "+1", Y non-binding "+1" and 0 "-1" votes:
+
+"+1" Binding votes:
+
+  - <name>
+
+"+1" Non-Binding votes:
+
+  - <name>
+
+I'll continue with the release process and the release announcement will follow shortly.
+
+Thanks,
+<your name>
+EOF
+```
+
+
 ## Promote the release
 
 For commands below, you need to set the environment variables VERSION_RC, VERSION_WITHOUT_RC and APACHE_USER.


(pulsar-site) 04/04: Add release notes for Pulsar 3.0.4

Posted by lh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit 4c6ba184202dc3317b0ec752c99ffb06f63f7a41
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Apr 2 08:11:29 2024 +0300

    Add release notes for Pulsar 3.0.4
---
 data/release-java.js                             |     1 +
 data/release-pulsar.js                           |    11 +-
 release-notes/versioned/client-java-3.0.4.md     |    15 +
 release-notes/versioned/pulsar-3.0.4.md          |    73 +
 releases.json                                    |     1 +
 static/swagger/3.0.4/swagger.json                | 33471 +++++++++++++++++++++
 static/swagger/3.0.4/swaggerfunctions.json       |  2230 ++
 static/swagger/3.0.4/swaggerlookup.json          |   319 +
 static/swagger/3.0.4/swaggerpackages.json        |   624 +
 static/swagger/3.0.4/swaggersink.json            |  1428 +
 static/swagger/3.0.4/swaggersource.json          |  1377 +
 static/swagger/3.0.4/swaggertransactions.json    |   895 +
 static/swagger/3.0.4/v2/swagger.json             | 33471 +++++++++++++++++++++
 static/swagger/3.0.4/v2/swaggerlookup.json       |   319 +
 static/swagger/3.0.4/v3/swaggerfunctions.json    |  2230 ++
 static/swagger/3.0.4/v3/swaggerpackages.json     |   624 +
 static/swagger/3.0.4/v3/swaggersink.json         |  1428 +
 static/swagger/3.0.4/v3/swaggersource.json       |  1377 +
 static/swagger/3.0.4/v3/swaggertransactions.json |   895 +
 static/swagger/restApiVersions.json              |    19 +
 20 files changed, 80807 insertions(+), 1 deletion(-)

diff --git a/data/release-java.js b/data/release-java.js
index 4452c7db1674..fcadbb4acb24 100644
--- a/data/release-java.js
+++ b/data/release-java.js
@@ -5,6 +5,7 @@ module.exports = [
 {tagName: "v3.1.2",vtag:"3.1.x",releaseNotes:"/release-notes/versioned/client-java-3.1.2/",doc:"/docs/3.1.x/client-libraries-java",version:""},
 {tagName: "v3.1.1",vtag:"3.1.x",releaseNotes:"/release-notes/versioned/client-java-3.1.1/",doc:"/docs/3.1.x/client-libraries-java",version:""},
 {tagName: "v3.1.0",vtag:"3.1.x",releaseNotes:"/release-notes/versioned/client-java-3.1.0/",doc:"/docs/3.1.x/client-libraries-java",version:""},
+{tagName: "v3.0.4",vtag:"3.0.x",releaseNotes:"/release-notes/versioned/client-java-3.0.4/",doc:"/docs/3.0.x/client-libraries-java",version:"v3.0.x"},
 {tagName: "v3.0.3",vtag:"3.0.x",releaseNotes:"/release-notes/versioned/client-java-3.0.3/",doc:"/docs/3.0.x/client-libraries-java",version:"v3.0.x"},
 {tagName: "v3.0.2",vtag:"3.0.x",releaseNotes:"/release-notes/versioned/client-java-3.0.2/",doc:"/docs/3.0.x/client-libraries-java",version:"v3.0.x"},
 {tagName: "v3.0.1",vtag:"3.0.x",releaseNotes:"/release-notes/versioned/client-java-3.0.1/",doc:"/docs/3.0.x/client-libraries-java",version:"v3.0.x"},
diff --git a/data/release-pulsar.js b/data/release-pulsar.js
index ed0944786c6e..6af6666a34dc 100644
--- a/data/release-pulsar.js
+++ b/data/release-pulsar.js
@@ -53,6 +53,15 @@ module.exports = [
         "doc": "/docs/3.1.x",
         "version": ""
     },
+    {
+      "author": "lhotari",
+      "tagName": "v3.0.4",
+      "publishedAt": "2024-04-02T04:56:15Z",
+      "vtag": "3.0.x",
+      "releaseNotes": "/release-notes/versioned/pulsar-3.0.4/",
+      "doc": "/docs/3.0.x",
+      "version": "v3.0.x"
+    },
     {
       "author": "heesung-sn",
       "tagName": "v3.0.3",
@@ -60,7 +69,7 @@ module.exports = [
       "vtag": "3.0.x",
       "releaseNotes": "/release-notes/versioned/pulsar-3.0.3/",
       "doc": "/docs/3.0.x",
-      "version": "v3.0.x"
+      "version": ""
     },
     {
       "author": "poorbarcode",
diff --git a/release-notes/versioned/client-java-3.0.4.md b/release-notes/versioned/client-java-3.0.4.md
new file mode 100644
index 000000000000..fa6e757fc0dd
--- /dev/null
+++ b/release-notes/versioned/client-java-3.0.4.md
@@ -0,0 +1,15 @@
+---
+id: client-java-3.0.4
+title: Client Java 3.0.4
+sidebar_label: Client Java 3.0.4
+---
+
+- [fix][client] Consumer lost message ack due to race condition in acknowledge with batch message ([#22353](https://github.com/apache/pulsar/pull/22353))
+- [fix][client] Fix wrong results of hasMessageAvailable and readNext after seeking by timestamp ([#22363](https://github.com/apache/pulsar/pull/22363))
+- [fix][client] GenericProtobufNativeSchema not implement getNativeSchema method. ([#22204](https://github.com/apache/pulsar/pull/22204))
+- [fix][client] Unclear error message when creating a consumer with two same topics ([#22255](https://github.com/apache/pulsar/pull/22255))
+- [fix][client] fix Reader.hasMessageAvailable might return true after seeking to latest ([#22201](https://github.com/apache/pulsar/pull/22201))
+- [fix][client]Fixed getting an incorrect `maxMessageSize` value when accessing multiple clusters in the same process ([#22306](https://github.com/apache/pulsar/pull/22306))
+- [improve][client] Add backoff for `seek` ([#20963](https://github.com/apache/pulsar/pull/20963))
+- [improve][misc] Remove the call to sun InetAddressCachePolicy ([#22329](https://github.com/apache/pulsar/pull/22329))
+- [fix][misc] Make ConcurrentBitSet thread safe ([#22361](https://github.com/apache/pulsar/pull/22361))
\ No newline at end of file
diff --git a/release-notes/versioned/pulsar-3.0.4.md b/release-notes/versioned/pulsar-3.0.4.md
new file mode 100644
index 000000000000..37f98b92b03e
--- /dev/null
+++ b/release-notes/versioned/pulsar-3.0.4.md
@@ -0,0 +1,73 @@
+---
+id: pulsar-3.0.4
+title: Apache Pulsar 3.0.4
+sidebar_label: Apache Pulsar 3.0.4
+---
+
+#### 2024-04-02
+
+### Broker
+
+- [fix][broker] Avoid execute prepareInitPoliciesCacheAsync if namespace is deleted ([#22268](https://github.com/apache/pulsar/pull/22268))
+- [fix][broker] Avoid expired unclosed ledgers when checking expired messages by ledger closure time ([#22335](https://github.com/apache/pulsar/pull/22335))
+- [fix][broker] Check cursor state before adding it to the `waitingCursors` ([#22191](https://github.com/apache/pulsar/pull/22191))
+- [fix][broker] Close dispatchers stuck due to mismatch between dispatcher.consumerList and dispatcher.consumerSet ([#22270](https://github.com/apache/pulsar/pull/22270))
+- [fix][broker] Fix OpReadEntry.skipCondition NPE issue ([#22367](https://github.com/apache/pulsar/pull/22367))
+- [fix][broker] Fix ResourceGroup report local usage ([#22340](https://github.com/apache/pulsar/pull/22340))
+- [fix][broker] Fix ResourceGroups loading ([#21781](https://github.com/apache/pulsar/pull/21781))
+- [fix][broker] Fix issue of field 'topic' is not set when handle GetSchema request ([#22377](https://github.com/apache/pulsar/pull/22377))
+- [fix][broker] Fix wrong double-checked locking for readOnActiveConsumerTask in dispatcher ([#22279](https://github.com/apache/pulsar/pull/22279))
+- [fix][broker] fix mismatch between dispatcher.consumerList and dispatcher.consumerSet ([#22283](https://github.com/apache/pulsar/pull/22283))
+- [fix][ml]Expose ledger timestamp  ([#22338](https://github.com/apache/pulsar/pull/22338))
+- [improve][admin] Fix the `createMissingPartitions` doesn't response correctly ([#22311](https://github.com/apache/pulsar/pull/22311))
+- [improve][broker] Add createTopicIfDoesNotExist option to RawReader constructor ([#22264](https://github.com/apache/pulsar/pull/22264))
+- [improve][broker] Add fine-grain authorization to ns/topic management endpoints ([#22309](https://github.com/apache/pulsar/pull/22309))
+- [improve][broker] Add missing configuration keys for caching catch-up reads ([#22295](https://github.com/apache/pulsar/pull/22295))
+- [improve][broker] Change log level to reduce duplicated logs ([#22147](https://github.com/apache/pulsar/pull/22147))
+
+### Client
+
+- [fix][client] Consumer lost message ack due to race condition in acknowledge with batch message ([#22353](https://github.com/apache/pulsar/pull/22353))
+- [fix][client] Fix wrong results of hasMessageAvailable and readNext after seeking by timestamp ([#22363](https://github.com/apache/pulsar/pull/22363))
+- [fix][client] GenericProtobufNativeSchema not implement getNativeSchema method. ([#22204](https://github.com/apache/pulsar/pull/22204))
+- [fix][client] Unclear error message when creating a consumer with two same topics ([#22255](https://github.com/apache/pulsar/pull/22255))
+- [fix][client] fix Reader.hasMessageAvailable might return true after seeking to latest ([#22201](https://github.com/apache/pulsar/pull/22201))
+- [fix][client]Fixed getting an incorrect `maxMessageSize` value when accessing multiple clusters in the same process ([#22306](https://github.com/apache/pulsar/pull/22306))
+- [improve][client] Add backoff for `seek` ([#20963](https://github.com/apache/pulsar/pull/20963))
+
+### Pulsar IO and Pulsar Functions
+
+- [fix][fn] enable Go function token auth and TLS ([#20468](https://github.com/apache/pulsar/pull/20468))
+
+### Others
+
+- [improve][misc] Remove the call to sun InetAddressCachePolicy ([#22329](https://github.com/apache/pulsar/pull/22329))
+- [fix][misc] Make ConcurrentBitSet thread safe ([#22361](https://github.com/apache/pulsar/pull/22361))
+- [fix][ws] Check the validity of config before start websocket service ([#22231](https://github.com/apache/pulsar/pull/22231))
+
+### Library updates
+
+- [fix][sec] Upgrade jose4j to 0.9.4 ([#22273](https://github.com/apache/pulsar/pull/22273))
+- [fix][sec] Bump google.golang.org/grpc from 1.38.0 to 1.56.3 in /pulsar-function-go ([#21444](https://github.com/apache/pulsar/pull/21444))
+- [fix][sec] Go Functions security updates ([#21844](https://github.com/apache/pulsar/pull/21844))
+- [fix][sec] Upgrade Zookeeper to 3.9.2 to address CVE-2024-23944 ([#22275](https://github.com/apache/pulsar/pull/22275))
+- [fix][sec] Upgrade prometheus client_golang to v1.12.2 to fix CVE-2022-21698 ([#20579](https://github.com/apache/pulsar/pull/20579))
+- [fix][build] Upgrade alluxio version to 2.9.3 to fix CVE-2023-38889 ([#21715](https://github.com/apache/pulsar/pull/21715))
+- [improve][misc] Include native epoll library for Netty for arm64 ([#22319](https://github.com/apache/pulsar/pull/22319))
+- [improve][misc] Pin Netty version in pulsar-io/alluxio ([#21728](https://github.com/apache/pulsar/pull/21728))
+- [improve][misc] Upgrade Netty version to 4.1.105.Final ([#21923](https://github.com/apache/pulsar/pull/21923))
+
+### Tests & CI
+
+- [fix][ci] Tolerate mount option change failing in CI ([#22241](https://github.com/apache/pulsar/pull/22241))
+- [fix][ci][branch-3.0] Increase Maven's heap size from 1024m to 1500m as it is in master
+- [fix][test] Fix flaky ManagedLedgerErrorsTest.recoverAfterZnodeVersionError ([#22368](https://github.com/apache/pulsar/pull/22368))
+- [fix][test] Fix flaky RGUsageMTAggrWaitForAllMsgsTest ([#22252](https://github.com/apache/pulsar/pull/22252))
+- [fix][test] Fix flaky test BrokerServiceAutoSubscriptionCreationTest ([#22190](https://github.com/apache/pulsar/pull/22190))
+- [fix][test] Fix flaky test ManagedLedgerTest.testGetNumberOfEntriesInStorage ([#22344](https://github.com/apache/pulsar/pull/22344))
+- [fix][test][branch-3.0] Fix broken ManagedLedgerTest.testGetNumberOfEntriesInStorage
+- [fix][test] Fix the tests with same namespace name ([#22240](https://github.com/apache/pulsar/pull/22240))
+- [improve][test][branch-3.0] Improve ManagedLedgerTest.testGetNumberOfEntriesInStorage
+- [improve][misc] Upgrade checkstyle to 10.14.2 ([#22291](https://github.com/apache/pulsar/pull/22291))
+
+For the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.3...v3.0.4).
\ No newline at end of file
diff --git a/releases.json b/releases.json
index 58e9043b918e..bb2acfe0363d 100644
--- a/releases.json
+++ b/releases.json
@@ -5,6 +5,7 @@
   "3.1.2",
   "3.1.1",
   "3.1.0",
+  "3.0.4",
   "3.0.3",
   "3.0.2",
   "3.0.1",
diff --git a/static/swagger/3.0.4/swagger.json b/static/swagger/3.0.4/swagger.json
new file mode 100644
index 000000000000..67ff38a4b4e6
--- /dev/null
+++ b/static/swagger/3.0.4/swagger.json
@@ -0,0 +1,33471 @@
+{
+    "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"
+        },
+        "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"
+        },
+        "AutoSubscriptionCreationOverrideImpl": {
+            "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"
+        },
+        "BacklogQuotaImpl": {
+            "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"
+        },
+        "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"
+        },
+        "BrokerInfo": {
+            "properties": {
+                "brokerId": {
+                    "type": "string"
+                },
+                "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"
+        },
+        "Certificate": {
+            "properties": {
+                "encoded": {
+                    "items": {
+                        "format": "byte",
+                        "type": "string"
+                    },
+                    "type": "array"
+                },
+                "publicKey": {
+                    "$ref": "#/definitions/PublicKey"
+                },
+                "type": {
+                    "type": "string"
+                }
+            },
+            "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"
+                },
+                "migrated": {
+                    "description": "flag to check if cluster is migrated to different cluster",
+                    "example": false,
+                    "type": "boolean"
+                },
+                "migratedClusterUrl": {
+                    "$ref": "#/definitions/ClusterUrl",
+                    "description": "url of cluster where current cluster is migrated"
+                },
+                "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"
+        },
+        "ClusterUrl": {
+            "properties": {
+                "brokerServiceUrl": {
+                    "type": "string"
+                },
+                "brokerServiceUrlTls": {
+                    "type": "string"
+                },
+                "empty": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "CompactionStats": {
+            "properties": {
+                "lastCompactionDurationTimeInMills": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionFailedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionRemovedEventCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionSucceedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "CompactionStatsImpl": {
+            "properties": {
+                "lastCompactionDurationTimeInMills": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionFailedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionRemovedEventCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastCompactionSucceedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "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"
+        },
+        "ConsumerStats": {
+            "properties": {
+                "address": {
+                    "type": "string"
+                },
+                "availablePermits": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "avgMessagesPerEntry": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "blockedConsumerOnUnackedMsgs": {
+                    "type": "boolean"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "chunkedMessageRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "clientVersion": {
+                    "type": "string"
+                },
+                "connectedSince": {
+                    "type": "string"
+                },
+                "consumerName": {
+                    "type": "string"
+                },
+                "keyHashRanges": {
+                    "items": {
+                        "type": "string"
+                    },
+                    "type": "array"
+                },
+                "lastAckedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedFlowTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "messageAckRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "metadata": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateRedeliver": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "readPositionWhenJoining": {
+                    "type": "string"
+                },
+                "unackedMessages": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "CursorDetails": {
+            "properties": {
+                "cursorBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "cursorLedgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "CursorInfo": {
+            "properties": {
+                "creationDate": {
+                    "type": "string"
+                },
+                "cursorsLedgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "individualDeletedMessages": {
+                    "items": {
+                        "$ref": "#/definitions/MessageRangeInfo"
+                    },
+                    "type": "array"
+                },
+                "markDelete": {
+                    "$ref": "#/definitions/PositionInfo"
+                },
+                "modificationDate": {
+                    "type": "string"
+                },
+                "properties": {
+                    "additionalProperties": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "type": "object"
+                },
+                "version": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "CursorStats": {
+            "properties": {
+                "active": {
+                    "type": "boolean"
+                },
+                "cursorLedger": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "cursorLedgerLastEntry": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "individuallyDeletedMessages": {
+                    "type": "string"
+                },
+                "lastLedgerSwitchTimestamp": {
+                    "type": "string"
+                },
+                "markDeletePosition": {
+                    "type": "string"
+                },
+                "messagesConsumedCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "numberOfEntriesSinceFirstNotAckedMessage": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "pendingReadOps": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "properties": {
+                    "additionalProperties": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "type": "object"
+                },
+                "readPosition": {
+                    "type": "string"
+                },
+                "state": {
+                    "type": "string"
+                },
+                "subscriptionHavePendingRead": {
+                    "type": "boolean"
+                },
+                "subscriptionHavePendingReplayRead": {
+                    "type": "boolean"
+                },
+                "totalNonContiguousDeletedMessagesRange": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "waitingReadOp": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "DelayedDeliveryPolicies": {
+            "properties": {
+                "active": {
+                    "type": "boolean"
+                },
+                "tickTime": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "DeleteSchemaResponse": {
+            "properties": {
+                "version": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "DispatchRate": {
+            "properties": {
+                "dispatchThrottlingRateInByte": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "dispatchThrottlingRateInMsg": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "ratePeriodInSecond": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "relativeToPublishRate": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "DispatchRateImpl": {
+            "properties": {
+                "dispatchThrottlingRateInByte": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "dispatchThrottlingRateInMsg": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "ratePeriodInSecond": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "relativeToPublishRate": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "EntryFilters": {
+            "properties": {
+                "entryFilterNames": {
+                    "type": "string"
+                }
+            },
+            "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"
+        },
+        "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"
+        },
+        "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"
+        },
+        "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"
+        },
+        "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"
+                },
+                "kubernetesFunctionAuthProviderConfig": {
+                    "additionalProperties": {
+                        "type": "object"
+                    },
+                    "type": "object"
+                },
+                "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"
+        },
+        "LedgerDetails": {
+            "properties": {
+                "entries": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ledgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "size": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "timestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "LedgerInfo": {
+            "properties": {
+                "entries": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ledgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "metadata": {
+                    "type": "string"
+                },
+                "offloaded": {
+                    "type": "boolean"
+                },
+                "size": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "underReplicated": {
+                    "type": "boolean"
+                }
+            },
+            "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"
+                },
+                "loadManagerClassName": {
+                    "type": "string"
+                },
+                "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"
+                },
+                "startTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "systemResourceUsage": {
+                    "$ref": "#/definitions/SystemResourceUsage"
+                },
+                "timestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "underLoaded": {
+                    "type": "boolean"
+                },
+                "webServiceUrl": {
+                    "type": "string"
+                },
+                "webServiceUrlTls": {
+                    "type": "string"
+                }
+            },
+            "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"
+        },
+        "ManagedLedgerInfo": {
+            "properties": {
+                "creationDate": {
+                    "type": "string"
+                },
+                "cursors": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/CursorInfo"
+                    },
+                    "type": "object"
+                },
+                "ledgers": {
+                    "items": {
+                        "$ref": "#/definitions/LedgerInfo"
+                    },
+                    "type": "array"
+                },
+                "modificationDate": {
+                    "type": "string"
+                },
+                "properties": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "terminatedPosition": {
+                    "$ref": "#/definitions/PositionInfo"
+                },
+                "version": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "MemoryLimit": {
+            "properties": {
+                "absoluteValue": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "percentOfMaxDirectMemory": {
+                    "format": "double",
+                    "type": "number"
+                }
+            },
+            "type": "object"
+        },
+        "MessageRangeInfo": {
+            "properties": {
+                "from": {
+                    "$ref": "#/definitions/PositionInfo"
+                },
+                "to": {
+                    "$ref": "#/definitions/PositionInfo"
+                }
+            },
+            "type": "object"
+        },
+        "Metrics": {
+            "properties": {
+                "dimensions": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "metrics": {
+                    "additionalProperties": {
+                        "type": "object"
+                    },
+                    "type": "object"
+                }
+            },
+            "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"
+        },
+        "NonPersistentPartitionedTopicStatsImpl": {
+            "properties": {
+                "abortedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "committedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "compaction": {
+                    "$ref": "#/definitions/CompactionStatsImpl"
+                },
+                "deduplicationStatus": {
+                    "type": "string"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "earliestMsgPublishTimeInBacklogs": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadFailureTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadLedgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadSuccessTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "metadata": {
+                    "$ref": "#/definitions/PartitionedTopicMetadata"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgDropRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "offloadedStorageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ongoingTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ownerBroker": {
+                    "type": "string"
+                },
+                "partitions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/NonPersistentTopicStatsImpl"
+                    },
+                    "type": "object"
+                },
+                "publishRateLimitedTimes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "publishers": {
+                    "items": {
+                        "$ref": "#/definitions/NonPersistentPublisherStats"
+                    },
+                    "readOnly": true,
+                    "type": "array"
+                },
+                "replication": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/NonPersistentReplicatorStats"
+                    },
+                    "readOnly": true,
+                    "type": "object"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "subscriptions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/NonPersistentSubscriptionStats"
+                    },
+                    "readOnly": true,
+                    "type": "object"
+                },
+                "topicEpoch": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingPublishers": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "NonPersistentPublisherStats": {
+            "properties": {
+                "accessMode": {
+                    "enum": [
+                        "Shared",
+                        "Exclusive",
+                        "ExclusiveWithFencing",
+                        "WaitForExclusive"
+                    ],
+                    "type": "string"
+                },
+                "address": {
+                    "type": "string"
+                },
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "chunkedMessageRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "clientVersion": {
+                    "type": "string"
+                },
+                "connectedSince": {
+                    "type": "string"
+                },
+                "metadata": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "msgDropRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "producerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "producerName": {
+                    "type": "string"
+                },
+                "supportsPartialProducer": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "NonPersistentReplicatorStats": {
+            "properties": {
+                "connected": {
+                    "type": "boolean"
+                },
+                "inboundConnectedSince": {
+                    "type": "string"
+                },
+                "inboundConnection": {
+                    "type": "string"
+                },
+                "msgDropRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateExpired": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "outboundConnectedSince": {
+                    "type": "string"
+                },
+                "outboundConnection": {
+                    "type": "string"
+                },
+                "replicationBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "replicationDelayInSeconds": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "NonPersistentSubscriptionStats": {
+            "properties": {
+                "activeConsumerName": {
+                    "type": "string"
+                },
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "blockedSubscriptionOnUnackedMsgs": {
+                    "type": "boolean"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "chunkedMessageRate": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "consumers": {
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    },
+                    "type": "array"
+                },
+                "consumersAfterMarkDeletePosition": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "durable": {
+                    "type": "boolean"
+                },
+                "earliestMsgPublishTimeInBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterAcceptedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterProcessedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterRejectedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterRescheduledMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "keySharedMode": {
+                    "type": "string"
+                },
+                "lastAckedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedFlowTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastExpireTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastMarkDeleteAdvancedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "messageAckRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgBacklogNoDelayed": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgDelayed": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgDropRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateExpired": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateRedeliver": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "replicated": {
+                    "type": "boolean"
+                },
+                "subscriptionProperties": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "totalMsgExpired": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "type": {
+                    "type": "string"
+                },
+                "unackedMessages": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "NonPersistentTopicStatsImpl": {
+            "properties": {
+                "abortedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "committedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "compaction": {
+                    "$ref": "#/definitions/CompactionStatsImpl"
+                },
+                "deduplicationStatus": {
+                    "type": "string"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "earliestMsgPublishTimeInBacklogs": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadFailureTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadLedgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadSuccessTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgDropRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "offloadedStorageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ongoingTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ownerBroker": {
+                    "type": "string"
+                },
+                "publishRateLimitedTimes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "publishers": {
+                    "items": {
+                        "$ref": "#/definitions/NonPersistentPublisherStats"
+                    },
+                    "readOnly": true,
+                    "type": "array"
+                },
+                "replication": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/NonPersistentReplicatorStats"
+                    },
+                    "readOnly": true,
+                    "type": "object"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "subscriptions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/NonPersistentSubscriptionStats"
+                    },
+                    "readOnly": true,
+                    "type": "object"
+                },
+                "topicEpoch": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingPublishers": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "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"
+                },
+                "managedLedgerOffloadThresholdInSeconds": {
+                    "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"
+                },
+                "managedLedgerExtraConfigurations": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "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"
+                },
+                "managedLedgerOffloadThresholdInSeconds": {
+                    "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"
+        },
+        "OutputStream": {
+            "type": "object"
+        },
+        "PartitionedManagedLedgerInfo": {
+            "properties": {
+                "creationDate": {
+                    "type": "string"
+                },
+                "cursors": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/CursorInfo"
+                    },
+                    "type": "object"
+                },
+                "ledgers": {
+                    "items": {
+                        "$ref": "#/definitions/LedgerInfo"
+                    },
+                    "type": "array"
+                },
+                "modificationDate": {
+                    "type": "string"
+                },
+                "partitions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/ManagedLedgerInfo"
+                    },
+                    "type": "object"
+                },
+                "properties": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "terminatedPosition": {
+                    "$ref": "#/definitions/PositionInfo"
+                },
+                "version": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "PartitionedTopicInternalStats": {
+            "properties": {
+                "metadata": {
+                    "$ref": "#/definitions/PartitionedTopicMetadata"
+                },
+                "partitions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/PersistentTopicInternalStats"
+                    },
+                    "type": "object"
+                }
+            },
+            "type": "object"
+        },
+        "PartitionedTopicMetadata": {
+            "properties": {
+                "deleted": {
+                    "type": "boolean"
+                },
+                "partitions": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "properties": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                }
+            },
+            "type": "object"
+        },
+        "PartitionedTopicStatsImpl": {
+            "properties": {
+                "abortedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "committedTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "compaction": {
+                    "$ref": "#/definitions/CompactionStatsImpl"
+                },
+                "deduplicationStatus": {
+                    "type": "string"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "earliestMsgPublishTimeInBacklogs": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadFailureTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadLedgerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastOffloadSuccessTimeStamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "metadata": {
+                    "$ref": "#/definitions/PartitionedTopicMetadata"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "offloadedStorageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ongoingTxnCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ownerBroker": {
+                    "type": "string"
+                },
+                "partitions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/TopicStats"
+                    },
+                    "type": "object"
+                },
+                "publishRateLimitedTimes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "publishers": {
+                    "items": {
+                        "$ref": "#/definitions/PublisherStats"
+                    },
+                    "type": "array"
+                },
+                "replication": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/ReplicatorStats"
+                    },
+                    "type": "object"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "subscriptions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/SubscriptionStats"
+                    },
+                    "type": "object"
+                },
+                "topicEpoch": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingPublishers": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "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"
+        },
+        "PersistentOfflineTopicStats": {
+            "properties": {
+                "brokerName": {
+                    "type": "string"
+                },
+                "cursorDetails": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/CursorDetails"
+                    },
+                    "type": "object"
+                },
+                "dataLedgerDetails": {
+                    "items": {
+                        "$ref": "#/definitions/LedgerDetails"
+                    },
+                    "type": "array"
+                },
+                "messageBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "statGeneratedAt": {
+                    "format": "date-time",
+                    "type": "string"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "topicName": {
+                    "type": "string"
+                },
+                "totalMessages": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "PersistentTopicInternalStats": {
+            "properties": {
+                "compactedLedger": {
+                    "$ref": "#/definitions/LedgerInfo"
+                },
+                "currentLedgerEntries": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "currentLedgerSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "cursors": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/CursorStats"
+                    },
+                    "type": "object"
+                },
+                "entriesAddedCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConfirmedEntry": {
+                    "type": "string"
+                },
+                "lastLedgerCreatedTimestamp": {
+                    "type": "string"
+                },
+                "lastLedgerCreationFailureTimestamp": {
+                    "type": "string"
+                },
+                "ledgers": {
+                    "items": {
+                        "$ref": "#/definitions/LedgerInfo"
+                    },
+                    "type": "array"
+                },
+                "numberOfEntries": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "pendingAddEntriesCount": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "schemaLedgers": {
+                    "items": {
+                        "$ref": "#/definitions/LedgerInfo"
+                    },
+                    "type": "array"
+                },
+                "state": {
+                    "type": "string"
+                },
+                "totalSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingCursorsCount": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "PersistentTopicStats": {
+            "properties": {
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "compaction": {
+                    "$ref": "#/definitions/CompactionStats"
+                },
+                "deduplicationStatus": {
+                    "type": "string"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "earliestMsgPublishTimeInBacklogs": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "offloadedStorageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ownerBroker": {
+                    "type": "string"
+                },
+                "publishers": {
+                    "items": {
+                        "$ref": "#/definitions/PublisherStats"
+                    },
+                    "type": "array"
+                },
+                "replication": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/ReplicatorStats"
+                    },
+                    "type": "object"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "subscriptions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/SubscriptionStats"
+                    },
+                    "type": "object"
+                },
+                "topicEpoch": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingPublishers": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "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"
+                },
+                "entryFilters": {
+                    "$ref": "#/definitions/EntryFilters"
+                },
+                "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"
+                },
+                "offload_threshold_in_seconds": {
+                    "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"
+        },
+        "PositionInfo": {
+            "properties": {
+                "entryId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ledgerId": {
+                    "format": "int64",
+                    "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"
+        },
+        "ProcessContainerFactory": {
+            "properties": {
+                "extraFunctionDependenciesDir": {
+                    "type": "string"
+                },
+                "javaInstanceJarLocation": {
+                    "type": "string"
+                },
+                "logDirectory": {
+                    "type": "string"
+                },
+                "pythonInstanceLocation": {
+                    "type": "string"
+                }
+            },
+            "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"
+        },
+        "PublisherStats": {
+            "properties": {
+                "accessMode": {
+                    "enum": [
+                        "Shared",
+                        "Exclusive",
+                        "ExclusiveWithFencing",
+                        "WaitForExclusive"
+                    ],
+                    "type": "string"
+                },
+                "address": {
+                    "type": "string"
+                },
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "chunkedMessageRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "clientVersion": {
+                    "type": "string"
+                },
+                "connectedSince": {
+                    "type": "string"
+                },
+                "metadata": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "producerId": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "producerName": {
+                    "type": "string"
+                },
+                "supportsPartialProducer": {
+                    "type": "boolean"
+                }
+            },
+            "type": "object"
+        },
+        "RawBookieInfo": {
+            "properties": {
+                "bookieId": {
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "ReplicatorStats": {
+            "properties": {
+                "connected": {
+                    "type": "boolean"
+                },
+                "inboundConnectedSince": {
+                    "type": "string"
+                },
+                "inboundConnection": {
+                    "type": "string"
+                },
+                "msgRateExpired": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "outboundConnectedSince": {
+                    "type": "string"
+                },
+                "outboundConnection": {
+                    "type": "string"
+                },
+                "replicationBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "replicationDelayInSeconds": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "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"
+        },
+        "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"
+        },
+        "SubscriptionStats": {
+            "properties": {
+                "activeConsumerName": {
+                    "type": "string"
+                },
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "blockedSubscriptionOnUnackedMsgs": {
+                    "type": "boolean"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "chunkedMessageRate": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "consumers": {
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    },
+                    "type": "array"
+                },
+                "consumersAfterMarkDeletePosition": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "durable": {
+                    "type": "boolean"
+                },
+                "earliestMsgPublishTimeInBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterAcceptedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterProcessedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterRejectedMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "filterRescheduledMsgCount": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "keySharedMode": {
+                    "type": "string"
+                },
+                "lastAckedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedFlowTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastConsumedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastExpireTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "lastMarkDeleteAdvancedTimestamp": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "messageAckRate": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgBacklog": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgBacklogNoDelayed": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgDelayed": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateExpired": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateRedeliver": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "replicated": {
+                    "type": "boolean"
+                },
+                "subscriptionProperties": {
+                    "additionalProperties": {
+                        "type": "string"
+                    },
+                    "type": "object"
+                },
+                "totalMsgExpired": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "type": {
+                    "type": "string"
+                },
+                "unackedMessages": {
+                    "format": "int64",
+                    "type": "integer"
+                }
+            },
+            "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": {
+            "properties": {
+                "adminRoles": {
+                    "items": {
+                        "type": "string"
+                    },
+                    "type": "array",
+                    "uniqueItems": true
+                },
+                "allowedClusters": {
+                    "items": {
+                        "type": "string"
+                    },
+                    "type": "array",
+                    "uniqueItems": true
+                }
+            },
+            "type": "object"
+        },
+        "ThreadContainerFactory": {
+            "properties": {
+                "pulsarClientMemoryLimit": {
+                    "$ref": "#/definitions/MemoryLimit"
+                },
+                "threadGroupName": {
+                    "type": "string"
+                }
+            },
+            "type": "object"
+        },
+        "TopicStats": {
+            "properties": {
+                "averageMsgSize": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "backlogSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "bytesOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "compaction": {
+                    "$ref": "#/definitions/CompactionStats"
+                },
+                "deduplicationStatus": {
+                    "type": "string"
+                },
+                "delayedMessageIndexSizeInBytes": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "earliestMsgPublishTimeInBacklogs": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgInCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgOutCounter": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "msgRateIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgRateOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputIn": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "msgThroughputOut": {
+                    "format": "double",
+                    "type": "number"
+                },
+                "nonContiguousDeletedMessagesRanges": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "nonContiguousDeletedMessagesRangesSerializedSize": {
+                    "format": "int32",
+                    "type": "integer"
+                },
+                "offloadedStorageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "ownerBroker": {
+                    "type": "string"
+                },
+                "publishers": {
+                    "items": {
+                        "$ref": "#/definitions/PublisherStats"
+                    },
+                    "type": "array"
+                },
+                "replication": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/ReplicatorStats"
+                    },
+                    "type": "object"
+                },
+                "storageSize": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "subscriptions": {
+                    "additionalProperties": {
+                        "$ref": "#/definitions/SubscriptionStats"
+                    },
+                    "type": "object"
+                },
+                "topicEpoch": {
+                    "format": "int64",
+                    "type": "integer"
+                },
+                "waitingPublishers": {
+                    "format": "int32",
+                    "type": "integer"
+                }
+            },
+            "type": "object"
+        },
+        "WorkerConfig": {
+            "properties": {
+                "additionalEnabledConnectorUrlPatterns": {
+                    "items": {
+                        "type": "string"
+                    },
+                    "type": "array"
+                },
+                "additionalEnabledFunctionsUrlPatterns": {
+                    "items": {
+                        "type": "string"
+                    },
+                    "type": "array"
+                },
+                "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"
+                },
+                "enableClassloadingOfBuiltinFiles": {
+                    "type": "boolean"
+                },
+                "enableClassloadingOfExternalFiles": {
+                    "type": "boolean"
+                },
+                "enableReferencingConnectorDirectoryFiles": {
+                    "type": "boolean"
+                },
+                "enableReferencingFunctionsDirectoryFiles": {
+                    "type": "boolean"
+                },
+                "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"
+                },
+                "metadataStoreAllowReadOnlyOperations": {
+                    "type": "boolean"
+                },
+                "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"
+                },
+                "zooKeeperAllowReadOnlyOperations": {
+                    "type": "boolean"
+                },
+                "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": "Bookies_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": "Bookies_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": "Bookies_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": "Bookies_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": "Bookies_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": "BrokerStatsBase_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": "BrokerStatsBase_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": "BrokerStats_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": "BrokerStatsBase_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": "BrokerStatsBase_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": "BrokerStatsBase_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": "BrokerStats_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": "BrokersBase_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 (broker ids) in the local cluster.If authorization is not enabled",
+                "tags": [
+                    "brokers"
+                ]
+            }
+        },
+        "/brokers/backlog-quota-check": {
+            "get": {
+                "description": "",
+                "operationId": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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": "BrokersBase_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}/{brokerId}/ownedNamespaces": {
+            "get": {
+                "description": "",
+                "operationId": "BrokersBase_getOwnedNamespaces",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "clusterName",
+                        "required": true,
+                        "type": "string"
+                    },
+                    {
+                        "in": "path",
+                        "name": "brokerId",
+                        "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 id",
+                "tags": [
+                    "brokers"
+                ]
+            }
+        },
+        "/brokers/{cluster}": {
+            "get": {
+                "description": "",
+                "operationId": "BrokersBase_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 (broker ids) in the cluster.If authorization is not enabled, any cluster name is valid.",
+                "tags": [
+                    "brokers"
+                ]
+            }
+        },
+        "/clusters": {
+            "get": {
+                "description": "",
+                "operationId": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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."
+                    },
+                    "400": {
+                        "description": "Bad request parameter."
+                    },
+                    "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": "ClustersBase_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."
+                    },
+                    "400": {
+                        "description": "Bad request parameter."
+                    },
+                    "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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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}/migrate": {
+            "post": {
+                "description": "This operation requires Pulsar superuser privileges.",
+                "operationId": "ClustersBase_updateClusterMigration",
+                "parameters": [
+                    {
+                        "description": "The cluster name",
+                        "in": "path",
+                        "name": "cluster",
+                        "required": true,
+                        "type": "string"
+                    },
+                    {
+                        "description": "Is cluster migrated",
+                        "in": "query",
+                        "name": "migrated",
+                        "required": true,
+                        "type": "boolean"
+                    },
+                    {
+                        "description": "The cluster url data",
+                        "in": "body",
+                        "name": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/ClusterUrl"
+                        },
+                        "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."
+                    },
+                    "400": {
+                        "description": "Cluster url must not be empty."
+                    },
+                    "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 migration.",
+                "tags": [
+                    "clusters"
+                ]
+            }
+        },
+        "/clusters/{cluster}/namespaceIsolationPolicies": {
+            "get": {
+                "description": "This operation requires Pulsar superuser privileges.",
+                "operationId": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "ClustersBase_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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}/entryFilters": {
+            "delete": {
+                "consumes": [
+                    "application/json"
+                ],
+                "description": "",
+                "operationId": "Namespaces_removeNamespaceEntryFilters",
+                "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 entry filters for namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            },
+            "get": {
+                "consumes": [
+                    "application/json"
+                ],
+                "description": "",
+                "operationId": "Namespaces_getEntryFiltersPerTopic",
+                "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": "Namespaces_setEntryFiltersPerTopic",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "type": "string"
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "type": "string"
+                    },
+                    {
+                        "description": "entry filters",
+                        "in": "body",
+                        "name": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/EntryFilters"
+                        }
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "responses": {
+                    "400": {
+                        "description": "Specified entry filters are not valid"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or cluster or namespace doesn't exist"
+                    }
+                },
+                "summary": "Set entry filters for namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            }
+        },
+        "/namespaces/{tenant}/{namespace}/inactiveTopicPolicies": {
+            "delete": {
+                "consumes": [
+                    "application/json"
+                ],
+                "description": "",
+                "operationId": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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}/offloadThresholdInSeconds": {
+            "get": {
+                "consumes": [
+                    "application/json"
+                ],
+                "description": "A negative value disables automatic offloading",
+                "operationId": "Namespaces_getOffloadThresholdInSeconds",
+                "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": "A negative value disables automatic offloading",
+                "operationId": "Namespaces_setOffloadThresholdInSeconds",
+                "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"
+                    },
+                    "412": {
+                        "description": "offloadThresholdInSeconds value is not valid"
+                    }
+                },
+                "summary": "Set maximum number of seconds 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": "Namespaces_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": "Namespaces_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": "Namespaces_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": "Namespaces_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",
... 70985 lines suppressed ...


(pulsar-site) 02/04: Improve release process instructions

Posted by lh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit 15fe65cc60360d9398c145b1b88e5dfbc35cffaf
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Apr 2 08:08:55 2024 +0300

    Improve release process instructions
---
 contribute/release-process.md | 46 ++++++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 16 deletions(-)

diff --git a/contribute/release-process.md b/contribute/release-process.md
index 0c25d3e12e06..ccf1cda847d9 100644
--- a/contribute/release-process.md
+++ b/contribute/release-process.md
@@ -41,7 +41,7 @@ Before you start the next release steps, make sure you have installed these soft
 Also, you need to **clean up the bookkeeper's local compiled** to make sure the bookkeeper dependency is fetched from the Maven repository, details to see [this mailing list thread](https://lists.apache.org/thread/gsbh95b2d9xtcg5fmtxpm9k9q6w68gd2).
 
 
-## Set environment variables to be used across the commands
+## Set environment variables to be used across the commands {#env-vars}
 
 Set version
 ```shell
@@ -553,16 +553,16 @@ EOF
 
 ## Promote the release
 
-For commands below, you need to set the environment variables VERSION_RC, VERSION_WITHOUT_RC and APACHE_USER.
-Please check the previous step for doing that.
+For commands below, you need to set the environment variables `VERSION_RC`, `VERSION_WITHOUT_RC`, `UPSTREAM_REMOTE` and `APACHE_USER`.
+Please check the [environment variables step](#env-vars) for doing that.
 
 ### Publish the final tag
 
 Create and push the final Git tag:
 
 ```shell
-git tag -u $APACHE_USER@apache.org v$VERSION_WITHOUT_RC -m "Release v$VERSION_WITHOUT_RC"
-git push origin v$VERSION_WITHOUT_RC
+git tag -u $APACHE_USER@apache.org v$VERSION_WITHOUT_RC v$VERSION_RC^{} -m "Release v$VERSION_WITHOUT_RC"
+git push $UPSTREAM_REMOTE v$VERSION_WITHOUT_RC
 ```
 
 ### Create release notes in GitHub
@@ -572,6 +572,9 @@ Then, you can [create a GitHub release](https://docs.github.com/en/repositories/
 ```shell
 # open this URL and create release notes by clicking "Create release from tag"
 echo https://github.com/apache/pulsar/releases/tag/v${VERSION_WITHOUT_RC}
+
+# cherry-picked changes template
+echo "[Cherry-picked changes](https://github.com/apache/pulsar/pulls?q=is%3Apr+is%3Amerged+label%3Arelease%2F${VERSION_WITHOUT_RC}+label%3Acherry-picked%2F${VERSION_BRANCH}+sort%3Acreated-asc)"
 ```
 
 1. Open the above URL in a browser and create release notes by clicking "Create release from tag".
@@ -738,7 +741,16 @@ Now, run the following script from the main branch of apache/pulsar-site repo:
 ```shell
 cd tools/pytools
 poetry install
-poetry run bin/rest-apidoc-generator.py --master-path=/path/to/pulsar-2.X.Y --version=2.X.Y
+poetry run bin/rest-apidoc-generator.py --master-path=$PULSAR_PATH --version=$VERSION_WITHOUT_RC
+```
+
+```shell
+# commit files
+# move to pulsar-site root
+cd ../..
+git add -u
+git add static/swagger/$VERSION_WITHOUT_RC
+git commit -m "update rest-apidoc for $VERSION_WITH_RC"
 ```
 
 Read more on the manual of [pytools](https://github.com/apache/pulsar-site/tree/main/tools/pytools/README.md).
@@ -756,7 +768,7 @@ After publish Java libraries, run the following script from the main branch of a
 ```shell
 cd tools/pytools
 poetry install
-poetry run bin/java-apidoc-generator.py 2.X.0
+poetry run bin/java-apidoc-generator.py $VERSION_WITHOUT_RC
 ```
 
 Once the docs are generated, you can add them and submit them in a PR. The expected doc output is:
@@ -781,7 +793,7 @@ You can generate references of config and command-line tool by running the follo
 # build Pulsar distributions under /path/to/pulsar-2.X.0
 cd tools/pytools
 poetry install
-poetry run bin/reference-doc-generator.py --master-path=/path/to/pulsar-2.X.0 --version=2.X.0
+poetry run bin/reference-doc-generator.py --master-path=$PULSAR_PATH --version=$VERSION_WITHOUT_RC
 ```
 
 Once the docs are generated, you can add them and submit them in a PR. The expected doc output is `static/reference/2.X.x`
@@ -815,11 +827,12 @@ Otherwise, you should update the dropdown version list in this file: <https://gi
 
 Once the release artifacts are available in the Apache Mirrors and the website is updated, you need to announce the release. You should email to dev@pulsar.apache.org, users@pulsar.apache.org, and announce@apache.org. Here is a sample content:
 
-```
+```shell
+tee >(pbcopy) <<EOF
 To: dev@pulsar.apache.org, users@pulsar.apache.org, announce@apache.org
-Subject: [ANNOUNCE] Apache Pulsar 2.X.0 released
+Subject: [ANNOUNCE] Apache Pulsar $VERSION_WITHOUT_RC released
 
-The Apache Pulsar team is proud to announce Apache Pulsar version 2.X.0.
+The Apache Pulsar team is proud to announce Apache Pulsar version $VERSION_WITHOUT_RC.
 
 Pulsar is a highly scalable, low latency messaging platform running on
 commodity hardware. It provides simple pub-sub semantics over topics,
@@ -831,13 +844,14 @@ For Pulsar release details and downloads, visit:
 https://pulsar.apache.org/download
 
 Release Notes are at:
-https://pulsar.apache.org/release-notes
+https://pulsar.apache.org/release-notes/versioned/pulsar-$VERSION_WITHOUT_RC/
 
 We would like to thank the contributors that made the release possible.
 
 Regards,
 
 The Pulsar Team
+EOF
 ```
 
 Send the email in plain text mode since the announce@apache.org mailing list will reject messages with text/html content.
@@ -859,7 +873,7 @@ Remove the old releases (if any). You only need the latest release there, and ol
 svn ls https://dist.apache.org/repos/dist/release/pulsar
 
 # Delete each release (except for the last one)
-svn rm https://dist.apache.org/repos/dist/release/pulsar/pulsar-2.Y.0
+svn rm https://dist.apache.org/repos/dist/release/pulsar/pulsar-3.X.X
 ```
 
 ## Move master branch to next version
@@ -874,8 +888,8 @@ You need to move the master version to the next iteration `Y` (`X + 1`).
 
 ```shell
 git checkout master
-./src/set-project-version.sh 2.Y.0-SNAPSHOT
-git commit -a -s -m "[cleanup][build] Bumped version to 2.Y.0-SNAPSHOT'
+./src/set-project-version.sh 3.Y.0-SNAPSHOT
+git commit -a -s -m "[cleanup][build] Bumped version to 3.Y.0-SNAPSHOT'
 ```
 
-Since this needs to be merged into `master`, you need to follow the regular process and create a Pull Request on GitHub.
+Since this needs to be merged into `master`, you need to follow the regular process and create a Pull Request on GitHub.
\ No newline at end of file