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