From 8ba0ba550e82dbef09ac2b18abaf0987ce5e1cf9 Mon Sep 17 00:00:00 2001 From: xiangying <1984997880@qq.com> Date: Mon, 31 Jul 2023 11:54:02 +0800 Subject: [PATCH 1/3] Release 2.10.5 --- data/release-pulsar.js | 9 ++ release-notes/versioned/client-java-2.10.5.md | 15 +++ release-notes/versioned/pulsar-2.10.5.md | 118 ++++++++++++++++++ static/swagger/restApiVersions.json | 19 +++ 4 files changed, 161 insertions(+) create mode 100644 release-notes/versioned/client-java-2.10.5.md create mode 100644 release-notes/versioned/pulsar-2.10.5.md diff --git a/data/release-pulsar.js b/data/release-pulsar.js index e896e64c0ef4..b70d96af1031 100644 --- a/data/release-pulsar.js +++ b/data/release-pulsar.js @@ -36,6 +36,15 @@ module.exports = [ "doc": "/docs/2.11.x", "version": "v2.11.x" }, + { + "author": "liangyepianzhou", + "tagName": "v2.10.5", + "publishedAt": "2023-07-30T01:53:34Z", + "vtag": "2.10.x", + "releaseNotes": "/release-notes/versioned/pulsar-2.10.5/", + "doc": "/docs/2.10.x", + "version": "v2.10.x" + }, { "author": "liangyepianzhou", "tagName": "v2.10.4", diff --git a/release-notes/versioned/client-java-2.10.5.md b/release-notes/versioned/client-java-2.10.5.md new file mode 100644 index 000000000000..e69442dac9fb --- /dev/null +++ b/release-notes/versioned/client-java-2.10.5.md @@ -0,0 +1,15 @@ +--- +id: client-java-2.10.5 +title: Client Java 2.10.5 +sidebar_label: Client Java 2.10.5 +--- + +* [fix] [client] Messages lost when consumer reconnect (#20695) +* [fix][client] Make the whole grabCnx() progress atomic (#20595) +* [fix][client] Fix race condition that leads to caching failed CompletableFutures in ConnectionPool (#19661) +* [fix][client]Fix deadlock issue of consumer while using multiple IO threads (#20669) +* [fix][client] Cache empty schema version in ProducerImpl schemaCache. (#19929) +* [fix][fn]Reset idle timer correctly (#20450) +* [fix][client] Release the orphan producers after the primary consumer is closed (#19858) +* [fix][client] Fix DeadLetterProducer creation callback blocking client io thread. (#19930) + diff --git a/release-notes/versioned/pulsar-2.10.5.md b/release-notes/versioned/pulsar-2.10.5.md new file mode 100644 index 000000000000..a808b0fdfe7c --- /dev/null +++ b/release-notes/versioned/pulsar-2.10.5.md @@ -0,0 +1,118 @@ +--- +id: pulsar-2.10.5 +title: Apache Pulsar 2.10.5 +sidebar_label: Apache Pulsar 2.10.5 +--- + +#### 2023-7-30 + +### Broker +* [fix][broker] In replication scenario, remote consumer could not be registered if there has no message was sent (#20888) +* [improve] [broker] Print warn log if compaction failure (#19405) +* [branch-2.10][fix][broker] Fix inconsensus namespace policies by getPoliciesIfCached (#20873) +* [branch-2.10][fix][broker] Inconsistent behaviour for topic auto_creation (#20872) +* [fix] [broker] Can not receive any messages after switch to standby cluster (#20767) +* [improve] [broker] Add consumer-id into the log when doing subscribe. (#20568) +* [fix][broker][branch-2.10] Fix NPE when reset Replicator's cursor by position. (#20597) (#20781) +* [fix][broker] Fix namespace deletion if __change_events topic has not been created yet (#18804) +* [fix][schema] Only handle exception when there has (#20730) +* [fix][broker] Topic policy can not be work well if replay policy message has any exception. (#20613) +* [fix][broker] Fix return the earliest position when query position by timestamp. (#20457) +* [fix][broker] Return if AbstractDispatcherSingleActiveConsumer closed (#19934) +* [broker] clean inactive bundle from bundleData in loadData and bundlesCache (#13974) +* [fix][branch-2.10]Fix compilation issue introduced byfix Repeated messages of shared dispatcher (#16812) +* Issue 16802: fix Repeated messages of shared dispatcher (#16812) +* [fix][branch-2.10]Fix compilation issue introduced by Save createIfMissing in TopicLoadingContext (#19993) +* [improve][broker] Save createIfMissing in TopicLoadingContext (#19993) +* [fix][broker] Invalidate metadata children cache after key deleted (#20363) +* [improve] [broker] Avoid PersistentSubscription.expireMessages logic check backlog twice. (#20416) +* [fix][broker]fix the publish latency spike issue with large number of producers (#20607) +* [fix][branch-2.10] Fix duplicated deleting topics (#20685) +* [improve][broker][branch-2.10] Backport Linux metrics changes from master branch (#20659) +* [cleanup][broker] Validate authz earlier in delete subscription logic (#20549) +* [fix][broker] release orphan replicator after topic closed (#20567) +* [fix][broker] REST Client Producer fails with TLS only (#20535) +* [fix][broker] Restore solution for certain topic unloading race conditions (#20527) +* [fix][ml] There are two same-named managed ledgers in the one broker (#18688) +* [fix][broker] Fix skip message API when hole messages exists (#20326) +* [fix][broker] If ledger lost, cursor mark delete position can not forward (#18620) +* [fix][broker] partitioned __change_events topic is policy topic (#20392) +* [fix][ml] Fix ledger left in OPEN state when enable `inactiveLedgerRollOverTimeMs` (#20276) +* [fix][broker] Fix default bundle size used while setting bookie affinity (#20250) +* [fix][broker] Fix the behavior of delayed message in Key_Shared mode (#20233) +* [improve][broker] Get lowest PositionImpl from NavigableSet (#18278) +* [fix] [broker] error TimeUnit to record publish latency (#20074) +* [fix] [broker] In Key_Shared mode: remove unnecessary mechanisms of message skip to avoid unnecessary consumption stuck (#20335) +* [fix][broker]Fix deadlock of metadata store (#20189) +* [fix] [broker] [branch-2.10] Upgrade rocksDB version to 6.16.4 to keep sync with BookKeeper 4.14.7 (#20312) +* [improve] [broker] Skip split boundle if only one broker (#20190) +* [fix][monitor] topic with double quote breaks the prometheus format (#20230) +* [fix][broker] Fix RoaringBitmap.contains can't check value 65535 (#20176) +* [fix][broker] Fix the reason label of authentication metrics (#20030) +* [fix] [broker] Fix infinite ack of Replicator after topic is closed (#20232) +* [fix] [broker] Producer created by replicator is not displayed in topic stats (#20229) +* [fix] [broker] delete topic failed if disabled system topic (#19735) +* [fix] [ml] make the result of delete cursor is success if cursor is deleted (#19825) +* [fix] [broker] Fast fix infinite HTTP call getSubscriptions caused by wrong topicName (#20131) +* [fix][broker] Fix issue where msgRateExpired may not refresh forever (#19759) +* [fix][broker] Fix can't send ErrorCommand when message is null value (#19899) +* [fix][broker] Fix Return value of getPartitionedStats doesn't contain subscription type (#20210) +* [branch-2.10][fix][build] Upgrade swagger version to fix CVE-2022-1471 (#20172) +* [fix][broker] Fix getPartitionedStats miss subscription's messageAckRate (#19870) +* [fix] Use scheduled executor in BinaryProtoLookupService (#20043) +* [improve] [broker] Fix broker restart logic (#20113) + +### Transaction +* [fix] [txn] fix consumer can receive aborted txn message when readType is replay (#19815) + +### Pulsar IO and Pulsar Functions +* [fix][io][branch-2.10] Not restart instance when kafka source poll exception. (#20816) +* [fix][offload] Filesystem offloader class not found hadoop-hdfs-client (#20365) +* [fix][fn] Make KubernetesRuntime translate characters in function tenant, namespace, and name during function removal to avoid label errors (#19584) +* [fix][fn] Fix JavaInstanceStarter inferring type class name error (#19896) +* [fix][io] Close the kafka source connector got stuck (#20698) +* [fix][fn] Exit JVM when main thread throws exception (#20689) +* Optimize conusmer pause (#14566) +* [fix][broker] Fix the publish latency spike from the contention of MessageDeduplication (#20647) +* [fix][fn] Configure pulsar admin for TLS (#20533) +* [fix][fn] Go functions must retrieve consumers by non-particioned topic ID (#20413) +* [fix][io] Close the kafka source connector if there is uncaught exception (#20479) +* [fix][fn] Go functions need to use static grpcPort in k8s runtime (#20404) +* [fix][fn] Make pulsar-admin support update py/go with package url (#19897) +* [fix][txn] Fix transaction is not aborted when send or ACK failed (#20240) + +### CLI +* [fix] [cli] the variable producerName of BatchMsgContainer is null (#20819) +* [fix][ci] Update nar maven plugin version to fix excessive downloads (#20410) + +### Admin +* [improve][admin] Return BAD_REQUEST on cluster data is null for createCluster (#20346) +### Security +* [fix][sec] Upgrade snappy-java to address multiple CVEs (#20604) +* [fix][sec] Upgrade Guava to 32.0.0 to address CVE-2023-2976 (#20459) +* [improve][misc] Upgrade Netty to 4.1.93.Final (#20423) +* [improve][misc] Upgrade Netty to 4.1.89.Final (#19649) +* [fix][sec] Upgrade sqlite-jdbc to resolve CVE-2023-32697 (#20411) +### CI & Test +* [fix][test] Replace test call to Auth0 with call to WireMock (#20465) +* [fix][test] Fix flaky testCreateTopicWithZombieReplicatorCursor (#20037) +*[fix][flaky-test]NamespaceServiceTest.flaky/testModularLoadManagerRemoveBundleAndLoad (#17487) +* [improve][test][branch-2.10] Backport disabling disk usage threshold for Elastic Testcontainers (#20676) + +### Others +* [fix][build]Fix compatibility issue cause by #20819 (#20834) +* [fix][build] Mongo is fixed for 2.10.5 (#20810) +* [fix][meta] Bookie Info lost by notification race condition. (#20642) +* [fix] [meta]Switch to the metadata store thread after zk operation (#20303) +* [fix][ws] Remove unnecessary ping/pong implementation (#20733) +* fix: bundle-data metadata leak because of bundlestats was not clean (#17095) +* [fix] [Perf] PerformanceProducer do not produce expected number of messages. (#19775) +* [fix][meta] Adding the missed bookie id in the registration manager. (#20641) +* [fix][build] Don't publish docker image with "latest" tag to docker repository +* [fix][build][branch-2.10] Fix ci-license check (#20505) +* [improve][monitor] Add JVM start time metric (#20381) +* [fix][build] update the zookeeper version to 3.6.4 (#20333) +* [fix][monitor] Fix the partitioned publisher topic stat aggregation bug (#18807) +* [fix][meta] deadlock of zkSessionWatcher when zkConnection loss (#20122) +* [improve][build] Upgrade dependencies to reduce CVE. (#20162) +* [branch-2.10][improve][build] Upgrade snakeyaml version to 2.0 (#20118) diff --git a/static/swagger/restApiVersions.json b/static/swagger/restApiVersions.json index e44a96d7bab6..6a5fd46c7405 100644 --- a/static/swagger/restApiVersions.json +++ b/static/swagger/restApiVersions.json @@ -84,6 +84,25 @@ "version": "v3" } ], + "2.10.5": [ + { + "fileName": [ + "swagger", + "swaggerlookup" + ], + "version": "v2" + }, + { + "fileName": [ + "swaggerfunctions", + "swaggerpackages", + "swaggersink", + "swaggersource", + "swaggertransactions" + ], + "version": "v3" + } + ], "2.11.0": [ { "fileName": [ From 197909fb72fd1a40f0a9f36f454a3653df43d4f2 Mon Sep 17 00:00:00 2001 From: xiangying <1984997880@qq.com> Date: Tue, 1 Aug 2023 16:05:19 +0800 Subject: [PATCH 2/3] Release 2.10.5 --- release-notes/versioned/client-java-2.10.5.md | 4 ++-- release-notes/versioned/pulsar-2.10.5.md | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/release-notes/versioned/client-java-2.10.5.md b/release-notes/versioned/client-java-2.10.5.md index e69442dac9fb..419f60bc840d 100644 --- a/release-notes/versioned/client-java-2.10.5.md +++ b/release-notes/versioned/client-java-2.10.5.md @@ -7,9 +7,9 @@ sidebar_label: Client Java 2.10.5 * [fix] [client] Messages lost when consumer reconnect (#20695) * [fix][client] Make the whole grabCnx() progress atomic (#20595) * [fix][client] Fix race condition that leads to caching failed CompletableFutures in ConnectionPool (#19661) -* [fix][client]Fix deadlock issue of consumer while using multiple IO threads (#20669) +* [fix][client] Fix deadlock issue of consumer while using multiple IO threads (#20669) * [fix][client] Cache empty schema version in ProducerImpl schemaCache. (#19929) -* [fix][fn]Reset idle timer correctly (#20450) +* [fix][fn] Reset idle timer correctly (#20450) * [fix][client] Release the orphan producers after the primary consumer is closed (#19858) * [fix][client] Fix DeadLetterProducer creation callback blocking client io thread. (#19930) diff --git a/release-notes/versioned/pulsar-2.10.5.md b/release-notes/versioned/pulsar-2.10.5.md index a808b0fdfe7c..fd8903bd95ab 100644 --- a/release-notes/versioned/pulsar-2.10.5.md +++ b/release-notes/versioned/pulsar-2.10.5.md @@ -11,16 +11,16 @@ sidebar_label: Apache Pulsar 2.10.5 * [improve] [broker] Print warn log if compaction failure (#19405) * [branch-2.10][fix][broker] Fix inconsensus namespace policies by getPoliciesIfCached (#20873) * [branch-2.10][fix][broker] Inconsistent behaviour for topic auto_creation (#20872) -* [fix] [broker] Can not receive any messages after switch to standby cluster (#20767) +* [fix] [broker] Can not receive any messages after switching to standby cluster (#20767) * [improve] [broker] Add consumer-id into the log when doing subscribe. (#20568) -* [fix][broker][branch-2.10] Fix NPE when reset Replicator's cursor by position. (#20597) (#20781) +* [fix][broker][branch-2.10] Fix NPE when resetting Replicator's cursor by position. (#20597) (#20781) * [fix][broker] Fix namespace deletion if __change_events topic has not been created yet (#18804) * [fix][schema] Only handle exception when there has (#20730) -* [fix][broker] Topic policy can not be work well if replay policy message has any exception. (#20613) +* [fix][broker] Topic policy can not work well if replay policy message has any exception. (#20613) * [fix][broker] Fix return the earliest position when query position by timestamp. (#20457) * [fix][broker] Return if AbstractDispatcherSingleActiveConsumer closed (#19934) * [broker] clean inactive bundle from bundleData in loadData and bundlesCache (#13974) -* [fix][branch-2.10]Fix compilation issue introduced byfix Repeated messages of shared dispatcher (#16812) +* [fix][branch-2.10] Fix compilation issue introduced by fixing Repeated messages of shared dispatcher (#16812) * Issue 16802: fix Repeated messages of shared dispatcher (#16812) * [fix][branch-2.10]Fix compilation issue introduced by Save createIfMissing in TopicLoadingContext (#19993) * [improve][broker] Save createIfMissing in TopicLoadingContext (#19993) @@ -37,7 +37,7 @@ sidebar_label: Apache Pulsar 2.10.5 * [fix][broker] Fix skip message API when hole messages exists (#20326) * [fix][broker] If ledger lost, cursor mark delete position can not forward (#18620) * [fix][broker] partitioned __change_events topic is policy topic (#20392) -* [fix][ml] Fix ledger left in OPEN state when enable `inactiveLedgerRollOverTimeMs` (#20276) +* [fix][ml] Fix ledger left in OPEN state when enabling `inactiveLedgerRollOverTimeMs` (#20276) * [fix][broker] Fix default bundle size used while setting bookie affinity (#20250) * [fix][broker] Fix the behavior of delayed message in Key_Shared mode (#20233) * [improve][broker] Get lowest PositionImpl from NavigableSet (#18278) @@ -45,7 +45,7 @@ sidebar_label: Apache Pulsar 2.10.5 * [fix] [broker] In Key_Shared mode: remove unnecessary mechanisms of message skip to avoid unnecessary consumption stuck (#20335) * [fix][broker]Fix deadlock of metadata store (#20189) * [fix] [broker] [branch-2.10] Upgrade rocksDB version to 6.16.4 to keep sync with BookKeeper 4.14.7 (#20312) -* [improve] [broker] Skip split boundle if only one broker (#20190) +* [improve] [broker] Skip split bundle if only one broker (#20190) * [fix][monitor] topic with double quote breaks the prometheus format (#20230) * [fix][broker] Fix RoaringBitmap.contains can't check value 65535 (#20176) * [fix][broker] Fix the reason label of authentication metrics (#20030) @@ -100,7 +100,7 @@ sidebar_label: Apache Pulsar 2.10.5 * [improve][test][branch-2.10] Backport disabling disk usage threshold for Elastic Testcontainers (#20676) ### Others -* [fix][build]Fix compatibility issue cause by #20819 (#20834) +* [fix][build]Fix compatibility issue caused by #20819 (#20834) * [fix][build] Mongo is fixed for 2.10.5 (#20810) * [fix][meta] Bookie Info lost by notification race condition. (#20642) * [fix] [meta]Switch to the metadata store thread after zk operation (#20303) From 53f4d83a1f14b3ff79773c2dea49ca7ce9add96a Mon Sep 17 00:00:00 2001 From: xiangying <1984997880@qq.com> Date: Tue, 1 Aug 2023 18:48:19 +0800 Subject: [PATCH 3/3] Add swagger json --- static/swagger/2.10.5/swagger.json | 30666 ++++++++++++++++ static/swagger/2.10.5/swaggerfunctions.json | 3469 ++ static/swagger/2.10.5/swaggerlookup.json | 319 + static/swagger/2.10.5/swaggerpackages.json | 1970 + static/swagger/2.10.5/swaggersink.json | 2761 ++ static/swagger/2.10.5/swaggersource.json | 2712 ++ .../swagger/2.10.5/swaggertransactions.json | 975 + static/swagger/2.10.5/v2/swagger.json | 30666 ++++++++++++++++ static/swagger/2.10.5/v2/swaggerlookup.json | 319 + .../swagger/2.10.5/v3/swaggerfunctions.json | 3469 ++ static/swagger/2.10.5/v3/swaggerpackages.json | 1970 + static/swagger/2.10.5/v3/swaggersink.json | 2761 ++ static/swagger/2.10.5/v3/swaggersource.json | 2712 ++ .../2.10.5/v3/swaggertransactions.json | 975 + 14 files changed, 85744 insertions(+) create mode 100644 static/swagger/2.10.5/swagger.json create mode 100644 static/swagger/2.10.5/swaggerfunctions.json create mode 100644 static/swagger/2.10.5/swaggerlookup.json create mode 100644 static/swagger/2.10.5/swaggerpackages.json create mode 100644 static/swagger/2.10.5/swaggersink.json create mode 100644 static/swagger/2.10.5/swaggersource.json create mode 100644 static/swagger/2.10.5/swaggertransactions.json create mode 100644 static/swagger/2.10.5/v2/swagger.json create mode 100644 static/swagger/2.10.5/v2/swaggerlookup.json create mode 100644 static/swagger/2.10.5/v3/swaggerfunctions.json create mode 100644 static/swagger/2.10.5/v3/swaggerpackages.json create mode 100644 static/swagger/2.10.5/v3/swaggersink.json create mode 100644 static/swagger/2.10.5/v3/swaggersource.json create mode 100644 static/swagger/2.10.5/v3/swaggertransactions.json diff --git a/static/swagger/2.10.5/swagger.json b/static/swagger/2.10.5/swagger.json new file mode 100644 index 000000000000..754d854cd211 --- /dev/null +++ b/static/swagger/2.10.5/swagger.json @@ -0,0 +1,30666 @@ +{ + "basePath": "/admin/v2", + "definitions": { + "AllocatorStats": { + "properties": { + "directArenas": { + "items": { + "$ref": "#/definitions/PoolArenaStats" + }, + "type": "array" + }, + "heapArenas": { + "items": { + "$ref": "#/definitions/PoolArenaStats" + }, + "type": "array" + }, + "normalCacheSize": { + "format": "int32", + "type": "integer" + }, + "numDirectArenas": { + "format": "int32", + "type": "integer" + }, + "numHeapArenas": { + "format": "int32", + "type": "integer" + }, + "numThreadLocalCaches": { + "format": "int32", + "type": "integer" + }, + "smallCacheSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthPolicies": { + "properties": { + "namespaceAuthentication": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "subscriptionAuthentication": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "topicAuthentication": { + "additionalProperties": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthenticationDataSource": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/Certificate" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthenticationParameters": { + "properties": { + "clientAuthenticationDataSource": { + "$ref": "#/definitions/AuthenticationDataSource" + }, + "clientRole": { + "type": "string" + }, + "originalPrincipal": { + "type": "string" + } + }, + "type": "object" + }, + "AutoFailoverPolicyData": { + "properties": { + "parameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "policyType": { + "enum": [ + "min_available" + ], + "type": "string" + } + }, + "type": "object" + }, + "AutoSubscriptionCreationOverride": { + "properties": { + "allowAutoSubscriptionCreation": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoTopicCreationOverride": { + "properties": { + "allowAutoTopicCreation": { + "type": "boolean" + }, + "defaultNumPartitions": { + "format": "int32", + "type": "integer" + }, + "topicType": { + "type": "string" + } + }, + "type": "object" + }, + "BacklogQuota": { + "properties": { + "limit": { + "format": "int64", + "type": "integer" + }, + "limitSize": { + "format": "int64", + "type": "integer" + }, + "limitTime": { + "format": "int32", + "type": "integer" + }, + "policy": { + "enum": [ + "producer_request_hold", + "producer_exception", + "consumer_backlog_eviction" + ], + "type": "string" + } + }, + "type": "object" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BookieAffinityGroupData": { + "properties": { + "bookkeeperAffinityGroupPrimary": { + "type": "string" + }, + "bookkeeperAffinityGroupSecondary": { + "type": "string" + } + }, + "type": "object" + }, + "BookieInfo": { + "properties": { + "hostname": { + "type": "string" + }, + "rack": { + "type": "string" + } + }, + "type": "object" + }, + "BookiesClusterInfo": { + "properties": { + "bookies": { + "items": { + "$ref": "#/definitions/RawBookieInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "BrokerInfo": { + "properties": { + "serviceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "BrokerNamespaceIsolationData": { + "description": "The namespace isolation data for a given broker", + "properties": { + "brokerName": { + "description": "The broker name", + "example": "broker1:8080", + "type": "string" + }, + "namespaceRegex": { + "description": "The namespace-isolation policies attached to this broker", + "items": { + "type": "string" + }, + "type": "array" + }, + "policyName": { + "description": "Policy name", + "example": "my-policy", + "type": "string" + }, + "primary": { + "type": "boolean" + } + }, + "type": "object" + }, + "BundlesData": { + "properties": { + "boundaries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "numBundles": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "ClusterData": { + "description": "The configuration data for a cluster", + "properties": { + "authenticationParameters": { + "description": "Authentication parameters when client would like to connect to cluster.", + "type": "string" + }, + "authenticationPlugin": { + "description": "Authentication plugin when client would like to connect to cluster.", + "example": "org.apache.pulsar.client.impl.auth.AuthenticationToken", + "type": "string" + }, + "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" + }, + "brokerClientTlsTrustStore": { + "description": "TLS TrustStore path for internal client used by the internal client to authenticate with Pulsar brokers", + "type": "string" + }, + "brokerClientTlsTrustStorePassword": { + "description": "TLS TrustStore password for internal client used by the internal client to authenticate with Pulsar brokers", + "type": "string" + }, + "brokerClientTlsTrustStoreType": { + "description": "TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers", + "example": "JKS", + "type": "string" + }, + "brokerClientTrustCertsFilePath": { + "description": "Path for the trusted TLS certificate file for outgoing connection to a server (broker)", + "type": "string" + }, + "brokerServiceUrl": { + "description": "The broker service url (for produce and consume operations)", + "example": "pulsar://pulsar.example.com:6650", + "type": "string" + }, + "brokerServiceUrlTls": { + "description": "The secured broker service url (for produce and consume operations)", + "example": "pulsar+ssl://pulsar.example.com:6651", + "type": "string" + }, + "listenerName": { + "description": "listenerName when client would like to connect to cluster", + "type": "string" + }, + "peerClusterNames": { + "description": "A set of peer cluster names", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "proxyProtocol": { + "description": "protocol to decide type of proxy routing eg: SNI-routing", + "enum": [ + "SNI" + ], + "example": "SNI", + "type": "string" + }, + "proxyServiceUrl": { + "description": "Proxy-service url when client would like to connect to broker via proxy.", + "example": "pulsar+ssl://ats-proxy.example.com:4443 or pulsar://ats-proxy.example.com:4080", + "type": "string" + }, + "serviceUrl": { + "description": "The HTTP rest service URL (for admin operations)", + "example": "http://pulsar.example.com:8080", + "type": "string" + }, + "serviceUrlTls": { + "description": "The HTTPS rest service URL (for admin operations)", + "example": "https://pulsar.example.com:8443", + "type": "string" + }, + "tlsAllowInsecureConnection": { + "description": "Allow TLS connections to servers whose certificate cannot be be verified to have been signed by a trusted certificate authority.", + "type": "boolean" + } + }, + "type": "object" + }, + "CompactionStats": { + "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" + }, + "CompletableFuturePartitionedTopicMetadata": { + "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" + }, + "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" + }, + "ContextAttributes": { + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "CursorDetails": { + "properties": { + "cursorBacklog": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerId": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CursorStats": { + "properties": { + "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" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DelayedDeliveryPolicies": { + "properties": { + "active": { + "type": "boolean" + }, + "tickTime": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeleteSchemaResponse": { + "properties": { + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "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" + }, + "DoubleBuilder": { + "type": "object" + }, + "FailureDomain": { + "description": "The data of a failure domain configuration in a cluster", + "properties": { + "brokers": { + "description": "The collection of brokers in the same failure domain", + "example": "[ 'broker-1', 'broker-2' ]", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionInstanceStatsData": { + "properties": { + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "oneMin": { + "$ref": "#/definitions/FunctionInstanceStatsDataBase" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userMetrics": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "type": "object" + } + }, + "type": "object" + }, + "FunctionInstanceStatsDataBase": { + "properties": { + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Functions": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsV2": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsV2WorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetAllVersionsSchemaResponse": { + "properties": { + "getSchemaResponses": { + "items": { + "$ref": "#/definitions/GetSchemaResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetSchemaResponse": { + "properties": { + "data": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "timestamp": { + "format": "int64", + "type": "integer" + }, + "type": { + "enum": [ + "NONE", + "STRING", + "JSON", + "PROTOBUF", + "AVRO", + "BOOLEAN", + "INT8", + "INT16", + "INT32", + "INT64", + "FLOAT", + "DOUBLE", + "DATE", + "TIME", + "TIMESTAMP", + "KEY_VALUE", + "INSTANT", + "LOCAL_DATE", + "LOCAL_TIME", + "LOCAL_DATE_TIME", + "PROTOBUF_NATIVE", + "BYTES", + "AUTO", + "AUTO_CONSUME", + "AUTO_PUBLISH" + ], + "type": "string" + }, + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InactiveTopicPolicies": { + "properties": { + "deleteWhileInactive": { + "type": "boolean" + }, + "inactiveTopicDeleteMode": { + "enum": [ + "delete_when_no_subscriptions", + "delete_when_subscriptions_caught_up" + ], + "type": "string" + }, + "maxInactiveDurationSeconds": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "InternalConfigurationData": { + "properties": { + "bookkeeperMetadataServiceUri": { + "type": "string" + }, + "configurationMetadataStoreUrl": { + "type": "string" + }, + "configurationStoreServers": { + "type": "string" + }, + "ledgersRootPath": { + "type": "string" + }, + "metadataStoreUrl": { + "type": "string" + }, + "stateStorageServiceUrl": { + "type": "string" + }, + "zookeeperServers": { + "type": "string" + } + }, + "type": "object" + }, + "IsCompatibilityResponse": { + "properties": { + "compatibility": { + "type": "boolean" + }, + "schemaCompatibilityStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "KubernetesContainerFactory": { + "properties": { + "changeConfigMap": { + "type": "string" + }, + "changeConfigMapNamespace": { + "type": "string" + }, + "configAdminCLI": { + "type": "string" + }, + "cpuOverCommitRatio": { + "format": "double", + "type": "number" + }, + "customLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expectedMetricsCollectionInterval": { + "format": "int32", + "type": "integer" + }, + "extraFunctionDependenciesDir": { + "type": "string" + }, + "functionDockerImages": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "functionInstanceClassPath": { + "type": "string" + }, + "gracePeriodSeconds": { + "format": "int32", + "type": "integer" + }, + "grpcPort": { + "format": "int32", + "type": "integer" + }, + "imagePullPolicy": { + "type": "string" + }, + "installUserCodeDependencies": { + "type": "boolean" + }, + "jobName": { + "type": "string" + }, + "jobNamespace": { + "type": "string" + }, + "k8Uri": { + "type": "string" + }, + "memoryOverCommitRatio": { + "format": "double", + "type": "number" + }, + "metricsPort": { + "format": "int32", + "type": "integer" + }, + "narExtractionDirectory": { + "type": "string" + }, + "percentMemoryPadding": { + "format": "int32", + "type": "integer" + }, + "pulsarAdminUrl": { + "type": "string" + }, + "pulsarDockerImageName": { + "type": "string" + }, + "pulsarRootDir": { + "type": "string" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pythonDependencyRepository": { + "type": "string" + }, + "pythonExtraDependencyRepository": { + "type": "string" + }, + "submittingInsidePod": { + "type": "boolean" + } + }, + "type": "object" + }, + "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" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "LoadReport": { + "properties": { + "allocatedBandwidthIn": { + "format": "double", + "type": "number" + }, + "allocatedBandwidthOut": { + "format": "double", + "type": "number" + }, + "allocatedCPU": { + "format": "double", + "type": "number" + }, + "allocatedMemory": { + "format": "double", + "type": "number" + }, + "allocatedMsgRateIn": { + "format": "double", + "type": "number" + }, + "allocatedMsgRateOut": { + "format": "double", + "type": "number" + }, + "bandwidthIn": { + "$ref": "#/definitions/ResourceUsage" + }, + "bandwidthOut": { + "$ref": "#/definitions/ResourceUsage" + }, + "brokerVersionString": { + "type": "string" + }, + "bundleGains": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "bundleLosses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "bundleStats": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceBundleStats" + }, + "type": "object" + }, + "cpu": { + "$ref": "#/definitions/ResourceUsage" + }, + "directMemory": { + "$ref": "#/definitions/ResourceUsage" + }, + "lastUpdate": { + "format": "int64", + "type": "integer" + }, + "loadReportType": { + "type": "string" + }, + "memory": { + "$ref": "#/definitions/ResourceUsage" + }, + "msgRateIn": { + "format": "double", + "type": "number" + }, + "msgRateOut": { + "format": "double", + "type": "number" + }, + "msgThroughputIn": { + "format": "double", + "type": "number" + }, + "msgThroughputOut": { + "format": "double", + "type": "number" + }, + "name": { + "type": "string" + }, + "nonPersistentTopicsEnabled": { + "type": "boolean" + }, + "numBundles": { + "format": "int32", + "type": "integer" + }, + "numConsumers": { + "format": "int32", + "type": "integer" + }, + "numProducers": { + "format": "int32", + "type": "integer" + }, + "numTopics": { + "format": "int32", + "type": "integer" + }, + "overLoaded": { + "type": "boolean" + }, + "persistentTopicsEnabled": { + "type": "boolean" + }, + "preAllocatedBandwidthIn": { + "format": "double", + "type": "number" + }, + "preAllocatedBandwidthOut": { + "format": "double", + "type": "number" + }, + "preAllocatedCPU": { + "format": "double", + "type": "number" + }, + "preAllocatedMemory": { + "format": "double", + "type": "number" + }, + "preAllocatedMsgRateIn": { + "format": "double", + "type": "number" + }, + "preAllocatedMsgRateOut": { + "format": "double", + "type": "number" + }, + "protocols": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pulsarServiceUrlTls": { + "type": "string" + }, + "systemResourceUsage": { + "$ref": "#/definitions/SystemResourceUsage" + }, + "timestamp": { + "format": "int64", + "type": "integer" + }, + "underLoaded": { + "type": "boolean" + }, + "webServiceUrl": { + "type": "string" + }, + "webServiceUrlTls": { + "type": "string" + } + }, + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "LongRunningProcessStatus": { + "properties": { + "lastError": { + "type": "string" + }, + "status": { + "enum": [ + "NOT_RUN", + "RUNNING", + "SUCCESS", + "ERROR" + ], + "type": "string" + } + }, + "type": "object" + }, + "LongSchemaVersion": { + "properties": { + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MemoryLimit": { + "properties": { + "absoluteValue": { + "format": "int64", + "type": "integer" + }, + "percentOfMaxDirectMemory": { + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "MessageId": { + "type": "object" + }, + "Metrics": { + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "NamespaceBundleStats": { + "properties": { + "cacheSize": { + "format": "int64", + "type": "integer" + }, + "consumerCount": { + "format": "int32", + "type": "integer" + }, + "msgRateIn": { + "format": "double", + "type": "number" + }, + "msgRateOut": { + "format": "double", + "type": "number" + }, + "msgThroughputIn": { + "format": "double", + "type": "number" + }, + "msgThroughputOut": { + "format": "double", + "type": "number" + }, + "producerCount": { + "format": "int32", + "type": "integer" + }, + "topics": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "NamespaceIsolationData": { + "description": "The data of namespace isolation configuration", + "properties": { + "auto_failover_policy": { + "$ref": "#/definitions/AutoFailoverPolicyData", + "description": "The data of auto-failover policy configuration", + "example": "{ \"policy_type\": \"min_available\" \"parameters\": { \"\": \"\" }}" + }, + "namespaces": { + "description": "The list of namespaces to apply this namespace isolation data", + "items": { + "type": "string" + }, + "type": "array" + }, + "primary": { + "description": "The list of primary brokers for serving the list of namespaces in this isolation policy", + "items": { + "type": "string" + }, + "type": "array" + }, + "secondary": { + "description": "The list of secondary brokers for serving the list of namespaces in this isolation policy", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NamespaceOwnershipStatus": { + "properties": { + "broker_assignment": { + "enum": [ + "primary", + "secondary", + "shared" + ], + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "is_controlled": { + "type": "boolean" + } + }, + "type": "object" + }, + "NonPersistentPublisherStats": { + "properties": { + "accessMode": { + "enum": [ + "Shared", + "Exclusive", + "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" + }, + "durable": { + "type": "boolean" + }, + "earliestMsgPublishTimeInBacklog": { + "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" + }, + "NonPersistentTopicStats": { + "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" + }, + "earliestMsgPublishTimeInBacklogs": { + "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" + }, + "publishers": { + "items": { + "$ref": "#/definitions/NonPersistentPublisherStats" + }, + "type": "array" + }, + "replication": { + "additionalProperties": { + "$ref": "#/definitions/NonPersistentReplicatorStats" + }, + "type": "object" + }, + "storageSize": { + "format": "int64", + "type": "integer" + }, + "subscriptions": { + "additionalProperties": { + "$ref": "#/definitions/NonPersistentSubscriptionStats" + }, + "type": "object" + }, + "topicEpoch": { + "format": "int64", + "type": "integer" + }, + "waitingPublishers": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OffloadPolicies": { + "properties": { + "fileSystemProfilePath": { + "type": "string" + }, + "fileSystemURI": { + "type": "string" + }, + "gcsManagedLedgerOffloadBucket": { + "type": "string" + }, + "gcsManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadRegion": { + "type": "string" + }, + "gcsManagedLedgerOffloadServiceAccountKeyFile": { + "type": "string" + }, + "managedLedgerOffloadBucket": { + "type": "string" + }, + "managedLedgerOffloadDeletionLagInMillis": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadDriver": { + "type": "string" + }, + "managedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadMaxThreads": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadPrefetchRounds": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadRegion": { + "type": "string" + }, + "managedLedgerOffloadServiceEndpoint": { + "type": "string" + }, + "managedLedgerOffloadThresholdInBytes": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadedReadPriority": { + "enum": [ + "BOOKKEEPER_FIRST", + "TIERED_STORAGE_FIRST" + ], + "type": "string" + }, + "offloadersDirectory": { + "type": "string" + }, + "s3ManagedLedgerOffloadBucket": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialId": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialSecret": { + "type": "string" + }, + "s3ManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadRegion": { + "type": "string" + }, + "s3ManagedLedgerOffloadRole": { + "type": "string" + }, + "s3ManagedLedgerOffloadRoleSessionName": { + "type": "string" + }, + "s3ManagedLedgerOffloadServiceEndpoint": { + "type": "string" + } + }, + "type": "object" + }, + "OffloadPoliciesImpl": { + "properties": { + "fileSystemDriver": { + "type": "boolean" + }, + "fileSystemProfilePath": { + "type": "string" + }, + "fileSystemURI": { + "type": "string" + }, + "gcsDriver": { + "type": "boolean" + }, + "gcsManagedLedgerOffloadBucket": { + "type": "string" + }, + "gcsManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadRegion": { + "type": "string" + }, + "gcsManagedLedgerOffloadServiceAccountKeyFile": { + "type": "string" + }, + "managedLedgerOffloadBucket": { + "type": "string" + }, + "managedLedgerOffloadDeletionLagInMillis": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadDriver": { + "type": "string" + }, + "managedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadMaxThreads": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadPrefetchRounds": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadRegion": { + "type": "string" + }, + "managedLedgerOffloadServiceEndpoint": { + "type": "string" + }, + "managedLedgerOffloadThresholdInBytes": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadedReadPriority": { + "enum": [ + "BOOKKEEPER_FIRST", + "TIERED_STORAGE_FIRST" + ], + "type": "string" + }, + "offloadersDirectory": { + "type": "string" + }, + "s3Driver": { + "type": "boolean" + }, + "s3ManagedLedgerOffloadBucket": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialId": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialSecret": { + "type": "string" + }, + "s3ManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadRegion": { + "type": "string" + }, + "s3ManagedLedgerOffloadRole": { + "type": "string" + }, + "s3ManagedLedgerOffloadRoleSessionName": { + "type": "string" + }, + "s3ManagedLedgerOffloadServiceEndpoint": { + "type": "string" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "OutputStream": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PartitionedTopicMetadata": { + "properties": { + "partitions": { + "format": "int32", + "type": "integer" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "PendingBookieOpsStats": { + "properties": { + "cursorLedgerCloseOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerCreateOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerDeleteOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerOpenOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerCloseOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerCreateOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerDeleteOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerOpenOp": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "PersistencePolicies": { + "properties": { + "bookkeeperAckQuorum": { + "format": "int32", + "type": "integer" + }, + "bookkeeperEnsemble": { + "format": "int32", + "type": "integer" + }, + "bookkeeperWriteQuorum": { + "format": "int32", + "type": "integer" + }, + "managedLedgerMaxMarkDeleteRate": { + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "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" + }, + "Policies": { + "properties": { + "auth_policies": { + "$ref": "#/definitions/AuthPolicies" + }, + "autoSubscriptionCreationOverride": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + }, + "autoTopicCreationOverride": { + "$ref": "#/definitions/AutoTopicCreationOverride" + }, + "backlog_quota_map": { + "additionalProperties": { + "$ref": "#/definitions/BacklogQuota" + }, + "type": "object" + }, + "bundles": { + "$ref": "#/definitions/BundlesData" + }, + "clusterDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "clusterSubscribeRate": { + "additionalProperties": { + "$ref": "#/definitions/SubscribeRate" + }, + "type": "object" + }, + "compaction_threshold": { + "format": "int64", + "type": "integer" + }, + "deduplicationEnabled": { + "type": "boolean" + }, + "deduplicationSnapshotIntervalSeconds": { + "format": "int32", + "type": "integer" + }, + "delayed_delivery_policies": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + }, + "deleted": { + "type": "boolean" + }, + "encryption_required": { + "type": "boolean" + }, + "inactive_topic_policies": { + "$ref": "#/definitions/InactiveTopicPolicies" + }, + "is_allow_auto_update_schema": { + "type": "boolean" + }, + "latency_stats_sample_rate": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "type": "object" + }, + "max_consumers_per_subscription": { + "format": "int32", + "type": "integer" + }, + "max_consumers_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_producers_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_subscriptions_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_topics_per_namespace": { + "format": "int32", + "type": "integer" + }, + "max_unacked_messages_per_consumer": { + "format": "int32", + "type": "integer" + }, + "max_unacked_messages_per_subscription": { + "format": "int32", + "type": "integer" + }, + "message_ttl_in_seconds": { + "format": "int32", + "type": "integer" + }, + "offload_deletion_lag_ms": { + "format": "int64", + "type": "integer" + }, + "offload_policies": { + "$ref": "#/definitions/OffloadPolicies" + }, + "offload_threshold": { + "format": "int64", + "type": "integer" + }, + "persistence": { + "$ref": "#/definitions/PersistencePolicies" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "publishMaxMessageRate": { + "additionalProperties": { + "$ref": "#/definitions/PublishRate" + }, + "type": "object" + }, + "replication_clusters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "replicatorDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "resource_group_name": { + "type": "string" + }, + "retention_policies": { + "$ref": "#/definitions/RetentionPolicies" + }, + "schema_auto_update_compatibility_strategy": { + "enum": [ + "AutoUpdateDisabled", + "Backward", + "Forward", + "Full", + "AlwaysCompatible", + "BackwardTransitive", + "ForwardTransitive", + "FullTransitive" + ], + "type": "string" + }, + "schema_compatibility_strategy": { + "enum": [ + "UNDEFINED", + "ALWAYS_INCOMPATIBLE", + "ALWAYS_COMPATIBLE", + "BACKWARD", + "FORWARD", + "FULL", + "BACKWARD_TRANSITIVE", + "FORWARD_TRANSITIVE", + "FULL_TRANSITIVE" + ], + "type": "string" + }, + "schema_validation_enforced": { + "type": "boolean" + }, + "subscriptionDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "subscription_auth_mode": { + "enum": [ + "None", + "Prefix" + ], + "type": "string" + }, + "subscription_expiration_time_minutes": { + "format": "int32", + "type": "integer" + }, + "subscription_types_enabled": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "topicDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + } + }, + "type": "object" + }, + "PoolArenaStats": { + "properties": { + "chunkLists": { + "items": { + "$ref": "#/definitions/PoolChunkListStats" + }, + "type": "array" + }, + "numActiveAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveHugeAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveNormalAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveSmallAllocations": { + "format": "int64", + "type": "integer" + }, + "numAllocations": { + "format": "int64", + "type": "integer" + }, + "numChunkLists": { + "format": "int32", + "type": "integer" + }, + "numDeallocations": { + "format": "int64", + "type": "integer" + }, + "numHugeAllocations": { + "format": "int64", + "type": "integer" + }, + "numHugeDeallocations": { + "format": "int64", + "type": "integer" + }, + "numNormalAllocations": { + "format": "int64", + "type": "integer" + }, + "numNormalDeallocations": { + "format": "int64", + "type": "integer" + }, + "numSmallAllocations": { + "format": "int64", + "type": "integer" + }, + "numSmallDeallocations": { + "format": "int64", + "type": "integer" + }, + "numSmallSubpages": { + "format": "int32", + "type": "integer" + }, + "smallSubpages": { + "items": { + "$ref": "#/definitions/PoolSubpageStats" + }, + "type": "array" + } + }, + "type": "object" + }, + "PoolChunkListStats": { + "properties": { + "chunks": { + "items": { + "$ref": "#/definitions/PoolChunkStats" + }, + "type": "array" + }, + "maxUsage": { + "format": "int32", + "type": "integer" + }, + "minUsage": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PoolChunkStats": { + "properties": { + "chunkSize": { + "format": "int32", + "type": "integer" + }, + "freeBytes": { + "format": "int32", + "type": "integer" + }, + "usage": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PoolSubpageStats": { + "properties": { + "elementSize": { + "format": "int32", + "type": "integer" + }, + "maxNumElements": { + "format": "int32", + "type": "integer" + }, + "numAvailable": { + "format": "int32", + "type": "integer" + }, + "pageSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PostSchemaPayload": { + "properties": { + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schema": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "PostSchemaResponse": { + "properties": { + "version": { + "$ref": "#/definitions/SchemaVersion" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessContainerFactory": { + "properties": { + "extraFunctionDependenciesDir": { + "type": "string" + }, + "javaInstanceJarLocation": { + "type": "string" + }, + "logDirectory": { + "type": "string" + }, + "pythonInstanceLocation": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "PublishRate": { + "properties": { + "publishThrottlingRateInByte": { + "format": "int64", + "type": "integer" + }, + "publishThrottlingRateInMsg": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PublisherStats": { + "properties": { + "accessMode": { + "enum": [ + "Shared", + "Exclusive", + "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" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "Sinks": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sinkList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SinksWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sinkList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "Sources": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sourceList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SourcesWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sourceList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SubscribeRate": { + "properties": { + "ratePeriodInSecond": { + "format": "int32", + "type": "integer" + }, + "subscribeThrottlingRatePerConsumer": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "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" + }, + "durable": { + "type": "boolean" + }, + "earliestMsgPublishTimeInBacklog": { + "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" + }, + "SubtypeResolver": { + "type": "object" + }, + "SystemResourceUsage": { + "properties": { + "bandwidthIn": { + "$ref": "#/definitions/ResourceUsage" + }, + "bandwidthOut": { + "$ref": "#/definitions/ResourceUsage" + }, + "cpu": { + "$ref": "#/definitions/ResourceUsage" + }, + "directMemory": { + "$ref": "#/definitions/ResourceUsage" + }, + "memory": { + "$ref": "#/definitions/ResourceUsage" + } + }, + "type": "object" + }, + "TenantInfo": { + "description": "Information of adminRoles and allowedClusters for tenant", + "properties": { + "adminRoles": { + "description": "Comma separated list of auth principal allowed to administrate the tenant.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "allowedClusters": { + "description": "Comma separated allowed clusters.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ThreadContainerFactory": { + "properties": { + "pulsarClientMemoryLimit": { + "$ref": "#/definitions/MemoryLimit" + }, + "threadGroupName": { + "type": "string" + } + }, + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "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" + }, + "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" + }, + "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" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "WorkerConfig": { + "properties": { + "additionalJavaRuntimeArguments": { + "items": { + "type": "string" + }, + "type": "array" + }, + "assignmentWriteMaxRetries": { + "format": "int32", + "type": "integer" + }, + "authenticateMetricsEndpoint": { + "type": "boolean" + }, + "authenticationEnabled": { + "type": "boolean" + }, + "authenticationProviders": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "authorizationEnabled": { + "type": "boolean" + }, + "authorizationProvider": { + "type": "string" + }, + "bookkeeperClientAuthenticationParameters": { + "type": "string" + }, + "bookkeeperClientAuthenticationParametersName": { + "type": "string" + }, + "bookkeeperClientAuthenticationPlugin": { + "type": "string" + }, + "brokerClientAuthenticationEnabled": { + "type": "boolean" + }, + "brokerClientAuthenticationParameters": { + "type": "string" + }, + "brokerClientAuthenticationPlugin": { + "type": "string" + }, + "brokerClientTrustCertsFilePath": { + "type": "string" + }, + "clientAuthenticationParameters": { + "type": "string" + }, + "clientAuthenticationPlugin": { + "type": "string" + }, + "clusterCoordinationTopic": { + "type": "string" + }, + "clusterCoordinationTopicName": { + "type": "string" + }, + "configurationMetadataStoreUrl": { + "type": "string" + }, + "configurationStoreServers": { + "type": "string" + }, + "connectorsDirectory": { + "type": "string" + }, + "downloadDirectory": { + "type": "string" + }, + "exposeAdminClientEnabled": { + "type": "boolean" + }, + "failureCheckFreqMs": { + "format": "int64", + "type": "integer" + }, + "forwardSourceMessageProperty": { + "type": "boolean" + }, + "functionAssignmentTopic": { + "type": "string" + }, + "functionAssignmentTopicName": { + "type": "string" + }, + "functionAuthProviderClassName": { + "type": "string" + }, + "functionInstanceMaxResources": { + "$ref": "#/definitions/Resources" + }, + "functionInstanceMinResources": { + "$ref": "#/definitions/Resources" + }, + "functionInstanceResourceChangeInLockStep": { + "type": "boolean" + }, + "functionInstanceResourceGranularities": { + "$ref": "#/definitions/Resources" + }, + "functionMetadataTopic": { + "type": "string" + }, + "functionMetadataTopicName": { + "type": "string" + }, + "functionRuntimeFactoryClassName": { + "type": "string" + }, + "functionRuntimeFactoryConfigs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "functionWebServiceUrl": { + "type": "string" + }, + "functionsDirectory": { + "type": "string" + }, + "functionsWorkerServiceCustomConfigs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "functionsWorkerServiceNarPackage": { + "type": "string" + }, + "httpRequestsLimitEnabled": { + "type": "boolean" + }, + "httpRequestsMaxPerSecond": { + "format": "double", + "type": "number" + }, + "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" + }, + "maxPendingAsyncRequests": { + "format": "int32", + "type": "integer" + }, + "metadataStoreCacheExpirySeconds": { + "format": "int32", + "type": "integer" + }, + "metadataStoreOperationTimeoutSeconds": { + "format": "int32", + "type": "integer" + }, + "metadataStoreSessionTimeoutMillis": { + "format": "int64", + "type": "integer" + }, + "narExtractionDirectory": { + "type": "string" + }, + "numFunctionPackageReplicas": { + "format": "int32", + "type": "integer" + }, + "numHttpServerThreads": { + "format": "int32", + "type": "integer" + }, + "processContainerFactory": { + "$ref": "#/definitions/ProcessContainerFactory" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "proxyRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "pulsarFunctionsCluster": { + "type": "string" + }, + "pulsarFunctionsNamespace": { + "type": "string" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pulsarWebServiceUrl": { + "type": "string" + }, + "rebalanceCheckFreqSec": { + "format": "int64", + "type": "integer" + }, + "rescheduleTimeoutMs": { + "format": "int64", + "type": "integer" + }, + "runtimeCustomizerClassName": { + "type": "string" + }, + "runtimeCustomizerConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "saslJaasClientAllowedIds": { + "type": "string" + }, + "saslJaasServerRoleTokenSignerSecretPath": { + "type": "string" + }, + "saslJaasServerSectionName": { + "type": "string" + }, + "schedulerClassName": { + "type": "string" + }, + "secretsProviderConfiguratorClassName": { + "type": "string" + }, + "secretsProviderConfiguratorConfig": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "stateStorageProviderImplementation": { + "type": "string" + }, + "stateStorageServiceUrl": { + "type": "string" + }, + "superUserRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "threadContainerFactory": { + "$ref": "#/definitions/ThreadContainerFactory" + }, + "tlsAllowInsecureConnection": { + "type": "boolean" + }, + "tlsCertRefreshCheckDurationSec": { + "format": "int64", + "type": "integer" + }, + "tlsCertificateFilePath": { + "type": "string" + }, + "tlsEnableHostnameVerification": { + "type": "boolean" + }, + "tlsEnabled": { + "type": "boolean" + }, + "tlsEnabledWithKeyStore": { + "type": "boolean" + }, + "tlsKeyFilePath": { + "type": "string" + }, + "tlsKeyStore": { + "type": "string" + }, + "tlsKeyStorePassword": { + "type": "string" + }, + "tlsKeyStoreType": { + "type": "string" + }, + "tlsProvider": { + "type": "string" + }, + "tlsRequireTrustedClientCertOnConnect": { + "type": "boolean" + }, + "tlsTrustCertsFilePath": { + "type": "string" + }, + "tlsTrustChainBytes": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "tlsTrustStore": { + "type": "string" + }, + "tlsTrustStorePassword": { + "type": "string" + }, + "tlsTrustStoreType": { + "type": "string" + }, + "topicCompactionFrequencySec": { + "format": "int64", + "type": "integer" + }, + "uploadBuiltinSinksSources": { + "type": "boolean" + }, + "useCompactedMetadataTopic": { + "type": "boolean" + }, + "useTls": { + "type": "boolean" + }, + "validateConnectorConfig": { + "type": "boolean" + }, + "webServiceTlsCiphers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "webServiceTlsProtocols": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "workerHostname": { + "type": "string" + }, + "workerId": { + "type": "string" + }, + "workerListProbeIntervalSec": { + "format": "int32", + "type": "integer" + }, + "workerPort": { + "format": "int32", + "type": "integer" + }, + "workerPortTls": { + "format": "int32", + "type": "integer" + }, + "workerWebAddress": { + "type": "string" + }, + "workerWebAddressTls": { + "type": "string" + }, + "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" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for admin operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Admin REST API", + "version": "v2" + }, + "paths": { + "/bookies/all": { + "get": { + "description": "", + "operationId": "getAllBookies", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookiesClusterInfo" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets raw information for all the bookies in the cluster", + "tags": [ + "bookies" + ] + } + }, + "/bookies/racks-info": { + "get": { + "description": "", + "operationId": "getBookiesRackInfo", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/definitions/BookieInfo" + }, + "type": "object" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the rack placement information for all the bookies in the cluster", + "tags": [ + "bookies" + ] + } + }, + "/bookies/racks-info/{bookie}": { + "delete": { + "description": "", + "operationId": "deleteBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Removed the rack placement information for a specific bookie in the cluster", + "tags": [ + "bookies" + ] + }, + "get": { + "description": "", + "operationId": "getBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookieInfo" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the rack placement information for a specific bookie in the cluster", + "tags": [ + "bookies" + ] + }, + "post": { + "description": "", + "operationId": "updateBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "group", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Updates the rack placement information for a specific bookie in the cluster (note. bookie address format:`address:port`)", + "tags": [ + "bookies" + ] + } + }, + "/broker-stats/allocator-stats/{allocator}": { + "get": { + "description": "", + "operationId": "getAllocatorStats", + "parameters": [ + { + "in": "path", + "name": "allocator", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AllocatorStats" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the stats for the Netty allocator. Available allocators are 'default' and 'ml-cache'", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/bookieops": { + "get": { + "description": "", + "operationId": "getPendingBookieOpsStats", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/PendingBookieOpsStats" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get pending bookie client op stats by namesapce", + "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

THIS API IS ONLY FOR USE BY TESTING FOR CONFIRMING NAMESPACE ALLOCATION ALGORITHM", + "operationId": "getBrokerResourceAvailability", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/ResourceUnit" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Load-manager doesn't support operation" + } + }, + "summary": "Broker availability report", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/load-report": { + "get": { + "description": "consists of topics stats & systemResourceUsage", + "operationId": "getLoadReport", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LoadReport" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get Load for this broker", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/mbeans": { + "get": { + "description": "", + "operationId": "getMBeans", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all the mbean details of this broker JVM", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/metrics": { + "get": { + "description": "Requested should be executed by Monitoring agent on each broker to fetch the metrics", + "operationId": "getMetrics", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the metrics for Monitoring", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/topics": { + "get": { + "description": "", + "operationId": "getTopics2", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/OutputStream" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all the topic stats by namespace", + "tags": [ + "broker-stats" + ] + } + }, + "/brokers/backlog-quota-check": { + "get": { + "description": "", + "operationId": "backlogQuotaCheck", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK" + }, + "403": { + "description": "Don't have admin permission" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "An REST endpoint to trigger backlogQuotaCheck", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration": { + "get": { + "description": "", + "operationId": "getDynamicConfigurationName", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "You don't have admin permission to get configuration" + } + }, + "summary": "Get all updatable dynamic configurations's name", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/runtime": { + "get": { + "description": "", + "operationId": "getRuntimeConfiguration", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all runtime configurations. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/values": { + "get": { + "description": "", + "operationId": "getAllDynamicConfigurations", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "403": { + "description": "You don't have admin permission to view configuration" + }, + "404": { + "description": "Configuration not found" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get value of all dynamic configurations' value overridden on local config", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/{configName}": { + "delete": { + "description": "", + "operationId": "deleteDynamicConfiguration", + "parameters": [ + { + "in": "path", + "name": "configName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Service configuration updated successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "412": { + "description": "Invalid dynamic-config value" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete dynamic ServiceConfiguration into metadata only. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/{configName}/{configValue}": { + "post": { + "description": "", + "operationId": "updateDynamicConfiguration", + "parameters": [ + { + "in": "path", + "name": "configName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "configValue", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Service configuration updated successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "404": { + "description": "Configuration not found" + }, + "412": { + "description": "Invalid dynamic-config value" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Update dynamic serviceconfiguration into zk only. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/health": { + "get": { + "description": "", + "operationId": "healthCheck", + "parameters": [ + { + "enum": [ + "V1", + "V2" + ], + "in": "query", + "name": "topicVersion", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Run a healthCheck against the broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/internal-configuration": { + "get": { + "description": "", + "operationId": "getInternalConfigurationData", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/InternalConfigurationData" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the internal configuration data", + "tags": [ + "brokers" + ] + } + }, + "/brokers/leaderBroker": { + "get": { + "description": "", + "operationId": "getLeaderBroker", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BrokerInfo" + } + }, + "401": { + "description": "Authentication required" + }, + "403": { + "description": "This operation requires super-user access" + }, + "404": { + "description": "Leader broker not found" + } + }, + "summary": "Get the information of the leader broker.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/ready": { + "get": { + "description": "", + "operationId": "isReady", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Broker is ready" + }, + "500": { + "description": "Broker is not ready" + } + }, + "summary": "Check if the broker is fully initialized", + "tags": [ + "brokers" + ] + } + }, + "/brokers/shutdown": { + "post": { + "description": "", + "operationId": "shutDownBrokerGracefully", + "parameters": [ + { + "description": "if the value absent(value=0) means no concurrent limitation.", + "format": "int32", + "in": "query", + "name": "maxConcurrentUnloadPerSec", + "required": false, + "type": "integer" + }, + { + "default": true, + "in": "query", + "name": "forcedTerminateTopic", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Execute shutdown command successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Shutdown broker gracefully.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/version": { + "get": { + "description": "", + "operationId": "version", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get version of current broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/{clusterName}/{broker-webserviceurl}/ownedNamespaces": { + "get": { + "description": "", + "operationId": "getOwnedNamespaces", + "parameters": [ + { + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "broker-webserviceurl", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceOwnershipStatus" + }, + "type": "object" + } + }, + "307": { + "description": "Current broker doesn't serve the cluster" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Cluster doesn't exist" + } + }, + "summary": "Get the list of namespaces served by the specific broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/{cluster}": { + "get": { + "description": "", + "operationId": "getActiveBrokers", + "parameters": [ + { + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "307": { + "description": "Current broker doesn't serve this cluster" + }, + "401": { + "description": "Authentication required" + }, + "403": { + "description": "This operation requires super-user access" + }, + "404": { + "description": "Cluster does not exist: cluster={clustername}" + } + }, + "summary": "Get the list of active brokers (web service addresses) in the cluster.If authorization is not enabled, any cluster name is valid.", + "tags": [ + "brokers" + ] + } + }, + "/clusters": { + "get": { + "description": "", + "operationId": "getClusters", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return a list of clusters.", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the list of all the Pulsar clusters.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been deleted." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "412": { + "description": "Cluster is not empty." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Delete an existing cluster.", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the cluster data.", + "schema": { + "$ref": "#/definitions/ClusterData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the configuration for the specified cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "updateCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The cluster data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterData" + }, + "x-examples": { + "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651'\n}" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been updated." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Update the configuration for a cluster.", + "tags": [ + "clusters" + ] + }, + "put": { + "description": "This operation requires Pulsar superuser privileges, and the name cannot contain the '/' characters.", + "operationId": "createCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The cluster data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterData" + }, + "x-examples": { + "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651',\n}" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been created." + }, + "403": { + "description": "You don't have admin permission to create the cluster." + }, + "409": { + "description": "Cluster already exists." + }, + "412": { + "description": "Cluster name is not valid." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Create a new cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/failureDomains": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getFailureDomains", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/FailureDomain" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the cluster failure domains.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/failureDomains/{domainName}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteFailureDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission or policy is read only" + }, + "404": { + "description": "FailureDomain doesn't exist" + }, + "412": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete the failure domain of the cluster", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FailureDomain" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "FailureDomain doesn't exist" + }, + "412": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get a domain in a cluster", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setFailureDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + }, + { + "description": "The configuration data of a failure domain", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/FailureDomain" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Failure domain doesn't exist." + }, + "409": { + "description": "Broker already exists in another domain." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Set the failure domain of the cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getNamespaceIsolationPolicies", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceIsolationData" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the namespace isolation policies assigned to the cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/brokers": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getBrokersWithNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/BrokerNamespaceIsolationData" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Namespace-isolation policies not found." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get list of brokers with namespace-isolation policies attached to them.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/brokers/{broker}": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getBrokerWithNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The broker name (:)", + "in": "path", + "name": "broker", + "required": true, + "type": "string", + "x-example": "broker1:8080" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BrokerNamespaceIsolationData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Namespace-isolation policies/ Broker not found." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get a broker with namespace-isolation policies attached to it.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/{policyName}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy name", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission or policies are read only." + }, + "404": { + "description": "Namespace isolation policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Delete namespace isolation policy.", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The name of the namespace isolation policy", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NamespaceIsolationData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the single namespace isolation policy assigned to the cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy name", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NamespaceIsolationData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Namespace isolation policy data is invalid." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Namespace isolation policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Set namespace isolation policy.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/peers": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getPeerCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the peer-cluster data for the specified cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setPeerClusterNames", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The list of peer cluster names", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "x-examples": { + "application/json": "[\n 'cluster-a',\n 'cluster-b'\n]" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been updated." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "412": { + "description": "Peer cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Update peer-cluster-list for a cluster.", + "tags": [ + "clusters" + ] + } + }, + "/namespaces/{cluster}/antiAffinity/{group}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAntiAffinityNamespaces", + "parameters": [ + { + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "group", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "tenant", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "412": { + "description": "Cluster not exist/Anti-affinity group can't be empty." + } + }, + "summary": "Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{property}/{namespace}/persistence/bookieAffinity": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "property", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Delete the bookie-affinity-group from namespace-local policy.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "property", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookieAffinityGroupData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get the bookie-affinity-group from namespace-local policy.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenantNamespaces", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant doesn't exist" + } + }, + "summary": "Get the list of all the namespaces for a certain tenant.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "405": { + "description": "Broker doesn't allow forced deletion of namespaces" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Delete a namespace and all the topics under it.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Policies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the dump all the policies specified for a namespace.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "createNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Policies for the namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Policies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster doesn't exist" + }, + "409": { + "description": "Namespace already exists" + }, + "412": { + "description": "Namespace name is not valid" + } + }, + "summary": "Creates a new namespace with the specified policies", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/antiAffinity": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove anti-affinity group of a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get anti-affinity group of a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Anti-affinity group for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid antiAffinityGroup" + } + }, + "summary": "Set anti-affinity group for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/autoSubscriptionCreation": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove override of broker's allowAutoSubscriptionCreation in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get autoSubscriptionCreation info in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Settings for automatic subscription creation", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid autoSubscriptionCreation override" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Override broker's allowAutoSubscriptionCreation setting for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/autoTopicCreation": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove override of broker's allowAutoTopicCreation in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AutoTopicCreationOverride" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get autoTopicCreation info in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Settings for automatic topic creation", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AutoTopicCreationOverride" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid autoTopicCreation override" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "406": { + "description": "The number of partitions should be less than or equal to maxNumPartitionsPerPartitionedTopic" + } + }, + "summary": "Override broker's allowAutoTopicCreation setting for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/backlogQuota": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "description": "Backlog quota for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/BacklogQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": " Set a backlog quota for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/backlogQuotaMap": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/BacklogQuota" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get backlog quota map on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/bundles": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBundlesData", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BundlesData" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Namespace is not setup to split in bundles" + } + }, + "summary": "Get the bundles split data.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/clearBacklog": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBacklog", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/clearBacklog/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBacklogForSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subscription", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for a given subscription on all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/compactionThreshold": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "deleteCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Delete maximum number of uncompacted bytes in a topic before compaction is triggered.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Maximum number of uncompacted bytes in topics before compaction is triggered.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Maximum number of uncompacted bytes in a topic of the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "compactionThreshold value is not valid" + } + }, + "summary": "Set maximum number of uncompacted bytes in a topic before compaction is triggered.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/deduplication": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "modifyDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag for disabling or enabling broker side deduplication for all topics in the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Enable or disable broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/deduplicationSnapshotInterval": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/delayedDelivery": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Delete delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Delayed delivery policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/dispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Delete dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Dispatch rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/encryptionRequired": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getEncryptionRequired", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get message encryption required status in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "modifyEncryptionRequired", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag defining if message encryption is required", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Message encryption is required or not for all topics in a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/inactiveTopicPolicies": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove inactive topic policies from a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/InactiveTopicPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get inactive topic policies config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Inactive topic policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/InactiveTopicPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Set inactive topic policies config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/isAllowAutoUpdateSchema": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getIsAllowAutoUpdateSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The flag of whether allow auto update schema", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setIsAllowAutoUpdateSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag of whether to allow auto update schema", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update flag of whether allow auto update schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxConsumersPerSubscription": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerSubscription value is not valid" + } + }, + "summary": " Set maxConsumersPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxConsumersPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum consumers per subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerSubscription value is not valid" + } + }, + "summary": " Set maxConsumersPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxConsumersPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxConsumersPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum consumers per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerTopic value is not valid" + } + }, + "summary": " Set maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxProducersPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxProducersPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum producers per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxProducersPerTopic value is not valid" + } + }, + "summary": " Set maxProducersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxSubscriptionsPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxSubscriptionsPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum subscriptions per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerSubscription value is not valid" + } + }, + "summary": " Set maxSubscriptionsPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxTopicsPerNamespace": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Set maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxTopicsPerNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace does not exist" + } + }, + "summary": "Get maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum topics for specific namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Set maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerConsumer": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxUnackedmessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Remove maxUnackedMessagesPerConsumer config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxUnackedMessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxUnackedMessagesPerConsumer config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxUnackedMessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum unacked messages per consumer", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerConsumer value is not valid" + } + }, + "summary": " Set maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerSubscription": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxUnackedmessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Remove maxUnackedMessagesPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxUnackedmessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxUnackedMessagesPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxUnackedMessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum unacked messages per subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerSubscription value is not valid" + } + }, + "summary": " Set maxUnackedMessagesPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/messageTTL": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid TTL" + } + }, + "summary": "Set message TTL in seconds for namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the message TTL for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid TTL" + } + }, + "summary": "Set message TTL in seconds for namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadDeletionLagMs": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Clear the namespace configured offload deletion lag. The topics in the namespace will fallback to using the default configured deletion lag for the broker", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "A negative value denotes that deletion has been completely disabled. 'null' denotes that the topics in the namespace will fall back to the broker default for deletion lag.", + "operationId": "getOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "A negative value disables the deletion completely.", + "operationId": "setOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "New number of milliseconds to wait before deleting a ledger segment which has been offloaded", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "offloadDeletionLagMs value is not valid" + } + }, + "summary": "Set number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadPolicies": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Offload policies for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid" + } + }, + "summary": " Set offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadThreshold": { + "get": { + "consumes": [ + "application/json" + ], + "description": "A negative value disables automatic offloading", + "operationId": "getOffloadThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "-1 will revert to using the cluster default. A negative value disables automatic offloading. ", + "operationId": "setOffloadThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Maximum number of bytes stored on the pulsar cluster for a topic of the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "offloadThreshold value is not valid" + } + }, + "summary": "Set maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPermissions", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Retrieve the permissions for a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions/subscription": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPermissionOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Retrieve the permissions for a subscription.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions/{role}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "revokePermissionsOnNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Revoke all permissions to a role on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "grantPermissionOnNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "List of permissions for the specified role", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "501": { + "description": "Authorization is not enabled" + } + }, + "summary": "Grant a new permission to a role on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/persistence": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deletePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Delete the persistence configuration for all topics on a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get the persistence configuration for a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Persistence policies for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set the persistence configuration for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Bookie affinity group for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/BookieAffinityGroupData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set the bookie-affinity-group to namespace-persistent policy.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/properties": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get key value pair properties for a given namespace.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Key value pair properties for the namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Put key value pairs property on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/property/{key}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/property/{key}/{value}": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "value", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Put a key value pair property on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/removeOffloadPolicies": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid" + } + }, + "summary": " Set offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/replication": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Namespace is not global" + } + }, + "summary": "Get the replication clusters for a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Peer-cluster can't be part of replication-cluster" + }, + "412": { + "description": "Namespace is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/replicatorDispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Remove replicator dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Replicator dispatch rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set replicator dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/resourcegroup": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid resourcegroup" + } + }, + "summary": "Delete resourcegroup for a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "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 the resourcegroup attached to the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/resourcegroup/{resourcegroup}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid resourcegroup" + } + }, + "summary": "Set resourcegroup for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/retention": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": " Remove retention configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getRetention", + "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/RetentionPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get retention config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": " Set retention configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaAutoUpdateCompatibilityStrategy": { + "get": { + "consumes": [ + "application/json" + ], + "description": "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api", + "operationId": "getSchemaAutoUpdateCompatibilityStrategy", + "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": { + "enum": [ + "AutoUpdateDisabled", + "Backward", + "Forward", + "Full", + "AlwaysCompatible", + "BackwardTransitive", + "ForwardTransitive", + "FullTransitive" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api", + "operationId": "setSchemaAutoUpdateCompatibilityStrategy", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Strategy used to check the compatibility of new schemas", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update the strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaCompatibilityStrategy": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "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": { + "enum": [ + "UNDEFINED", + "ALWAYS_INCOMPATIBLE", + "ALWAYS_COMPATIBLE", + "BACKWARD", + "FORWARD", + "FULL", + "BACKWARD_TRANSITIVE", + "FORWARD_TRANSITIVE", + "FULL_TRANSITIVE" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The strategy of the namespace schema compatibility ", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update the strategy used to check the compatibility of new schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaValidationEnforced": { + "get": { + "consumes": [ + "application/json" + ], + "description": "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.", + "operationId": "getSchemaValidtionEnforced", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenants or Namespace doesn't exist" + } + }, + "summary": "Get schema validation enforced flag for namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.", + "operationId": "setSchemaValidtionEnforced", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag of whether validation is enforced on 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 Namespace doesn't exist" + }, + "412": { + "description": "schemaValidationEnforced value is not valid" + } + }, + "summary": "Set schema validation enforced flag on namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscribeRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteSubscribeRate", + "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 subscribe-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscribeRate", + "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/SubscribeRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get subscribe-rate configured for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscribe rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set subscribe-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionAuthMode": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionAuthMode", + "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": { + "enum": [ + "None", + "Prefix" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get subscription auth mode in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionAuthMode", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscription auth mode for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": " Set a subscription auth mode for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionDispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteSubscriptionDispatchRate", + "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 Subscription dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionDispatchRate", + "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/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get subscription dispatch-rate configured for the namespace, null means subscription 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": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscription 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 Subscription dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionExpirationTime": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeSubscriptionExpirationTime", + "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 subscription expiration time for namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionExpirationTime", + "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 subscription expiration time for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionExpirationTime", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Expiration time in minutes 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 expiration time" + } + }, + "summary": "Set subscription expiration time in minutes for namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionTypesEnabled": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "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" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": " Remove subscription types enabled on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The set of whether allow subscription types", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Set of whether allow subscription types", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update set of whether allow share sub type", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/topics": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTopics", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": "PERSISTENT", + "enum": [ + "PERSISTENT", + "NON_PERSISTENT", + "ALL" + ], + "in": "query", + "name": "mode", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the list of all the topics under a certain namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/unload": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Unload an active namespace from the current broker serving it. Performing this operation will let the brokerremoves all producers, consumers, and connections using this namespace, and close all topics (includingtheir persistent store). During that operation, the namespace is marked as tentatively unavailable until thebroker completes the unloading action. This operation requires strictly super user privileges, since it wouldresult in non-persistent message loss and unexpected connection closure to the clients.", + "operationId": "unloadNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + }, + "412": { + "description": "Namespace is already unloaded or Namespace has bundles activated" + } + }, + "summary": "Unload namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/unsubscribe/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unsubscribeNamespace", + "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 namespacen" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Unsubscribes the given subscription on all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "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" + }, + "409": { + "description": "Namespace bundle is not empty" + } + }, + "summary": "Delete a namespace bundle and all the topics under it.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBundleBacklog", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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 or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for all topics on a namespace bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBundleBacklogForSubscription", + "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" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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 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 bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/split": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "splitNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "unload", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "splitAlgorithmName", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Split a namespace bundle", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/unload": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unloadNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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" + } + }, + "summary": "Unload a namespace bundle", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/unsubscribe/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unsubscribeNamespaceBundle", + "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" + }, + { + "in": "path", + "name": "bundle", + "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": "Unsubscribes the given subscription on all topics on a namespace bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/non-persistent/{tenant}/{namespace}": { + "get": { + "description": "", + "operationId": "getList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify the bundle name", + "in": "query", + "name": "bundle", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace does not exist" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of non-persistent topics under a namespace.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/partitioned": { + "get": { + "description": "", + "operationId": "getPartitionedTopicList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of partitioned topics under a namespace.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{bundle}": { + "get": { + "description": "", + "operationId": "getListFromBundle", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Bundle range of a topic", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of non-persistent topics under a namespace bundle.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}": { + "delete": { + "description": "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.", + "operationId": "deleteTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic has active producers/subscriptions" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "This is the only REST endpoint from which non-partitioned topics could be created.", + "operationId": "createNonPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Key value pair properties for the topic metadata", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a non-partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireMessagesForAllSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on all subscriptions of topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlog": { + "get": { + "description": "", + "operationId": "getBacklog", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentOfflineTopicStats" + } + }, + "404": { + "description": "Namespace does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get estimated backlog for offline topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogQuota": { + "delete": { + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "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": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": "Set a backlog quota for a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap": { + "get": { + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic policy does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get backlog quota map on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogSize": { + "put": { + "description": "", + "operationId": "getBacklogSizeByMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Calculate backlog size by a message ID (in bytes).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/compaction": { + "get": { + "description": "", + "operationId": "compactionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist, or compaction hasn't run" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the status of a compaction operation for a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "compact", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Compaction already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Trigger a compaction operation on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/compactionThreshold": { + "delete": { + "description": "", + "operationId": "removeCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/createMissedPartitions": { + "post": { + "description": "", + "operationId": "createMissedPartitions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Create missed partitions of an existing partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled": { + "delete": { + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove deduplication configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get deduplication configuration of a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "DeduplicationEnabled policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Set deduplication enabled on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval": { + "delete": { + "description": "", + "operationId": "deleteDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/delayedDelivery": { + "delete": { + "description": "", + "operationId": "deleteDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Delayed delivery policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/dispatchRate": { + "delete": { + "description": "", + "operationId": "removeDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/examinemessage": { + "get": { + "description": "", + "operationId": "examineMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": "latest", + "description": "Relative start position to examine message.It can be 'latest' or 'earliest'", + "enum": [ + "latest", + "earliest" + ], + "in": "query", + "name": "initialPosition", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The position of messages (default 1)", + "format": "int64", + "in": "query", + "name": "messagePosition", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, the message position does not exist" + }, + "405": { + "description": "If given partitioned topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Examine a specific message on a topic by position relative to the earliest or the latest message.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies": { + "delete": { + "description": "", + "operationId": "deleteInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "inactive topic policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/internal-info": { + "get": { + "description": "", + "operationId": "getManagedLedgerInfo", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stored topic metadata.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/internalStats": { + "get": { + "description": "", + "operationId": "getInternalStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentTopicInternalStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the internal stats for the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/lastMessageId": { + "get": { + "description": "", + "operationId": "getLastMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Return the last commit message id of topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}": { + "get": { + "description": "", + "operationId": "getMessageById", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The ledger id", + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "description": "The entry id", + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message by its messageId.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxConsumers": { + "delete": { + "description": "", + "operationId": "removeMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max consumers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription": { + "delete": { + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxMessageSize": { + "delete": { + "description": "", + "operationId": "removeMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max message size of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxProducers": { + "delete": { + "description": "", + "operationId": "removeMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "The max producers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxProducers" + } + }, + "summary": "Set maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic": { + "delete": { + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max subscriptions of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxSubscriptionsPerTopic" + } + }, + "summary": "Set maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on consumer policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on subscription policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/messageTTL": { + "delete": { + "description": "", + "operationId": "removeMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Remove message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "format": "int32", + "in": "query", + "name": "messageTTL", + "required": true, + "type": "integer" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Set message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}": { + "get": { + "description": "", + "operationId": "getMessageIdByTimestamp", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Specify the timestamp", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic is not non-partitioned and persistent" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message ID published at or just after this absolute timestamp (in ms).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/offload": { + "get": { + "description": "", + "operationId": "offloadStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "triggerOffload", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Message ID is null" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Offload already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/offloadPolicies": { + "delete": { + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Offload policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/partitioned-stats": { + "get": { + "description": "", + "operationId": "getPartitionedStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": true, + "description": "Get per partition stats", + "in": "query", + "name": "perPartition", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return the earliest time in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/partitions": { + "delete": { + "description": "It will also delete all the partitions of the topic if it exists.", + "operationId": "deletePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Partitioned topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a partitioned topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPartitionedMetadata", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Is check configuration required to automatically create topic", + "in": "query", + "name": "checkAllowAutoCreation", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate cluster configuration" + } + }, + "summary": "Get partitioned topic metadata.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "It only increments partitions of existing non-global partitioned-topic", + "operationId": "updatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "updateLocalTopicOnly", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "description": "The number of partitions for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "default": 0, + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Increment partitions of an existing partitioned topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "consumes": [ + "application/vnd.partitioned-topic-metadata+json" + ], + "description": "It needs to be called before creating a producer on a partitioned topic.", + "operationId": "createPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The metadata for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PartitionedTopicMetadata" + } + }, + { + "default": false, + "in": "query", + "name": "createLocalTopicOnly", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/permissions": { + "get": { + "description": "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.", + "operationId": "getPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get permissions on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/permissions/{role}": { + "delete": { + "description": "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).", + "operationId": "revokePermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Permissions are not set at the topic level" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Revoke permissions on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "grantPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "Actions to be granted (produce,functions,consume)", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Grant a new permission to a role on a single topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/persistence": { + "delete": { + "description": "", + "operationId": "removePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Bookkeeper persistence policies for specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/properties": { + "get": { + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get topic properties.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/publishRate": { + "delete": { + "description": "", + "operationId": "removePublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PublishRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/replication": { + "delete": { + "description": "", + "operationId": "removeReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove the replication clusters from a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get the replication clusters for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate": { + "delete": { + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Replicator dispatch rate of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of replicatorDispatchRate" + } + }, + "summary": "Set replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/retention": { + "delete": { + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Remove retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Set retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy": { + "delete": { + "description": "", + "operationId": "removeSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Remove schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the cluster", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Get schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Set schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/stats": { + "get": { + "description": "", + "operationId": "getStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Is authentication required to perform this operation", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return time of the earliest message in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NonPersistentTopicStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the stats for the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscribeRate": { + "delete": { + "description": "", + "operationId": "removeSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}": { + "delete": { + "description": "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.", + "operationId": "deleteSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be deleted", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Disconnect and close all consumers and delete subscription forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Subscription has active consumers" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Delete a subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}": { + "get": { + "description": "", + "operationId": "peekNthMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscribed message expired", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The number of messages (default 1)", + "format": "int32", + "in": "path", + "name": "messagePosition", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Peek nth message on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/properties": { + "put": { + "description": "", + "operationId": "updateSubscriptionProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to update", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "The new properties", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Replaces all the properties on the given subscription", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus": { + "get": { + "description": "", + "operationId": "getReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get replicated subscription status on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Whether to enable replicated subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on this topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Enable or disable a replicated subscription on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursorOnPosition", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "412": { + "description": "Unable to find position for position specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to given position.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursor", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "the timestamp to reset back", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "412": { + "description": "Failed to reset cursor on subscription or Unable to find position for timestamp specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to absolute timestamp (in ms).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}": { + "post": { + "description": "", + "operationId": "skipMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "The number of messages to skip", + "format": "int32", + "in": "path", + "name": "numMessages", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Skipping messages on a partitioned topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skipping messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip_all": { + "post": { + "description": "Completely clears the backlog on the subscription.", + "operationId": "skipAllMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on non-persistent topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skip all messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}": { + "put": { + "description": "Creates a subscription on the topic at the specified message id", + "operationId": "createSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to create position on", + "in": "path", + "name": "subscriptionName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + }, + { + "description": "Is replicated required to perform this operation", + "in": "query", + "name": "replicated", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Create subscription on non persistent topic is not supported" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a subscription on the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate": { + "delete": { + "description": "", + "operationId": "removeSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Subscription message dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled": { + "delete": { + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription types enabled for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get is enable sub type fors specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Enable sub types for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set is enable sub types for specified topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptions": { + "get": { + "description": "", + "operationId": "getSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of persistent subscriptions for a given topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/terminate": { + "post": { + "description": "", + "operationId": "terminate", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/MessageId" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a partitioned topic is not allowed" + }, + "406": { + "description": "Need to provide a persistent topic name" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate a topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/terminate/partitions": { + "post": { + "description": "", + "operationId": "terminatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a non-partitioned topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate all partitioned topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/truncate": { + "delete": { + "description": "NonPersistentTopic does not support truncate.", + "operationId": "truncateTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "412": { + "description": "NonPersistentTopic does not support truncate." + } + }, + "summary": "Truncate a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/unload": { + "put": { + "description": "", + "operationId": "unloadTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "This operation requires super-user access" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Unload a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}": { + "get": { + "description": "", + "operationId": "getList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify the bundle name", + "in": "query", + "name": "bundle", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespacee" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of topics under a namespace.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/partitioned": { + "get": { + "description": "", + "operationId": "getPartitionedTopicList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of partitioned topics under a namespace.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}": { + "delete": { + "description": "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.", + "operationId": "deleteTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic has active producers/subscriptions" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "This is the only REST endpoint from which non-partitioned topics could be created.", + "operationId": "createNonPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Key value pair properties for the topic metadata", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a non-partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireMessagesForAllSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on all subscriptions of topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlog": { + "get": { + "description": "", + "operationId": "getBacklog", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentOfflineTopicStats" + } + }, + "404": { + "description": "Namespace does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get estimated backlog for offline topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogQuota": { + "delete": { + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "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": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": "Set a backlog quota for a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap": { + "get": { + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic policy does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get backlog quota map on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogSize": { + "put": { + "description": "", + "operationId": "getBacklogSizeByMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Calculate backlog size by a message ID (in bytes).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/compaction": { + "get": { + "description": "", + "operationId": "compactionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist, or compaction hasn't run" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the status of a compaction operation for a topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "compact", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Compaction already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Trigger a compaction operation on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/compactionThreshold": { + "delete": { + "description": "", + "operationId": "removeCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/createMissedPartitions": { + "post": { + "description": "", + "operationId": "createMissedPartitions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Create missed partitions of an existing partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled": { + "delete": { + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove deduplication configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get deduplication configuration of a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "DeduplicationEnabled policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Set deduplication enabled on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval": { + "delete": { + "description": "", + "operationId": "deleteDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/delayedDelivery": { + "delete": { + "description": "", + "operationId": "deleteDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Delayed delivery policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/dispatchRate": { + "delete": { + "description": "", + "operationId": "removeDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/examinemessage": { + "get": { + "description": "", + "operationId": "examineMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": "latest", + "description": "Relative start position to examine message.It can be 'latest' or 'earliest'", + "enum": [ + "latest", + "earliest" + ], + "in": "query", + "name": "initialPosition", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The position of messages (default 1)", + "format": "int64", + "in": "query", + "name": "messagePosition", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, the message position does not exist" + }, + "405": { + "description": "If given partitioned topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Examine a specific message on a topic by position relative to the earliest or the latest message.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies": { + "delete": { + "description": "", + "operationId": "deleteInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "inactive topic policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/internal-info": { + "get": { + "description": "", + "operationId": "getManagedLedgerInfo", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stored topic metadata.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/internalStats": { + "get": { + "description": "", + "operationId": "getInternalStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentTopicInternalStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the internal stats for the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/lastMessageId": { + "get": { + "description": "", + "operationId": "getLastMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Return the last commit message id of topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}": { + "get": { + "description": "", + "operationId": "getMessageById", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The ledger id", + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "description": "The entry id", + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message by its messageId.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxConsumers": { + "delete": { + "description": "", + "operationId": "removeMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max consumers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription": { + "delete": { + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxMessageSize": { + "delete": { + "description": "", + "operationId": "removeMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max message size of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxProducers": { + "delete": { + "description": "", + "operationId": "removeMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "The max producers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxProducers" + } + }, + "summary": "Set maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic": { + "delete": { + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max subscriptions of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxSubscriptionsPerTopic" + } + }, + "summary": "Set maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on consumer policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on subscription policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/messageTTL": { + "delete": { + "description": "", + "operationId": "removeMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Remove message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "format": "int32", + "in": "query", + "name": "messageTTL", + "required": true, + "type": "integer" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Set message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}": { + "get": { + "description": "", + "operationId": "getMessageIdByTimestamp", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Specify the timestamp", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic is not non-partitioned and persistent" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message ID published at or just after this absolute timestamp (in ms).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/offload": { + "get": { + "description": "", + "operationId": "offloadStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "triggerOffload", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Message ID is null" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Offload already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/offloadPolicies": { + "delete": { + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete offload policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get offload policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Offload policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set offload policies on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/partitioned-stats": { + "get": { + "description": "", + "operationId": "getPartitionedStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": true, + "description": "Get per partition stats", + "in": "query", + "name": "perPartition", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return the earliest time in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/partitions": { + "delete": { + "description": "It will also delete all the partitions of the topic if it exists.", + "operationId": "deletePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Partitioned topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a partitioned topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPartitionedMetadata", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Is check configuration required to automatically create topic", + "in": "query", + "name": "checkAllowAutoCreation", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get partitioned topic metadata.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "It only increments partitions of existing non-global partitioned-topic", + "operationId": "updatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "updateLocalTopicOnly", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "description": "The number of partitions for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "default": 0, + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Increment partitions of an existing partitioned topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "consumes": [ + "application/vnd.partitioned-topic-metadata+json" + ], + "description": "It needs to be called before creating a producer on a partitioned topic.", + "operationId": "createPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The metadata for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PartitionedTopicMetadata" + } + }, + { + "default": false, + "in": "query", + "name": "createLocalTopicOnly", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/permissions": { + "get": { + "description": "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.", + "operationId": "getPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get permissions on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/permissions/{role}": { + "delete": { + "description": "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).", + "operationId": "revokePermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Permissions are not set at the topic level" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Revoke permissions on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "grantPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "Actions to be granted (produce,functions,consume)", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Grant a new permission to a role on a single topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/persistence": { + "delete": { + "description": "", + "operationId": "removePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Bookkeeper persistence policies for specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/properties": { + "get": { + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get topic properties.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/publishRate": { + "delete": { + "description": "", + "operationId": "removePublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PublishRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/replication": { + "delete": { + "description": "", + "operationId": "removeReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove the replication clusters from a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get the replication clusters for a topic", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate": { + "delete": { + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Replicator dispatch rate of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of replicatorDispatchRate" + } + }, + "summary": "Set replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/retention": { + "delete": { + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Remove retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Set retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy": { + "delete": { + "description": "", + "operationId": "removeSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Remove schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the cluster", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Get schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Set schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/stats": { + "get": { + "description": "", + "operationId": "getStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return time of the earliest message in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/TopicStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscribeRate": { + "delete": { + "description": "", + "operationId": "removeSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}": { + "delete": { + "description": "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.", + "operationId": "deleteSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be deleted", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Disconnect and close all consumers and delete subscription forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Subscription has active consumers" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Delete a subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}": { + "get": { + "description": "", + "operationId": "peekNthMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscribed message expired", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The number of messages (default 1)", + "format": "int32", + "in": "path", + "name": "messagePosition", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Peek nth message on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/properties": { + "put": { + "description": "", + "operationId": "updateSubscriptionProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to update", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "The new properties", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Replaces all the properties on the given subscription", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus": { + "get": { + "description": "", + "operationId": "getReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get replicated subscription status on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Whether to enable replicated subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on this topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Enable or disable a replicated subscription on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursorOnPosition", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "412": { + "description": "Unable to find position for position specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to given position.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursor", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "the timestamp to reset back", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "412": { + "description": "Failed to reset cursor on subscription or Unable to find position for timestamp specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to absolute timestamp (in ms).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}": { + "post": { + "description": "", + "operationId": "skipMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "The number of messages to skip", + "format": "int32", + "in": "path", + "name": "numMessages", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Skipping messages on a partitioned topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skipping messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip_all": { + "post": { + "description": "Completely clears the backlog on the subscription.", + "operationId": "skipAllMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on non-persistent topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skip all messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}": { + "put": { + "description": "Creates a subscription on the topic at the specified message id", + "operationId": "createSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to create position on", + "in": "path", + "name": "subscriptionName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + }, + { + "description": "Is replicated required to perform this operation", + "in": "query", + "name": "replicated", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Create subscription on non persistent topic is not supported" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a subscription on the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate": { + "delete": { + "description": "", + "operationId": "removeSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Subscription message dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled": { + "delete": { + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription types enabled for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get is enable sub type fors specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Enable sub types for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set is enable sub types for specified topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptions": { + "get": { + "description": "", + "operationId": "getSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of persistent subscriptions for a given topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/terminate": { + "post": { + "description": "", + "operationId": "terminate", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/MessageId" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a partitioned topic is not allowed" + }, + "406": { + "description": "Need to provide a persistent topic name" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate a topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/terminate/partitions": { + "post": { + "description": "", + "operationId": "terminatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a non-partitioned topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate all partitioned topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/truncate": { + "delete": { + "description": "The truncate operation will move all cursors to the end of the topic and delete all inactive ledgers.", + "operationId": "truncateTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Truncate a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/unload": { + "put": { + "description": "", + "operationId": "unloadTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid or can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Unload a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/resource-quotas": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDefaultResourceQuota", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the default quota", + "tags": [ + "resource-quotas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDefaultResourceQuota", + "parameters": [ + { + "description": "Default resource quota", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set the default quota", + "tags": [ + "resource-quotas" + ] + } + }, + "/resource-quotas/{tenant}/{namespace}/{bundle}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove resource quota for a namespace.", + "tags": [ + "resource-quotas" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get resource quota of a namespace bundle.", + "tags": [ + "resource-quotas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "description": "Resource quota for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set resource quota on a namespace.", + "tags": [ + "resource-quotas" + ] + } + }, + "/resourcegroups": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getResourceGroups", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the list of all the resourcegroups.", + "tags": [ + "resourcegroups" + ] + } + }, + "/resourcegroups/{resourcegroup}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "ResourceGroup doesn't exist" + }, + "409": { + "description": "ResourceGroup is in use" + } + }, + "summary": "Delete a resourcegroup.", + "tags": [ + "resourcegroups" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/ResourceGroup" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "ResourceGroup doesn't exist" + } + }, + "summary": "Get the rate limiters specified for a resourcegroup.", + "tags": [ + "resourcegroups" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "createOrUpdateResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + }, + { + "description": "Rate limiters for the resourcegroup", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceGroup" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "cluster doesn't exist" + } + }, + "summary": "Creates a new resourcegroup with the specified rate limiters", + "tags": [ + "resourcegroups" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/compatibility": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "testCompatibility", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/IsCompatibilityResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "test the schema compatibility", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schema": { + "delete": { + "description": "", + "operationId": "deleteSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DeleteSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Delete the schema of a topic", + "tags": [ + "schemas" + ] + }, + "get": { + "description": "", + "operationId": "getSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the schema of a topic", + "tags": [ + "schemas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "postSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PostSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "409": { + "description": "Incompatible schema" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "422": { + "description": "Invalid schema data" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Update the schema of a topic", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schema/{version}": { + "get": { + "description": "", + "operationId": "getSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the schema of a topic at a given version", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schemas": { + "get": { + "description": "", + "operationId": "getAllSchemas", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetAllVersionsSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the all schemas of a topic", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/version": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getVersionBySchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongSchemaVersion" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "422": { + "description": "Invalid schema data" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "get the version of the schema", + "tags": [ + "schemas" + ] + } + }, + "/tenants": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenants", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant doesn't exist" + } + }, + "summary": "Get the list of existing tenants.", + "tags": [ + "tenants" + ] + } + }, + "/tenants/{tenant}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + }, + "405": { + "description": "Broker doesn't allow forced deletion of tenants" + }, + "409": { + "description": "The tenant still has active namespaces" + } + }, + "summary": "Delete a tenant and all namespaces and topics under it.", + "tags": [ + "tenants" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenantAdmin", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + } + }, + "summary": "Get the admin configuration for a given tenant.", + "tags": [ + "tenants" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "This operation requires Pulsar super-user privileges.", + "operationId": "updateTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "TenantInfo", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/TenantInfo" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Tenant already exists" + }, + "412": { + "description": "Clusters do not exist" + } + }, + "summary": "Update the admins for a tenant.", + "tags": [ + "tenants" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "This operation requires Pulsar super-user privileges.", + "operationId": "createTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "TenantInfo", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/TenantInfo" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "409": { + "description": "Tenant already exists" + }, + "412": { + "description": "Clusters do not exist" + } + }, + "summary": "Create a new tenant.", + "tags": [ + "tenants" + ] + } + }, + "/worker-stats/functionsmetrics": { + "get": { + "description": "Requested should be executed by Monitoring agent on each worker to fetch the metrics", + "operationId": "getStats", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/WorkerFunctionInstanceStats" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have admin permission" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Get metrics for all functions owned by worker" + } + }, + "/worker-stats/metrics": { + "get": { + "description": "Request should be executed by Monitoring agent on each worker to fetch the worker-metrics", + "operationId": "getMetrics", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have admin permission" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Gets the metrics for Monitoring" + } + }, + "/worker/assignments": { + "get": { + "description": "", + "operationId": "getAssignments", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches information about which Pulsar Functions are assigned to which Pulsar clusters" + } + }, + "/worker/cluster": { + "get": { + "description": "", + "operationId": "getCluster", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/WorkerInfo" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches information about the Pulsar cluster running Pulsar Functions" + } + }, + "/worker/cluster/leader": { + "get": { + "description": "", + "operationId": "getClusterLeader", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/WorkerInfo" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches info about the leader node of the Pulsar cluster running Pulsar Functions" + } + }, + "/worker/cluster/leader/ready": { + "get": { + "description": "", + "operationId": "isLeaderReady", + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Checks if this node is the leader and is ready to service requests" + } + }, + "/worker/connectors": { + "get": { + "description": "", + "operationId": "getConnectorsList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode" + } + }, + "/worker/drain": { + "get": { + "description": "", + "operationId": "getDrainStatus", + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Get the status of any ongoing drain operation at this worker" + }, + "put": { + "description": "", + "operationId": "drain", + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "409": { + "description": "Drain already in progress" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Drains this worker, i.e., moves its work-assignments to other workers" + } + }, + "/worker/leader/drain": { + "get": { + "description": "", + "operationId": "getDrainStatusFromLeader", + "parameters": [ + { + "in": "query", + "name": "workerId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Get the status of any ongoing drain operation at the specified worker" + }, + "put": { + "description": "", + "operationId": "drainAtLeader", + "parameters": [ + { + "in": "query", + "name": "workerId", + "required": false, + "type": "string" + } + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "409": { + "description": "Drain already in progress" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Drains the specified worker, i.e., moves its work-assignments to other workers" + } + }, + "/worker/rebalance": { + "put": { + "description": "", + "operationId": "rebalance", + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Triggers a rebalance of functions to workers" + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "bookies" + }, + { + "name": "broker-stats" + }, + { + "name": "brokers" + }, + { + "name": "clusters" + }, + { + "name": "namespaces" + }, + { + "name": "non-persistent topic" + }, + { + "name": "persistent topic" + }, + { + "name": "resource-quotas" + }, + { + "name": "resourcegroups" + }, + { + "name": "schemas" + }, + { + "name": "tenants" + } + ] +} diff --git a/static/swagger/2.10.5/swaggerfunctions.json b/static/swagger/2.10.5/swaggerfunctions.json new file mode 100644 index 000000000000..83590d363841 --- /dev/null +++ b/static/swagger/2.10.5/swaggerfunctions.json @@ -0,0 +1,3469 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConsumerConfig": { + "properties": { + "consumerProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "poolMessages": { + "type": "boolean" + }, + "receiverQueueSize": { + "format": "int32", + "type": "integer" + }, + "regexPattern": { + "type": "boolean" + }, + "schemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schemaType": { + "type": "string" + }, + "serdeClassName": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "EncryptionContext": { + "properties": { + "algorithm": { + "type": "string" + }, + "batchSize": { + "format": "int32", + "type": "integer" + }, + "compressionType": { + "enum": [ + "NONE", + "LZ4", + "ZLIB", + "ZSTD", + "SNAPPY" + ], + "type": "string" + }, + "keys": { + "additionalProperties": { + "$ref": "#/definitions/EncryptionKey" + }, + "type": "object" + }, + "param": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "uncompressedMessageSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionKey": { + "properties": { + "keyValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionConfig": { + "properties": { + "autoAck": { + "type": "boolean" + }, + "batchBuilder": { + "type": "string" + }, + "className": { + "type": "string" + }, + "cleanupSubscription": { + "type": "boolean" + }, + "customRuntimeOptions": { + "type": "string" + }, + "customSchemaInputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "customSchemaOutputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "customSerdeInputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "deadLetterTopic": { + "type": "string" + }, + "exposePulsarAdminClientEnabled": { + "type": "boolean" + }, + "forwardSourceMessageProperty": { + "type": "boolean" + }, + "fqfn": { + "type": "string" + }, + "go": { + "type": "string" + }, + "inputSpecs": { + "additionalProperties": { + "$ref": "#/definitions/ConsumerConfig" + }, + "type": "object" + }, + "inputs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jar": { + "type": "string" + }, + "logTopic": { + "type": "string" + }, + "maxMessageRetries": { + "format": "int32", + "type": "integer" + }, + "maxPendingAsyncRequests": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "output": { + "type": "string" + }, + "outputSchemaType": { + "type": "string" + }, + "outputSerdeClassName": { + "type": "string" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "producerConfig": { + "$ref": "#/definitions/ProducerConfig" + }, + "py": { + "type": "string" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "retainKeyOrdering": { + "type": "boolean" + }, + "retainOrdering": { + "type": "boolean" + }, + "runtime": { + "enum": [ + "JAVA", + "PYTHON", + "GO" + ], + "type": "string" + }, + "runtimeFlags": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "subName": { + "type": "string" + }, + "subscriptionPosition": { + "enum": [ + "Latest", + "Earliest" + ], + "type": "string" + }, + "tenant": { + "type": "string" + }, + "timeoutMs": { + "format": "int64", + "type": "integer" + }, + "topicsPattern": { + "type": "string" + }, + "userConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "windowConfig": { + "$ref": "#/definitions/WindowConfig" + } + }, + "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" + }, + "FunctionInstanceStatsDataBaseImpl": { + "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" + }, + "FunctionInstanceStatsDataImpl": { + "properties": { + "1min": { + "$ref": "#/definitions/FunctionInstanceStatsDataBaseImpl" + }, + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "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" + }, + "FunctionInstanceStatsImpl": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "metrics": { + "$ref": "#/definitions/FunctionInstanceStatsData" + } + }, + "type": "object" + }, + "FunctionInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/FunctionInstanceStatusData" + } + }, + "type": "object" + }, + "FunctionInstanceStatusData": { + "properties": { + "averageLatency": { + "format": "double", + "type": "number" + }, + "error": { + "type": "string" + }, + "lastInvocationTime": { + "format": "int64", + "type": "integer" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestUserExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReceived": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSuccessfullyProcessed": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numUserExceptions": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionState": { + "properties": { + "byteValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "key": { + "type": "string" + }, + "numberValue": { + "format": "int64", + "type": "integer" + }, + "stringValue": { + "type": "string" + }, + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FunctionStatsImpl": { + "properties": { + "1min": { + "$ref": "#/definitions/FunctionInstanceStatsDataBaseImpl" + }, + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "instances": { + "items": { + "$ref": "#/definitions/FunctionInstanceStatsImpl" + }, + "type": "array" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FunctionStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/FunctionInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "InputStream": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Message": { + "properties": { + "brokerPublishTime": { + "format": "int64", + "type": "integer" + }, + "data": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "encryptionCtx": { + "$ref": "#/definitions/EncryptionContext" + }, + "eventTime": { + "format": "int64", + "type": "integer" + }, + "index": { + "format": "int64", + "type": "integer" + }, + "key": { + "type": "string" + }, + "keyBytes": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "messageId": { + "$ref": "#/definitions/MessageId" + }, + "orderingKey": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "producerName": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "publishTime": { + "format": "int64", + "type": "integer" + }, + "readerSchema": { + "$ref": "#/definitions/SchemaObject" + }, + "redeliveryCount": { + "format": "int32", + "type": "integer" + }, + "replicated": { + "type": "boolean" + }, + "replicatedFrom": { + "type": "string" + }, + "schemaVersion": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "sequenceId": { + "format": "int64", + "type": "integer" + }, + "topicName": { + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "MessageId": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProducerConfig": { + "properties": { + "batchBuilder": { + "type": "string" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "maxPendingMessages": { + "format": "int32", + "type": "integer" + }, + "maxPendingMessagesAcrossPartitions": { + "format": "int32", + "type": "integer" + }, + "useThreadLocalProducers": { + "type": "boolean" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Schema": { + "properties": { + "nativeSchema": { + "type": "object" + }, + "schemaInfo": { + "$ref": "#/definitions/SchemaInfo" + } + }, + "type": "object" + }, + "SchemaInfo": { + "properties": { + "name": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schema": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "schemaDefinition": { + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "SchemaObject": { + "properties": { + "nativeSchema": { + "type": "object" + }, + "schemaInfo": { + "$ref": "#/definitions/SchemaInfo" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "WindowConfig": { + "properties": { + "actualWindowFunctionClassName": { + "type": "string" + }, + "lateDataTopic": { + "type": "string" + }, + "maxLagMs": { + "format": "int64", + "type": "integer" + }, + "slidingIntervalCount": { + "format": "int32", + "type": "integer" + }, + "slidingIntervalDurationMs": { + "format": "int64", + "type": "integer" + }, + "timestampExtractorClassName": { + "type": "string" + }, + "watermarkEmitIntervalMs": { + "format": "int64", + "type": "integer" + }, + "windowLengthCount": { + "format": "int32", + "type": "integer" + }, + "windowLengthDurationMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Functions operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Functions REST API", + "version": "v3" + }, + "paths": { + "/functions/connectors": { + "get": { + "consumes": [ + "application/json" + ], + "deprecated": true, + "description": "", + "operationId": "getConnectorsList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listFunctions", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + } + }, + "summary": "Lists all Pulsar Functions currently deployed in a given namespace", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Pulsar Function was successfully deleted" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Deletes a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches information about a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a function (in any languages that you are familiar with) \nto a Pulsar cluster. Follow the steps below. \n1. Create a JSON object using some of the following parameters.\nA JSON value presenting configuration payload of a Pulsar Function.\n An example of the expected Pulsar Function can be found here.\n- **autoAck**\n Whether or not the framework acknowledges messages automatically.\n- **runtime**\n What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]\n- **resources**\n The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.\n- **className**\n The class name of a Pulsar Function.\n- **customSchemaInputs**\n The map of input topics to Schema class names (specified as a JSON object).\n- **customSerdeInputs**\n The map of input topics to SerDe class names (specified as a JSON object).\n- **deadLetterTopic**\n Messages that are not processed successfully are sent to `deadLetterTopic`.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime. Note that in thread mode, these flags have no impact.\n- **fqfn**\n The Fully Qualified Function Name (FQFN) for the Pulsar Function.\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **inputs**\n The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function.\n- **jar**\n Path to the JAR file for the Pulsar Function (if the Pulsar Function is written in Java). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **py**\n Path to the main Python file or Python wheel file for the Pulsar Function (if the Pulsar Function is written in Python).\n- **go**\n Path to the main Go executable binary for the Pulsar Function (if the Pulsar Function is written in Go).\n- **logTopic**\n The topic to which the logs of a Pulsar Function are produced.\n- **maxMessageRetries**\n How many times should we try to process a message before giving up.\n- **output**\n The output topic of a Pulsar Function (If none is specified, no output is written).\n- **outputSerdeClassName**\n The SerDe class to be used for messages output by the Pulsar Function.\n- **parallelism**\n The parallelism factor of a Pulsar Function (i.e. the number of a Pulsar Function instances to run).\n- **processingGuarantees**\n The processing guarantees (that is, delivery semantics) applied to the Pulsar Function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **retainOrdering**\n Function consumes and processes messages in order.\n- **outputSchemaType**\n Represents either a builtin schema type (for example: 'avro', 'json', ect) or the class name for a Schema implementation.- **subName**\n Pulsar source subscription name. User can specify a subscription-name for the input-topic consumer.\n- **windowConfig**\n The window configuration of a Pulsar Function.\n- **timeoutMs**\n The message timeout in milliseconds.\n- **topicsPattern**\n The topic pattern to consume from a list of topics under a namespace that match the pattern. [input] and [topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)\n- **userConfig**\n A map of user-defined configurations (specified as a JSON object).\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the Pulsar Function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **cleanupSubscription**\n Whether the subscriptions of a Pulsar Function created or used should be deleted when the Pulsar Function is deleted.\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/FunctionConfig" + }, + "x-examples": { + "text/plain": "Example \n\n 1. Create a JSON object. \n\n{\n\t\"inputs\": \"persistent://public/default/input-topic\",\n\t\"parallelism\": \"4\",\n\t\"output\": \"persistent://public/default/output-topic\",\n\t\"log-topic\": \"persistent://public/default/log-topic\",\n\t\"classname\": \"org.example.test.ExclamationFunction\",\n\t\"jar\": \"java-function-1.0-SNAPSHOT.jar\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python). \n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('functionConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully created" + }, + "400": { + "description": "Invalid request (The Pulsar Function already exists, etc.)" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Creates a new Pulsar Function in cluster mode", + "tags": [ + "functions" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.\n- **autoAck**\n Whether or not the framework acknowledges messages automatically.\n- **runtime**\n What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]\n- **resources**\n The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.\n- **className**\n The class name of a Pulsar Function.\n- **customSchemaInputs**\n The map of input topics to Schema class names (specified as a JSON object).\n- **customSerdeInputs**\n The map of input topics to SerDe class names (specified as a JSON object).\n- **deadLetterTopic**\n Messages that are not processed successfully are sent to `deadLetterTopic`.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime. Note that in thread mode, these flags have no impact.\n- **fqfn**\n The Fully Qualified Function Name (FQFN) for the Pulsar Function.\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **inputs**\n The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function.\n- **jar**\n Path to the JAR file for the Pulsar Function (if the Pulsar Function is written in Java). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **py**\n Path to the main Python file or Python wheel file for the Pulsar Function (if the Pulsar Function is written in Python).\n- **go**\n Path to the main Go executable binary for the Pulsar Function (if the Pulsar Function is written in Go).\n- **logTopic**\n The topic to which the logs of a Pulsar Function are produced.\n- **maxMessageRetries**\n How many times should we try to process a message before giving up.\n- **output**\n The output topic of a Pulsar Function (If none is specified, no output is written).\n- **outputSerdeClassName**\n The SerDe class to be used for messages output by the Pulsar Function.\n- **parallelism**\n The parallelism factor of a Pulsar Function (i.e. the number of a Pulsar Function instances to run).\n- **processingGuarantees**\n The processing guarantees (that is, delivery semantics) applied to the Pulsar Function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **retainOrdering**\n Function consumes and processes messages in order.\n- **outputSchemaType**\n Represents either a builtin schema type (for example: 'avro', 'json', ect) or the class name for a Schema implementation.- **subName**\n Pulsar source subscription name. User can specify a subscription-name for the input-topic consumer.\n- **windowConfig**\n The window configuration of a Pulsar Function.\n- **timeoutMs**\n The message timeout in milliseconds.\n- **topicsPattern**\n The topic pattern to consume from a list of topics under a namespace that match the pattern. [input] and [topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)\n- **userConfig**\n A map of user-defined configurations (specified as a JSON object).\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the Pulsar Function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **cleanupSubscription**\n Whether the subscriptions of a Pulsar Function created or used should be deleted when the Pulsar Function is deleted.\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/FunctionConfig" + }, + "x-examples": { + "application/json": "{\n \"inputs\": persistent://public/default/input-topic,\n \"parallelism\": 4\n \"output\": persistent://public/default/output-topic\n \"log-topic\": persistent://public/default/log-topic\n \"classname\": org.example.test.ExclamationFunction\n \"jar\": java-function-1.0-SNAPSHOT.jar\n}" + } + }, + { + "description": "The update options is for the Pulsar Function that needs to be updated.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully updated" + }, + "400": { + "description": "Invalid request (The Pulsar Function doesn't exist, etc.)" + }, + "403": { + "description": "The requester doesn't have admin permissions" + } + }, + "summary": "Updates a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Restart all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Start all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/state/{key}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionState", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The stats key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionState" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The key does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Fetch the current state associated with a Pulsar Function", + "tags": [ + "functions" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "putFunctionState", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Put the state associated with a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/stats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionStats", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionStatsImpl" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the stats of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the status of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Stop all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/trigger": { + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "triggerFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The value with which you want to trigger the Pulsar Function", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The path to the file that contains the data with which you'd like to trigger the Pulsar Function", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/InputStream" + } + }, + { + "description": "The specific topic name that the Pulsar Function consumes from which you want to inject the data to", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "408": { + "description": "Request timeout" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Triggers a Pulsar Function with a user-specified value or file data", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are restarted", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Restart an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances sre started. ", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Start an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInstanceStats", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionInstanceStatsDataImpl" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the stats of a Pulsar Function instance", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the status of a Pulsar Function instance", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are stopped. ", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Stop an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "functions" + } + ] +} diff --git a/static/swagger/2.10.5/swaggerlookup.json b/static/swagger/2.10.5/swaggerlookup.json new file mode 100644 index 000000000000..224562a78f7f --- /dev/null +++ b/static/swagger/2.10.5/swaggerlookup.json @@ -0,0 +1,319 @@ +{ + "basePath": "/lookup", + "definitions": { + "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" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CompletableFuture": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CompletableFutureByteBuf": { + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LookupData": { + "properties": { + "brokerUrl": { + "type": "string" + }, + "brokerUrlSsl": { + "type": "string" + }, + "brokerUrlTls": { + "type": "string" + }, + "httpUrl": { + "type": "string" + }, + "httpUrlTls": { + "type": "string" + }, + "nativeUrl": { + "type": "string" + } + }, + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for lookup operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Lookup REST API", + "version": "v2" + }, + "paths": { + "/v2/topic/{topic-domain}/{tenant}/{namespace}/{topic}": { + "get": { + "description": "", + "operationId": "TopicLookup_lookupTopicAsync", + "parameters": [ + { + "in": "path", + "name": "topic-domain", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "listenerName", + "required": false, + "type": "string" + }, + { + "in": "header", + "name": "X-Pulsar-ListenerName", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LookupData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + } + }, + "summary": "Get the owner broker of the given topic.", + "tags": [ + "lookup" + ] + } + }, + "/v2/topic/{topic-domain}/{tenant}/{namespace}/{topic}/bundle": { + "get": { + "description": "", + "operationId": "TopicLookup_getNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "topic-domain", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "405": { + "description": "Invalid topic domain type" + } + }, + "summary": "Get the namespace bundle which the given topic belongs to.", + "tags": [ + "lookup" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "lookup" + } + ] +} diff --git a/static/swagger/2.10.5/swaggerpackages.json b/static/swagger/2.10.5/swaggerpackages.json new file mode 100644 index 000000000000..04d19a0adcdf --- /dev/null +++ b/static/swagger/2.10.5/swaggerpackages.json @@ -0,0 +1,1970 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PackageMetadata": { + "properties": { + "contact": { + "type": "string" + }, + "createTime": { + "format": "int64", + "type": "integer" + }, + "description": { + "type": "string" + }, + "modificationTime": { + "format": "int64", + "type": "integer" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "StreamingOutput": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Packages operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Packages REST API", + "version": "v3" + }, + "paths": { + "/packages/{type}/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listPackages", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return all the specified type package names in the specified namespace.", + "schema": { + "$ref": "#/definitions/PackageMetadata" + } + }, + "412": { + "description": "The package type is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get all the specified type packages in a namespace.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listPackageVersion", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the package versions of the specified package.", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get all the versions of a package.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}/{version}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "delete", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Delete the specified package successfully." + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Delete a package with the package name.", + "tags": [ + "packages" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "download", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Download the specified package successfully.", + "schema": { + "$ref": "#/definitions/StreamingOutput" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Download a package with the package name.", + "tags": [ + "packages" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "upload", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Upload the specified package successfully." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Upload a package.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}/{version}/metadata": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMeta", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the metadata of the specified package.", + "schema": { + "$ref": "#/definitions/PackageMetadata" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get the metadata of a package.", + "tags": [ + "packages" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "updateMeta", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Update the metadata of the specified package successfully." + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Update the metadata of a package.", + "tags": [ + "packages" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "packages" + } + ] +} diff --git a/static/swagger/2.10.5/swaggersink.json b/static/swagger/2.10.5/swaggersink.json new file mode 100644 index 000000000000..6fefb2feb4e0 --- /dev/null +++ b/static/swagger/2.10.5/swaggersink.json @@ -0,0 +1,2761 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConfigFieldDefinition": { + "properties": { + "attributes": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "typeName": { + "type": "string" + } + }, + "type": "object" + }, + "ConnectorDefinition": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sinkClass": { + "type": "string" + }, + "sinkConfigClass": { + "type": "string" + }, + "sourceClass": { + "type": "string" + }, + "sourceConfigClass": { + "type": "string" + } + }, + "type": "object" + }, + "ConsumerConfig": { + "properties": { + "consumerProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "poolMessages": { + "type": "boolean" + }, + "receiverQueueSize": { + "format": "int32", + "type": "integer" + }, + "regexPattern": { + "type": "boolean" + }, + "schemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schemaType": { + "type": "string" + }, + "serdeClassName": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SinkConfig": { + "properties": { + "archive": { + "type": "string" + }, + "autoAck": { + "type": "boolean" + }, + "className": { + "type": "string" + }, + "cleanupSubscription": { + "type": "boolean" + }, + "configs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "customRuntimeOptions": { + "type": "string" + }, + "deadLetterTopic": { + "type": "string" + }, + "inputSpecs": { + "additionalProperties": { + "$ref": "#/definitions/ConsumerConfig" + }, + "type": "object" + }, + "inputs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxMessageRetries": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "negativeAckRedeliveryDelayMs": { + "format": "int64", + "type": "integer" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "retainKeyOrdering": { + "type": "boolean" + }, + "retainOrdering": { + "type": "boolean" + }, + "runtimeFlags": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "sourceSubscriptionName": { + "type": "string" + }, + "sourceSubscriptionPosition": { + "enum": [ + "Latest", + "Earliest" + ], + "type": "string" + }, + "tenant": { + "type": "string" + }, + "timeoutMs": { + "format": "int64", + "type": "integer" + }, + "topicToSchemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicToSchemaType": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicToSerdeClassName": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicsPattern": { + "type": "string" + } + }, + "type": "object" + }, + "SinkInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/SinkInstanceStatusData" + } + }, + "type": "object" + }, + "SinkInstanceStatusData": { + "properties": { + "error": { + "type": "string" + }, + "lastReceivedTime": { + "format": "int64", + "type": "integer" + }, + "latestSinkExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReadFromPulsar": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSinkExceptions": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numWrittenToSink": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "SinkStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/SinkInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Sink operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Sink REST API", + "version": "v3" + }, + "paths": { + "/sinks/builtinsinks": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Get builtin sinks successfully.", + "schema": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + } + }, + "summary": "Fetches the list of built-in Pulsar IO sinks", + "tags": [ + "sinks" + ] + } + }, + "/sinks/builtinsinks/{name}/configdefinition": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkConfigDefinition", + "parameters": [ + { + "description": "The name of the builtin sink", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConfigFieldDefinition" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "builtin sink does not exist" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about config fields associated with the specified builtin sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/reloadBuiltInSinks": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "reloadSinks", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Reload the built-in connectors, including Sources and Sinks", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listSinks", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid list request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "500": { + "description": "Internal server error (failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Lists all Pulsar Sinks currently deployed in a given namespace", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Pulsar Sink was successfully deleted" + }, + "400": { + "description": "Invalid deregister request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "408": { + "description": "Got InterruptedException while deregistering the Pulsar Sink" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to deregister, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Deletes a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a sink (in any languages that you are familiar with) to a Pulsar cluster. Follow the steps below.\n1. Create a JSON object using some of the following parameters.\nA JSON value presenting config payload of a Pulsar Sink. All available configuration options are:\n- **classname**\n The class name of a Pulsar Sink if archive is file-url-path (file://)\n- **sourceSubscriptionName**\n Pulsar source subscription name if user wants a specific\n subscription-name for input-topic consumer\n- **inputs**\n The input topic or topics of a Pulsar Sink (specified as a JSON array)\n- **topicsPattern**\n TopicsPattern to consume from list of topics under a namespace that match the pattern. [input] and [topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)- **topicToSerdeClassName**\n The map of input topics to SerDe class names (specified as a JSON object)\n- **topicToSchemaType**\n The map of input topics to Schema types or class names (specified as a JSON object)\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **configs**\n The map of configs (specified as a JSON object)\n- **secrets**\n a map of secretName(aka how the secret is going to be \n accessed in the function via context) to an object that \n encapsulates how the secret is fetched by the underlying \n secrets provider. The type of an value here can be found by the \n SecretProviderConfigurator.getSecretObjectType() method. (specified as a JSON object)\n- **parallelism**\n The parallelism factor of a Pulsar Sink (i.e. the number of a Pulsar Sink instances to run \n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Sink. Possible Values: \"ATLEAST_ONCE\", \"ATMOST_ONCE\", \"EFFECTIVELY_ONCE\"\n- **retainOrdering**\n Boolean denotes whether the Pulsar Sink consumes and processes messages in order\n- **resources**\n {\"cpu\": 1, \"ram\": 2, \"disk\": 3} The CPU (in cores), RAM (in bytes) and disk (in bytes) that needs to be allocated per Pulsar Sink instance (applicable only to Docker runtime)\n- **autoAck**\n Boolean denotes whether or not the framework will automatically acknowledge messages\n- **timeoutMs**\n Long denotes the message timeout in milliseconds\n- **cleanupSubscription**\n Boolean denotes whether the subscriptions the functions created/used should be deleted when the functions is deleted\n- **runtimeFlags**\n Any flags that you want to pass to the runtime as a single string\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SinkConfig" + }, + "x-examples": { + "text/plain": "Example \n\n 1. Create a JSON object. \n\n{\n\t\"classname\": \"org.example.MySinkTest\",\n\t\"inputs\": [\"persistent://public/default/sink-input\"],\n\t\"processingGuarantees\": \"EFFECTIVELY_ONCE\",\n\t\"parallelism\": \"10\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python).\n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('sinkConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Sink successfully created" + }, + "400": { + "description": "Invalid request (The Pulsar Sink already exists, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to get tenant data, failed to process package, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Creates a new Pulsar Sink in cluster mode", + "tags": [ + "sinks" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting config payload of a Pulsar Sink. All available configuration options are:\n- **classname**\n The class name of a Pulsar Sink if archive is file-url-path (file://)\n- **sourceSubscriptionName**\n Pulsar source subscription name if user wants a specific\n subscription-name for input-topic consumer\n- **inputs**\n The input topic or topics of a Pulsar Sink (specified as a JSON array)\n- **topicsPattern**\n TopicsPattern to consume from list of topics under a namespace that match the pattern. [input] and [topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)- **topicToSerdeClassName**\n The map of input topics to SerDe class names (specified as a JSON object)\n- **topicToSchemaType**\n The map of input topics to Schema types or class names (specified as a JSON object)\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **configs**\n The map of configs (specified as a JSON object)\n- **secrets**\n a map of secretName(aka how the secret is going to be \n accessed in the function via context) to an object that \n encapsulates how the secret is fetched by the underlying \n secrets provider. The type of an value here can be found by the \n SecretProviderConfigurator.getSecretObjectType() method. (specified as a JSON object)\n- **parallelism**\n The parallelism factor of a Pulsar Sink (i.e. the number of a Pulsar Sink instances to run \n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Sink. Possible Values: \"ATLEAST_ONCE\", \"ATMOST_ONCE\", \"EFFECTIVELY_ONCE\"\n- **retainOrdering**\n Boolean denotes whether the Pulsar Sink consumes and processes messages in order\n- **resources**\n {\"cpu\": 1, \"ram\": 2, \"disk\": 3} The CPU (in cores), RAM (in bytes) and disk (in bytes) that needs to be allocated per Pulsar Sink instance (applicable only to Docker runtime)\n- **autoAck**\n Boolean denotes whether or not the framework will automatically acknowledge messages\n- **timeoutMs**\n Long denotes the message timeout in milliseconds\n- **cleanupSubscription**\n Boolean denotes whether the subscriptions the functions created/used should be deleted when the functions is deleted\n- **runtimeFlags**\n Any flags that you want to pass to the runtime as a single string\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SinkConfig" + }, + "x-examples": { + "application/json": "{\n\t\"classname\": \"org.example.SinkStressTest\",\n\t\"inputs\": [\"persistent://public/default/sink-input\"],\n\t\"processingGuarantees\": \"EFFECTIVELY_ONCE\",\n\t\"parallelism\": 5\n}" + } + }, + { + "description": "Update options for the Pulsar Sink", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Sink successfully updated" + }, + "400": { + "description": "Invalid request (The Pulsar Sink doesn't exist, update contains no change, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "The Pulsar Sink doesn't exist" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to process package, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Updates a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid restart request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to restart the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid start request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to start the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "Invalid get status request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Sink running in cluster mode", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid stop request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to stop the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "Invalid restart request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to restart the instance of a Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid start request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to start the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "The Pulsar Sink instance does not exist" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal Server Error (got exception while getting status, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Sink instance", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid stop request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink instance does not exist" + }, + "500": { + "description": "Internal server error (failed to stop the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "sinks" + } + ] +} diff --git a/static/swagger/2.10.5/swaggersource.json b/static/swagger/2.10.5/swaggersource.json new file mode 100644 index 000000000000..d310251f6e25 --- /dev/null +++ b/static/swagger/2.10.5/swaggersource.json @@ -0,0 +1,2712 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BatchSourceConfig": { + "properties": { + "discoveryTriggererClassName": { + "type": "string" + }, + "discoveryTriggererConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConfigFieldDefinition": { + "properties": { + "attributes": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "typeName": { + "type": "string" + } + }, + "type": "object" + }, + "ConnectorDefinition": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sinkClass": { + "type": "string" + }, + "sinkConfigClass": { + "type": "string" + }, + "sourceClass": { + "type": "string" + }, + "sourceConfigClass": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProducerConfig": { + "properties": { + "batchBuilder": { + "type": "string" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "maxPendingMessages": { + "format": "int32", + "type": "integer" + }, + "maxPendingMessagesAcrossPartitions": { + "format": "int32", + "type": "integer" + }, + "useThreadLocalProducers": { + "type": "boolean" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SourceConfig": { + "properties": { + "archive": { + "type": "string" + }, + "batchBuilder": { + "type": "string" + }, + "batchSourceConfig": { + "$ref": "#/definitions/BatchSourceConfig" + }, + "className": { + "type": "string" + }, + "configs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "customRuntimeOptions": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "producerConfig": { + "$ref": "#/definitions/ProducerConfig" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "runtimeFlags": { + "type": "string" + }, + "schemaType": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "serdeClassName": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "topicName": { + "type": "string" + } + }, + "type": "object" + }, + "SourceInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/SourceInstanceStatusData" + } + }, + "type": "object" + }, + "SourceInstanceStatusData": { + "properties": { + "error": { + "type": "string" + }, + "lastReceivedTime": { + "format": "int64", + "type": "integer" + }, + "latestSourceExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReceivedFromSource": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSourceExceptions": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numWritten": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "SourceStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/SourceInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Source operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Source REST API", + "version": "v3" + }, + "paths": { + "/sources/builtinsources": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches the list of built-in Pulsar IO sources", + "tags": [ + "sources" + ] + } + }, + "/sources/builtinsources/{name}/configdefinition": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceConfigDefinition", + "parameters": [ + { + "description": "The name of the builtin source", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConfigFieldDefinition" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "builtin source does not exist" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about config fields associated with the specified builtin source", + "tags": [ + "sources" + ] + } + }, + "/sources/reloadBuiltInSources": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "reloadSources", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Reload the built-in connectors, including Sources and Sinks", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listSources", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Lists all Pulsar Sources currently deployed in a given namespace", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The function was successfully deleted" + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "408": { + "description": "Request timeout" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Deletes a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a source (in any languages that you are familiar with) to a Pulsar cluster. Follow the steps below.\n1. Create a JSON object using some of the following parameters.\nA JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SourceConfig" + }, + "x-examples": { + "text/plain": "Example \n\n1. Create a JSON object. \n\n{\n\t\"tenant\": \"public\",\n\t\"namespace\": \"default\",\n\t\"name\": \"pulsar-io-mysql\",\n\t\"className\": \"TestSourceMysql\",\n\t\"topicName\": \"pulsar-io-mysql\",\n\t\"parallelism\": \"1\",\n\t\"archive\": \"/connectors/pulsar-io-mysql-0.0.1.nar\",\n\t\"schemaType\": \"avro\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python). \n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('sourceConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully created" + }, + "400": { + "description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Creates a new Pulsar Source in cluster mode", + "tags": [ + "sources" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Pulsar Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method.\n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SourceConfig" + }, + "x-examples": { + "application/json": "{\n \"tenant\": public\n \"namespace\": default\n \"name\": pulsar-io-mysql\n \"className\": TestSourceMysql\n \"topicName\": pulsar-io-mysql\n \"parallelism\": 1\n \"archive\": /connectors/pulsar-io-mysql-0.0.1.nar\n \"schemaType\": avro\n}" + } + }, + { + "description": "Update options for Pulsar Source", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully updated" + }, + "400": { + "description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Updates a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Source running in cluster mode", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart an instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start an instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Source instance", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "sources" + } + ] +} diff --git a/static/swagger/2.10.5/swaggertransactions.json b/static/swagger/2.10.5/swaggertransactions.json new file mode 100644 index 000000000000..c6d52b5c3487 --- /dev/null +++ b/static/swagger/2.10.5/swaggertransactions.json @@ -0,0 +1,975 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "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" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Transactions operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Transactions REST API", + "version": "v3" + }, + "paths": { + "/transactions/coordinatorInternalStats/{coordinatorId}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getCoordinatorInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "coordinatorId", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Transaction coordinator not found" + }, + "405": { + "description": "Broker don't use MLTransactionMetadataStore!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get coordinator internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/coordinatorStats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getCoordinatorStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "format": "int32", + "in": "query", + "name": "coordinatorId", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Transaction coordinator not found" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction coordinator stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/coordinators": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_listCoordinators", + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "List transaction coordinators.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/pendingAckInternalStats/{tenant}/{namespace}/{topic}/{subName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPendingAckInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subscription name doesn't exist" + }, + "405": { + "description": "Pending ack handle don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction pending ack internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/pendingAckStats/{tenant}/{namespace}/{topic}/{subName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPendingAckStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "lowWaterMarks", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subName doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction pending ack stats in topic.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/positionStatsInPendingAck/{tenant}/{namespace}/{topic}/{subName}/{ledgerId}/{entryId}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPositionStatsInPendingAck", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "format": "int32", + "in": "query", + "name": "batchIndex", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subscription name doesn't exist" + }, + "405": { + "description": "Pending ack handle don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get position stats in pending ack.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/slowTransactions/{timeout}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getSlowTransactions", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "timeout", + "required": true, + "type": "string" + }, + { + "format": "int32", + "in": "query", + "name": "coordinatorId", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic don't owner by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or coordinator or transaction doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get slow transactions.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionBufferInternalStats/{tenant}/{namespace}/{topic}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionBufferInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Transaction buffer don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not enable transaction" + } + }, + "summary": "Get transaction buffer internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionBufferStats/{tenant}/{namespace}/{topic}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionBufferStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "lowWaterMarks", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "segmentStats", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction buffer stats in topic.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionCoordinator/replicas": { + "post": { + "consumes": [ + "application/json" + ], + "operationId": "Transactions_scaleTransactionCoordinators", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "406": { + "description": "The number of replicas should be more than the current number of transaction coordinator replicas" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionInBufferStats/{tenant}/{namespace}/{topic}/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionInBufferStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction state in transaction buffer.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionInPendingAckStats/{tenant}/{namespace}/{topic}/{subName}/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionInPendingAckStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction state in pending ack.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionMetadata/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionMetadata", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or coordinator or transaction doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction metadata", + "tags": [ + "transactions" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "transactions" + } + ] +} diff --git a/static/swagger/2.10.5/v2/swagger.json b/static/swagger/2.10.5/v2/swagger.json new file mode 100644 index 000000000000..754d854cd211 --- /dev/null +++ b/static/swagger/2.10.5/v2/swagger.json @@ -0,0 +1,30666 @@ +{ + "basePath": "/admin/v2", + "definitions": { + "AllocatorStats": { + "properties": { + "directArenas": { + "items": { + "$ref": "#/definitions/PoolArenaStats" + }, + "type": "array" + }, + "heapArenas": { + "items": { + "$ref": "#/definitions/PoolArenaStats" + }, + "type": "array" + }, + "normalCacheSize": { + "format": "int32", + "type": "integer" + }, + "numDirectArenas": { + "format": "int32", + "type": "integer" + }, + "numHeapArenas": { + "format": "int32", + "type": "integer" + }, + "numThreadLocalCaches": { + "format": "int32", + "type": "integer" + }, + "smallCacheSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthPolicies": { + "properties": { + "namespaceAuthentication": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "subscriptionAuthentication": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "topicAuthentication": { + "additionalProperties": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthenticationDataSource": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/Certificate" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthenticationParameters": { + "properties": { + "clientAuthenticationDataSource": { + "$ref": "#/definitions/AuthenticationDataSource" + }, + "clientRole": { + "type": "string" + }, + "originalPrincipal": { + "type": "string" + } + }, + "type": "object" + }, + "AutoFailoverPolicyData": { + "properties": { + "parameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "policyType": { + "enum": [ + "min_available" + ], + "type": "string" + } + }, + "type": "object" + }, + "AutoSubscriptionCreationOverride": { + "properties": { + "allowAutoSubscriptionCreation": { + "type": "boolean" + } + }, + "type": "object" + }, + "AutoTopicCreationOverride": { + "properties": { + "allowAutoTopicCreation": { + "type": "boolean" + }, + "defaultNumPartitions": { + "format": "int32", + "type": "integer" + }, + "topicType": { + "type": "string" + } + }, + "type": "object" + }, + "BacklogQuota": { + "properties": { + "limit": { + "format": "int64", + "type": "integer" + }, + "limitSize": { + "format": "int64", + "type": "integer" + }, + "limitTime": { + "format": "int32", + "type": "integer" + }, + "policy": { + "enum": [ + "producer_request_hold", + "producer_exception", + "consumer_backlog_eviction" + ], + "type": "string" + } + }, + "type": "object" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BookieAffinityGroupData": { + "properties": { + "bookkeeperAffinityGroupPrimary": { + "type": "string" + }, + "bookkeeperAffinityGroupSecondary": { + "type": "string" + } + }, + "type": "object" + }, + "BookieInfo": { + "properties": { + "hostname": { + "type": "string" + }, + "rack": { + "type": "string" + } + }, + "type": "object" + }, + "BookiesClusterInfo": { + "properties": { + "bookies": { + "items": { + "$ref": "#/definitions/RawBookieInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "BrokerInfo": { + "properties": { + "serviceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "BrokerNamespaceIsolationData": { + "description": "The namespace isolation data for a given broker", + "properties": { + "brokerName": { + "description": "The broker name", + "example": "broker1:8080", + "type": "string" + }, + "namespaceRegex": { + "description": "The namespace-isolation policies attached to this broker", + "items": { + "type": "string" + }, + "type": "array" + }, + "policyName": { + "description": "Policy name", + "example": "my-policy", + "type": "string" + }, + "primary": { + "type": "boolean" + } + }, + "type": "object" + }, + "BundlesData": { + "properties": { + "boundaries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "numBundles": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "ClusterData": { + "description": "The configuration data for a cluster", + "properties": { + "authenticationParameters": { + "description": "Authentication parameters when client would like to connect to cluster.", + "type": "string" + }, + "authenticationPlugin": { + "description": "Authentication plugin when client would like to connect to cluster.", + "example": "org.apache.pulsar.client.impl.auth.AuthenticationToken", + "type": "string" + }, + "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" + }, + "brokerClientTlsTrustStore": { + "description": "TLS TrustStore path for internal client used by the internal client to authenticate with Pulsar brokers", + "type": "string" + }, + "brokerClientTlsTrustStorePassword": { + "description": "TLS TrustStore password for internal client used by the internal client to authenticate with Pulsar brokers", + "type": "string" + }, + "brokerClientTlsTrustStoreType": { + "description": "TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers", + "example": "JKS", + "type": "string" + }, + "brokerClientTrustCertsFilePath": { + "description": "Path for the trusted TLS certificate file for outgoing connection to a server (broker)", + "type": "string" + }, + "brokerServiceUrl": { + "description": "The broker service url (for produce and consume operations)", + "example": "pulsar://pulsar.example.com:6650", + "type": "string" + }, + "brokerServiceUrlTls": { + "description": "The secured broker service url (for produce and consume operations)", + "example": "pulsar+ssl://pulsar.example.com:6651", + "type": "string" + }, + "listenerName": { + "description": "listenerName when client would like to connect to cluster", + "type": "string" + }, + "peerClusterNames": { + "description": "A set of peer cluster names", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "proxyProtocol": { + "description": "protocol to decide type of proxy routing eg: SNI-routing", + "enum": [ + "SNI" + ], + "example": "SNI", + "type": "string" + }, + "proxyServiceUrl": { + "description": "Proxy-service url when client would like to connect to broker via proxy.", + "example": "pulsar+ssl://ats-proxy.example.com:4443 or pulsar://ats-proxy.example.com:4080", + "type": "string" + }, + "serviceUrl": { + "description": "The HTTP rest service URL (for admin operations)", + "example": "http://pulsar.example.com:8080", + "type": "string" + }, + "serviceUrlTls": { + "description": "The HTTPS rest service URL (for admin operations)", + "example": "https://pulsar.example.com:8443", + "type": "string" + }, + "tlsAllowInsecureConnection": { + "description": "Allow TLS connections to servers whose certificate cannot be be verified to have been signed by a trusted certificate authority.", + "type": "boolean" + } + }, + "type": "object" + }, + "CompactionStats": { + "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" + }, + "CompletableFuturePartitionedTopicMetadata": { + "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" + }, + "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" + }, + "ContextAttributes": { + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "CursorDetails": { + "properties": { + "cursorBacklog": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerId": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CursorStats": { + "properties": { + "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" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DelayedDeliveryPolicies": { + "properties": { + "active": { + "type": "boolean" + }, + "tickTime": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeleteSchemaResponse": { + "properties": { + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "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" + }, + "DoubleBuilder": { + "type": "object" + }, + "FailureDomain": { + "description": "The data of a failure domain configuration in a cluster", + "properties": { + "brokers": { + "description": "The collection of brokers in the same failure domain", + "example": "[ 'broker-1', 'broker-2' ]", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionInstanceStatsData": { + "properties": { + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "oneMin": { + "$ref": "#/definitions/FunctionInstanceStatsDataBase" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userMetrics": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "type": "object" + } + }, + "type": "object" + }, + "FunctionInstanceStatsDataBase": { + "properties": { + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Functions": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsV2": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsV2WorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "FunctionsWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetAllVersionsSchemaResponse": { + "properties": { + "getSchemaResponses": { + "items": { + "$ref": "#/definitions/GetSchemaResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetSchemaResponse": { + "properties": { + "data": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "timestamp": { + "format": "int64", + "type": "integer" + }, + "type": { + "enum": [ + "NONE", + "STRING", + "JSON", + "PROTOBUF", + "AVRO", + "BOOLEAN", + "INT8", + "INT16", + "INT32", + "INT64", + "FLOAT", + "DOUBLE", + "DATE", + "TIME", + "TIMESTAMP", + "KEY_VALUE", + "INSTANT", + "LOCAL_DATE", + "LOCAL_TIME", + "LOCAL_DATE_TIME", + "PROTOBUF_NATIVE", + "BYTES", + "AUTO", + "AUTO_CONSUME", + "AUTO_PUBLISH" + ], + "type": "string" + }, + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InactiveTopicPolicies": { + "properties": { + "deleteWhileInactive": { + "type": "boolean" + }, + "inactiveTopicDeleteMode": { + "enum": [ + "delete_when_no_subscriptions", + "delete_when_subscriptions_caught_up" + ], + "type": "string" + }, + "maxInactiveDurationSeconds": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "InternalConfigurationData": { + "properties": { + "bookkeeperMetadataServiceUri": { + "type": "string" + }, + "configurationMetadataStoreUrl": { + "type": "string" + }, + "configurationStoreServers": { + "type": "string" + }, + "ledgersRootPath": { + "type": "string" + }, + "metadataStoreUrl": { + "type": "string" + }, + "stateStorageServiceUrl": { + "type": "string" + }, + "zookeeperServers": { + "type": "string" + } + }, + "type": "object" + }, + "IsCompatibilityResponse": { + "properties": { + "compatibility": { + "type": "boolean" + }, + "schemaCompatibilityStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "KubernetesContainerFactory": { + "properties": { + "changeConfigMap": { + "type": "string" + }, + "changeConfigMapNamespace": { + "type": "string" + }, + "configAdminCLI": { + "type": "string" + }, + "cpuOverCommitRatio": { + "format": "double", + "type": "number" + }, + "customLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expectedMetricsCollectionInterval": { + "format": "int32", + "type": "integer" + }, + "extraFunctionDependenciesDir": { + "type": "string" + }, + "functionDockerImages": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "functionInstanceClassPath": { + "type": "string" + }, + "gracePeriodSeconds": { + "format": "int32", + "type": "integer" + }, + "grpcPort": { + "format": "int32", + "type": "integer" + }, + "imagePullPolicy": { + "type": "string" + }, + "installUserCodeDependencies": { + "type": "boolean" + }, + "jobName": { + "type": "string" + }, + "jobNamespace": { + "type": "string" + }, + "k8Uri": { + "type": "string" + }, + "memoryOverCommitRatio": { + "format": "double", + "type": "number" + }, + "metricsPort": { + "format": "int32", + "type": "integer" + }, + "narExtractionDirectory": { + "type": "string" + }, + "percentMemoryPadding": { + "format": "int32", + "type": "integer" + }, + "pulsarAdminUrl": { + "type": "string" + }, + "pulsarDockerImageName": { + "type": "string" + }, + "pulsarRootDir": { + "type": "string" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pythonDependencyRepository": { + "type": "string" + }, + "pythonExtraDependencyRepository": { + "type": "string" + }, + "submittingInsidePod": { + "type": "boolean" + } + }, + "type": "object" + }, + "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" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "LoadReport": { + "properties": { + "allocatedBandwidthIn": { + "format": "double", + "type": "number" + }, + "allocatedBandwidthOut": { + "format": "double", + "type": "number" + }, + "allocatedCPU": { + "format": "double", + "type": "number" + }, + "allocatedMemory": { + "format": "double", + "type": "number" + }, + "allocatedMsgRateIn": { + "format": "double", + "type": "number" + }, + "allocatedMsgRateOut": { + "format": "double", + "type": "number" + }, + "bandwidthIn": { + "$ref": "#/definitions/ResourceUsage" + }, + "bandwidthOut": { + "$ref": "#/definitions/ResourceUsage" + }, + "brokerVersionString": { + "type": "string" + }, + "bundleGains": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "bundleLosses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "bundleStats": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceBundleStats" + }, + "type": "object" + }, + "cpu": { + "$ref": "#/definitions/ResourceUsage" + }, + "directMemory": { + "$ref": "#/definitions/ResourceUsage" + }, + "lastUpdate": { + "format": "int64", + "type": "integer" + }, + "loadReportType": { + "type": "string" + }, + "memory": { + "$ref": "#/definitions/ResourceUsage" + }, + "msgRateIn": { + "format": "double", + "type": "number" + }, + "msgRateOut": { + "format": "double", + "type": "number" + }, + "msgThroughputIn": { + "format": "double", + "type": "number" + }, + "msgThroughputOut": { + "format": "double", + "type": "number" + }, + "name": { + "type": "string" + }, + "nonPersistentTopicsEnabled": { + "type": "boolean" + }, + "numBundles": { + "format": "int32", + "type": "integer" + }, + "numConsumers": { + "format": "int32", + "type": "integer" + }, + "numProducers": { + "format": "int32", + "type": "integer" + }, + "numTopics": { + "format": "int32", + "type": "integer" + }, + "overLoaded": { + "type": "boolean" + }, + "persistentTopicsEnabled": { + "type": "boolean" + }, + "preAllocatedBandwidthIn": { + "format": "double", + "type": "number" + }, + "preAllocatedBandwidthOut": { + "format": "double", + "type": "number" + }, + "preAllocatedCPU": { + "format": "double", + "type": "number" + }, + "preAllocatedMemory": { + "format": "double", + "type": "number" + }, + "preAllocatedMsgRateIn": { + "format": "double", + "type": "number" + }, + "preAllocatedMsgRateOut": { + "format": "double", + "type": "number" + }, + "protocols": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pulsarServiceUrlTls": { + "type": "string" + }, + "systemResourceUsage": { + "$ref": "#/definitions/SystemResourceUsage" + }, + "timestamp": { + "format": "int64", + "type": "integer" + }, + "underLoaded": { + "type": "boolean" + }, + "webServiceUrl": { + "type": "string" + }, + "webServiceUrlTls": { + "type": "string" + } + }, + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "LongRunningProcessStatus": { + "properties": { + "lastError": { + "type": "string" + }, + "status": { + "enum": [ + "NOT_RUN", + "RUNNING", + "SUCCESS", + "ERROR" + ], + "type": "string" + } + }, + "type": "object" + }, + "LongSchemaVersion": { + "properties": { + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "MemoryLimit": { + "properties": { + "absoluteValue": { + "format": "int64", + "type": "integer" + }, + "percentOfMaxDirectMemory": { + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "MessageId": { + "type": "object" + }, + "Metrics": { + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "NamespaceBundleStats": { + "properties": { + "cacheSize": { + "format": "int64", + "type": "integer" + }, + "consumerCount": { + "format": "int32", + "type": "integer" + }, + "msgRateIn": { + "format": "double", + "type": "number" + }, + "msgRateOut": { + "format": "double", + "type": "number" + }, + "msgThroughputIn": { + "format": "double", + "type": "number" + }, + "msgThroughputOut": { + "format": "double", + "type": "number" + }, + "producerCount": { + "format": "int32", + "type": "integer" + }, + "topics": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "NamespaceIsolationData": { + "description": "The data of namespace isolation configuration", + "properties": { + "auto_failover_policy": { + "$ref": "#/definitions/AutoFailoverPolicyData", + "description": "The data of auto-failover policy configuration", + "example": "{ \"policy_type\": \"min_available\" \"parameters\": { \"\": \"\" }}" + }, + "namespaces": { + "description": "The list of namespaces to apply this namespace isolation data", + "items": { + "type": "string" + }, + "type": "array" + }, + "primary": { + "description": "The list of primary brokers for serving the list of namespaces in this isolation policy", + "items": { + "type": "string" + }, + "type": "array" + }, + "secondary": { + "description": "The list of secondary brokers for serving the list of namespaces in this isolation policy", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NamespaceOwnershipStatus": { + "properties": { + "broker_assignment": { + "enum": [ + "primary", + "secondary", + "shared" + ], + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "is_controlled": { + "type": "boolean" + } + }, + "type": "object" + }, + "NonPersistentPublisherStats": { + "properties": { + "accessMode": { + "enum": [ + "Shared", + "Exclusive", + "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" + }, + "durable": { + "type": "boolean" + }, + "earliestMsgPublishTimeInBacklog": { + "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" + }, + "NonPersistentTopicStats": { + "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" + }, + "earliestMsgPublishTimeInBacklogs": { + "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" + }, + "publishers": { + "items": { + "$ref": "#/definitions/NonPersistentPublisherStats" + }, + "type": "array" + }, + "replication": { + "additionalProperties": { + "$ref": "#/definitions/NonPersistentReplicatorStats" + }, + "type": "object" + }, + "storageSize": { + "format": "int64", + "type": "integer" + }, + "subscriptions": { + "additionalProperties": { + "$ref": "#/definitions/NonPersistentSubscriptionStats" + }, + "type": "object" + }, + "topicEpoch": { + "format": "int64", + "type": "integer" + }, + "waitingPublishers": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OffloadPolicies": { + "properties": { + "fileSystemProfilePath": { + "type": "string" + }, + "fileSystemURI": { + "type": "string" + }, + "gcsManagedLedgerOffloadBucket": { + "type": "string" + }, + "gcsManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadRegion": { + "type": "string" + }, + "gcsManagedLedgerOffloadServiceAccountKeyFile": { + "type": "string" + }, + "managedLedgerOffloadBucket": { + "type": "string" + }, + "managedLedgerOffloadDeletionLagInMillis": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadDriver": { + "type": "string" + }, + "managedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadMaxThreads": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadPrefetchRounds": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadRegion": { + "type": "string" + }, + "managedLedgerOffloadServiceEndpoint": { + "type": "string" + }, + "managedLedgerOffloadThresholdInBytes": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadedReadPriority": { + "enum": [ + "BOOKKEEPER_FIRST", + "TIERED_STORAGE_FIRST" + ], + "type": "string" + }, + "offloadersDirectory": { + "type": "string" + }, + "s3ManagedLedgerOffloadBucket": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialId": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialSecret": { + "type": "string" + }, + "s3ManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadRegion": { + "type": "string" + }, + "s3ManagedLedgerOffloadRole": { + "type": "string" + }, + "s3ManagedLedgerOffloadRoleSessionName": { + "type": "string" + }, + "s3ManagedLedgerOffloadServiceEndpoint": { + "type": "string" + } + }, + "type": "object" + }, + "OffloadPoliciesImpl": { + "properties": { + "fileSystemDriver": { + "type": "boolean" + }, + "fileSystemProfilePath": { + "type": "string" + }, + "fileSystemURI": { + "type": "string" + }, + "gcsDriver": { + "type": "boolean" + }, + "gcsManagedLedgerOffloadBucket": { + "type": "string" + }, + "gcsManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "gcsManagedLedgerOffloadRegion": { + "type": "string" + }, + "gcsManagedLedgerOffloadServiceAccountKeyFile": { + "type": "string" + }, + "managedLedgerOffloadBucket": { + "type": "string" + }, + "managedLedgerOffloadDeletionLagInMillis": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadDriver": { + "type": "string" + }, + "managedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadMaxThreads": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadPrefetchRounds": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "managedLedgerOffloadRegion": { + "type": "string" + }, + "managedLedgerOffloadServiceEndpoint": { + "type": "string" + }, + "managedLedgerOffloadThresholdInBytes": { + "format": "int64", + "type": "integer" + }, + "managedLedgerOffloadedReadPriority": { + "enum": [ + "BOOKKEEPER_FIRST", + "TIERED_STORAGE_FIRST" + ], + "type": "string" + }, + "offloadersDirectory": { + "type": "string" + }, + "s3Driver": { + "type": "boolean" + }, + "s3ManagedLedgerOffloadBucket": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialId": { + "type": "string" + }, + "s3ManagedLedgerOffloadCredentialSecret": { + "type": "string" + }, + "s3ManagedLedgerOffloadMaxBlockSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadReadBufferSizeInBytes": { + "format": "int32", + "type": "integer" + }, + "s3ManagedLedgerOffloadRegion": { + "type": "string" + }, + "s3ManagedLedgerOffloadRole": { + "type": "string" + }, + "s3ManagedLedgerOffloadRoleSessionName": { + "type": "string" + }, + "s3ManagedLedgerOffloadServiceEndpoint": { + "type": "string" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "OutputStream": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PartitionedTopicMetadata": { + "properties": { + "partitions": { + "format": "int32", + "type": "integer" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "PendingBookieOpsStats": { + "properties": { + "cursorLedgerCloseOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerCreateOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerDeleteOp": { + "format": "int64", + "type": "integer" + }, + "cursorLedgerOpenOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerCloseOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerCreateOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerDeleteOp": { + "format": "int64", + "type": "integer" + }, + "dataLedgerOpenOp": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "PersistencePolicies": { + "properties": { + "bookkeeperAckQuorum": { + "format": "int32", + "type": "integer" + }, + "bookkeeperEnsemble": { + "format": "int32", + "type": "integer" + }, + "bookkeeperWriteQuorum": { + "format": "int32", + "type": "integer" + }, + "managedLedgerMaxMarkDeleteRate": { + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "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" + }, + "Policies": { + "properties": { + "auth_policies": { + "$ref": "#/definitions/AuthPolicies" + }, + "autoSubscriptionCreationOverride": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + }, + "autoTopicCreationOverride": { + "$ref": "#/definitions/AutoTopicCreationOverride" + }, + "backlog_quota_map": { + "additionalProperties": { + "$ref": "#/definitions/BacklogQuota" + }, + "type": "object" + }, + "bundles": { + "$ref": "#/definitions/BundlesData" + }, + "clusterDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "clusterSubscribeRate": { + "additionalProperties": { + "$ref": "#/definitions/SubscribeRate" + }, + "type": "object" + }, + "compaction_threshold": { + "format": "int64", + "type": "integer" + }, + "deduplicationEnabled": { + "type": "boolean" + }, + "deduplicationSnapshotIntervalSeconds": { + "format": "int32", + "type": "integer" + }, + "delayed_delivery_policies": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + }, + "deleted": { + "type": "boolean" + }, + "encryption_required": { + "type": "boolean" + }, + "inactive_topic_policies": { + "$ref": "#/definitions/InactiveTopicPolicies" + }, + "is_allow_auto_update_schema": { + "type": "boolean" + }, + "latency_stats_sample_rate": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "type": "object" + }, + "max_consumers_per_subscription": { + "format": "int32", + "type": "integer" + }, + "max_consumers_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_producers_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_subscriptions_per_topic": { + "format": "int32", + "type": "integer" + }, + "max_topics_per_namespace": { + "format": "int32", + "type": "integer" + }, + "max_unacked_messages_per_consumer": { + "format": "int32", + "type": "integer" + }, + "max_unacked_messages_per_subscription": { + "format": "int32", + "type": "integer" + }, + "message_ttl_in_seconds": { + "format": "int32", + "type": "integer" + }, + "offload_deletion_lag_ms": { + "format": "int64", + "type": "integer" + }, + "offload_policies": { + "$ref": "#/definitions/OffloadPolicies" + }, + "offload_threshold": { + "format": "int64", + "type": "integer" + }, + "persistence": { + "$ref": "#/definitions/PersistencePolicies" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "publishMaxMessageRate": { + "additionalProperties": { + "$ref": "#/definitions/PublishRate" + }, + "type": "object" + }, + "replication_clusters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "replicatorDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "resource_group_name": { + "type": "string" + }, + "retention_policies": { + "$ref": "#/definitions/RetentionPolicies" + }, + "schema_auto_update_compatibility_strategy": { + "enum": [ + "AutoUpdateDisabled", + "Backward", + "Forward", + "Full", + "AlwaysCompatible", + "BackwardTransitive", + "ForwardTransitive", + "FullTransitive" + ], + "type": "string" + }, + "schema_compatibility_strategy": { + "enum": [ + "UNDEFINED", + "ALWAYS_INCOMPATIBLE", + "ALWAYS_COMPATIBLE", + "BACKWARD", + "FORWARD", + "FULL", + "BACKWARD_TRANSITIVE", + "FORWARD_TRANSITIVE", + "FULL_TRANSITIVE" + ], + "type": "string" + }, + "schema_validation_enforced": { + "type": "boolean" + }, + "subscriptionDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + }, + "subscription_auth_mode": { + "enum": [ + "None", + "Prefix" + ], + "type": "string" + }, + "subscription_expiration_time_minutes": { + "format": "int32", + "type": "integer" + }, + "subscription_types_enabled": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "topicDispatchRate": { + "additionalProperties": { + "$ref": "#/definitions/DispatchRateImpl" + }, + "type": "object" + } + }, + "type": "object" + }, + "PoolArenaStats": { + "properties": { + "chunkLists": { + "items": { + "$ref": "#/definitions/PoolChunkListStats" + }, + "type": "array" + }, + "numActiveAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveHugeAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveNormalAllocations": { + "format": "int64", + "type": "integer" + }, + "numActiveSmallAllocations": { + "format": "int64", + "type": "integer" + }, + "numAllocations": { + "format": "int64", + "type": "integer" + }, + "numChunkLists": { + "format": "int32", + "type": "integer" + }, + "numDeallocations": { + "format": "int64", + "type": "integer" + }, + "numHugeAllocations": { + "format": "int64", + "type": "integer" + }, + "numHugeDeallocations": { + "format": "int64", + "type": "integer" + }, + "numNormalAllocations": { + "format": "int64", + "type": "integer" + }, + "numNormalDeallocations": { + "format": "int64", + "type": "integer" + }, + "numSmallAllocations": { + "format": "int64", + "type": "integer" + }, + "numSmallDeallocations": { + "format": "int64", + "type": "integer" + }, + "numSmallSubpages": { + "format": "int32", + "type": "integer" + }, + "smallSubpages": { + "items": { + "$ref": "#/definitions/PoolSubpageStats" + }, + "type": "array" + } + }, + "type": "object" + }, + "PoolChunkListStats": { + "properties": { + "chunks": { + "items": { + "$ref": "#/definitions/PoolChunkStats" + }, + "type": "array" + }, + "maxUsage": { + "format": "int32", + "type": "integer" + }, + "minUsage": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PoolChunkStats": { + "properties": { + "chunkSize": { + "format": "int32", + "type": "integer" + }, + "freeBytes": { + "format": "int32", + "type": "integer" + }, + "usage": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PoolSubpageStats": { + "properties": { + "elementSize": { + "format": "int32", + "type": "integer" + }, + "maxNumElements": { + "format": "int32", + "type": "integer" + }, + "numAvailable": { + "format": "int32", + "type": "integer" + }, + "pageSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PostSchemaPayload": { + "properties": { + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schema": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "PostSchemaResponse": { + "properties": { + "version": { + "$ref": "#/definitions/SchemaVersion" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessContainerFactory": { + "properties": { + "extraFunctionDependenciesDir": { + "type": "string" + }, + "javaInstanceJarLocation": { + "type": "string" + }, + "logDirectory": { + "type": "string" + }, + "pythonInstanceLocation": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "PublishRate": { + "properties": { + "publishThrottlingRateInByte": { + "format": "int64", + "type": "integer" + }, + "publishThrottlingRateInMsg": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PublisherStats": { + "properties": { + "accessMode": { + "enum": [ + "Shared", + "Exclusive", + "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" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "Sinks": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sinkList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SinksWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sinkList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "Sources": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sourceList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SourcesWorkerService": { + "properties": { + "listOfConnectors": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + }, + "sourceList": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "SubscribeRate": { + "properties": { + "ratePeriodInSecond": { + "format": "int32", + "type": "integer" + }, + "subscribeThrottlingRatePerConsumer": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "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" + }, + "durable": { + "type": "boolean" + }, + "earliestMsgPublishTimeInBacklog": { + "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" + }, + "SubtypeResolver": { + "type": "object" + }, + "SystemResourceUsage": { + "properties": { + "bandwidthIn": { + "$ref": "#/definitions/ResourceUsage" + }, + "bandwidthOut": { + "$ref": "#/definitions/ResourceUsage" + }, + "cpu": { + "$ref": "#/definitions/ResourceUsage" + }, + "directMemory": { + "$ref": "#/definitions/ResourceUsage" + }, + "memory": { + "$ref": "#/definitions/ResourceUsage" + } + }, + "type": "object" + }, + "TenantInfo": { + "description": "Information of adminRoles and allowedClusters for tenant", + "properties": { + "adminRoles": { + "description": "Comma separated list of auth principal allowed to administrate the tenant.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "allowedClusters": { + "description": "Comma separated allowed clusters.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ThreadContainerFactory": { + "properties": { + "pulsarClientMemoryLimit": { + "$ref": "#/definitions/MemoryLimit" + }, + "threadGroupName": { + "type": "string" + } + }, + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "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" + }, + "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" + }, + "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" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "WorkerConfig": { + "properties": { + "additionalJavaRuntimeArguments": { + "items": { + "type": "string" + }, + "type": "array" + }, + "assignmentWriteMaxRetries": { + "format": "int32", + "type": "integer" + }, + "authenticateMetricsEndpoint": { + "type": "boolean" + }, + "authenticationEnabled": { + "type": "boolean" + }, + "authenticationProviders": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "authorizationEnabled": { + "type": "boolean" + }, + "authorizationProvider": { + "type": "string" + }, + "bookkeeperClientAuthenticationParameters": { + "type": "string" + }, + "bookkeeperClientAuthenticationParametersName": { + "type": "string" + }, + "bookkeeperClientAuthenticationPlugin": { + "type": "string" + }, + "brokerClientAuthenticationEnabled": { + "type": "boolean" + }, + "brokerClientAuthenticationParameters": { + "type": "string" + }, + "brokerClientAuthenticationPlugin": { + "type": "string" + }, + "brokerClientTrustCertsFilePath": { + "type": "string" + }, + "clientAuthenticationParameters": { + "type": "string" + }, + "clientAuthenticationPlugin": { + "type": "string" + }, + "clusterCoordinationTopic": { + "type": "string" + }, + "clusterCoordinationTopicName": { + "type": "string" + }, + "configurationMetadataStoreUrl": { + "type": "string" + }, + "configurationStoreServers": { + "type": "string" + }, + "connectorsDirectory": { + "type": "string" + }, + "downloadDirectory": { + "type": "string" + }, + "exposeAdminClientEnabled": { + "type": "boolean" + }, + "failureCheckFreqMs": { + "format": "int64", + "type": "integer" + }, + "forwardSourceMessageProperty": { + "type": "boolean" + }, + "functionAssignmentTopic": { + "type": "string" + }, + "functionAssignmentTopicName": { + "type": "string" + }, + "functionAuthProviderClassName": { + "type": "string" + }, + "functionInstanceMaxResources": { + "$ref": "#/definitions/Resources" + }, + "functionInstanceMinResources": { + "$ref": "#/definitions/Resources" + }, + "functionInstanceResourceChangeInLockStep": { + "type": "boolean" + }, + "functionInstanceResourceGranularities": { + "$ref": "#/definitions/Resources" + }, + "functionMetadataTopic": { + "type": "string" + }, + "functionMetadataTopicName": { + "type": "string" + }, + "functionRuntimeFactoryClassName": { + "type": "string" + }, + "functionRuntimeFactoryConfigs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "functionWebServiceUrl": { + "type": "string" + }, + "functionsDirectory": { + "type": "string" + }, + "functionsWorkerServiceCustomConfigs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "functionsWorkerServiceNarPackage": { + "type": "string" + }, + "httpRequestsLimitEnabled": { + "type": "boolean" + }, + "httpRequestsMaxPerSecond": { + "format": "double", + "type": "number" + }, + "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" + }, + "maxPendingAsyncRequests": { + "format": "int32", + "type": "integer" + }, + "metadataStoreCacheExpirySeconds": { + "format": "int32", + "type": "integer" + }, + "metadataStoreOperationTimeoutSeconds": { + "format": "int32", + "type": "integer" + }, + "metadataStoreSessionTimeoutMillis": { + "format": "int64", + "type": "integer" + }, + "narExtractionDirectory": { + "type": "string" + }, + "numFunctionPackageReplicas": { + "format": "int32", + "type": "integer" + }, + "numHttpServerThreads": { + "format": "int32", + "type": "integer" + }, + "processContainerFactory": { + "$ref": "#/definitions/ProcessContainerFactory" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "proxyRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "pulsarFunctionsCluster": { + "type": "string" + }, + "pulsarFunctionsNamespace": { + "type": "string" + }, + "pulsarServiceUrl": { + "type": "string" + }, + "pulsarWebServiceUrl": { + "type": "string" + }, + "rebalanceCheckFreqSec": { + "format": "int64", + "type": "integer" + }, + "rescheduleTimeoutMs": { + "format": "int64", + "type": "integer" + }, + "runtimeCustomizerClassName": { + "type": "string" + }, + "runtimeCustomizerConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "saslJaasClientAllowedIds": { + "type": "string" + }, + "saslJaasServerRoleTokenSignerSecretPath": { + "type": "string" + }, + "saslJaasServerSectionName": { + "type": "string" + }, + "schedulerClassName": { + "type": "string" + }, + "secretsProviderConfiguratorClassName": { + "type": "string" + }, + "secretsProviderConfiguratorConfig": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "stateStorageProviderImplementation": { + "type": "string" + }, + "stateStorageServiceUrl": { + "type": "string" + }, + "superUserRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "threadContainerFactory": { + "$ref": "#/definitions/ThreadContainerFactory" + }, + "tlsAllowInsecureConnection": { + "type": "boolean" + }, + "tlsCertRefreshCheckDurationSec": { + "format": "int64", + "type": "integer" + }, + "tlsCertificateFilePath": { + "type": "string" + }, + "tlsEnableHostnameVerification": { + "type": "boolean" + }, + "tlsEnabled": { + "type": "boolean" + }, + "tlsEnabledWithKeyStore": { + "type": "boolean" + }, + "tlsKeyFilePath": { + "type": "string" + }, + "tlsKeyStore": { + "type": "string" + }, + "tlsKeyStorePassword": { + "type": "string" + }, + "tlsKeyStoreType": { + "type": "string" + }, + "tlsProvider": { + "type": "string" + }, + "tlsRequireTrustedClientCertOnConnect": { + "type": "boolean" + }, + "tlsTrustCertsFilePath": { + "type": "string" + }, + "tlsTrustChainBytes": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "tlsTrustStore": { + "type": "string" + }, + "tlsTrustStorePassword": { + "type": "string" + }, + "tlsTrustStoreType": { + "type": "string" + }, + "topicCompactionFrequencySec": { + "format": "int64", + "type": "integer" + }, + "uploadBuiltinSinksSources": { + "type": "boolean" + }, + "useCompactedMetadataTopic": { + "type": "boolean" + }, + "useTls": { + "type": "boolean" + }, + "validateConnectorConfig": { + "type": "boolean" + }, + "webServiceTlsCiphers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "webServiceTlsProtocols": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "workerHostname": { + "type": "string" + }, + "workerId": { + "type": "string" + }, + "workerListProbeIntervalSec": { + "format": "int32", + "type": "integer" + }, + "workerPort": { + "format": "int32", + "type": "integer" + }, + "workerPortTls": { + "format": "int32", + "type": "integer" + }, + "workerWebAddress": { + "type": "string" + }, + "workerWebAddressTls": { + "type": "string" + }, + "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" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for admin operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Admin REST API", + "version": "v2" + }, + "paths": { + "/bookies/all": { + "get": { + "description": "", + "operationId": "getAllBookies", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookiesClusterInfo" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets raw information for all the bookies in the cluster", + "tags": [ + "bookies" + ] + } + }, + "/bookies/racks-info": { + "get": { + "description": "", + "operationId": "getBookiesRackInfo", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/definitions/BookieInfo" + }, + "type": "object" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the rack placement information for all the bookies in the cluster", + "tags": [ + "bookies" + ] + } + }, + "/bookies/racks-info/{bookie}": { + "delete": { + "description": "", + "operationId": "deleteBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Removed the rack placement information for a specific bookie in the cluster", + "tags": [ + "bookies" + ] + }, + "get": { + "description": "", + "operationId": "getBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookieInfo" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the rack placement information for a specific bookie in the cluster", + "tags": [ + "bookies" + ] + }, + "post": { + "description": "", + "operationId": "updateBookieRackInfo", + "parameters": [ + { + "in": "path", + "name": "bookie", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "group", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Updates the rack placement information for a specific bookie in the cluster (note. bookie address format:`address:port`)", + "tags": [ + "bookies" + ] + } + }, + "/broker-stats/allocator-stats/{allocator}": { + "get": { + "description": "", + "operationId": "getAllocatorStats", + "parameters": [ + { + "in": "path", + "name": "allocator", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AllocatorStats" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the stats for the Netty allocator. Available allocators are 'default' and 'ml-cache'", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/bookieops": { + "get": { + "description": "", + "operationId": "getPendingBookieOpsStats", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/PendingBookieOpsStats" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get pending bookie client op stats by namesapce", + "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

THIS API IS ONLY FOR USE BY TESTING FOR CONFIRMING NAMESPACE ALLOCATION ALGORITHM", + "operationId": "getBrokerResourceAvailability", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/ResourceUnit" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Load-manager doesn't support operation" + } + }, + "summary": "Broker availability report", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/load-report": { + "get": { + "description": "consists of topics stats & systemResourceUsage", + "operationId": "getLoadReport", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LoadReport" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get Load for this broker", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/mbeans": { + "get": { + "description": "", + "operationId": "getMBeans", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all the mbean details of this broker JVM", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/metrics": { + "get": { + "description": "Requested should be executed by Monitoring agent on each broker to fetch the metrics", + "operationId": "getMetrics", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Gets the metrics for Monitoring", + "tags": [ + "broker-stats" + ] + } + }, + "/broker-stats/topics": { + "get": { + "description": "", + "operationId": "getTopics2", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/OutputStream" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all the topic stats by namespace", + "tags": [ + "broker-stats" + ] + } + }, + "/brokers/backlog-quota-check": { + "get": { + "description": "", + "operationId": "backlogQuotaCheck", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK" + }, + "403": { + "description": "Don't have admin permission" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "An REST endpoint to trigger backlogQuotaCheck", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration": { + "get": { + "description": "", + "operationId": "getDynamicConfigurationName", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "You don't have admin permission to get configuration" + } + }, + "summary": "Get all updatable dynamic configurations's name", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/runtime": { + "get": { + "description": "", + "operationId": "getRuntimeConfiguration", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get all runtime configurations. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/values": { + "get": { + "description": "", + "operationId": "getAllDynamicConfigurations", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "403": { + "description": "You don't have admin permission to view configuration" + }, + "404": { + "description": "Configuration not found" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get value of all dynamic configurations' value overridden on local config", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/{configName}": { + "delete": { + "description": "", + "operationId": "deleteDynamicConfiguration", + "parameters": [ + { + "in": "path", + "name": "configName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Service configuration updated successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "412": { + "description": "Invalid dynamic-config value" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete dynamic ServiceConfiguration into metadata only. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/configuration/{configName}/{configValue}": { + "post": { + "description": "", + "operationId": "updateDynamicConfiguration", + "parameters": [ + { + "in": "path", + "name": "configName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "configValue", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Service configuration updated successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "404": { + "description": "Configuration not found" + }, + "412": { + "description": "Invalid dynamic-config value" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Update dynamic serviceconfiguration into zk only. This operation requires Pulsar super-user privileges.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/health": { + "get": { + "description": "", + "operationId": "healthCheck", + "parameters": [ + { + "enum": [ + "V1", + "V2" + ], + "in": "query", + "name": "topicVersion", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Run a healthCheck against the broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/internal-configuration": { + "get": { + "description": "", + "operationId": "getInternalConfigurationData", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/InternalConfigurationData" + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the internal configuration data", + "tags": [ + "brokers" + ] + } + }, + "/brokers/leaderBroker": { + "get": { + "description": "", + "operationId": "getLeaderBroker", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BrokerInfo" + } + }, + "401": { + "description": "Authentication required" + }, + "403": { + "description": "This operation requires super-user access" + }, + "404": { + "description": "Leader broker not found" + } + }, + "summary": "Get the information of the leader broker.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/ready": { + "get": { + "description": "", + "operationId": "isReady", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Broker is ready" + }, + "500": { + "description": "Broker is not ready" + } + }, + "summary": "Check if the broker is fully initialized", + "tags": [ + "brokers" + ] + } + }, + "/brokers/shutdown": { + "post": { + "description": "", + "operationId": "shutDownBrokerGracefully", + "parameters": [ + { + "description": "if the value absent(value=0) means no concurrent limitation.", + "format": "int32", + "in": "query", + "name": "maxConcurrentUnloadPerSec", + "required": false, + "type": "integer" + }, + { + "default": true, + "in": "query", + "name": "forcedTerminateTopic", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Execute shutdown command successfully" + }, + "403": { + "description": "You don't have admin permission to update service-configuration" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Shutdown broker gracefully.", + "tags": [ + "brokers" + ] + } + }, + "/brokers/version": { + "get": { + "description": "", + "operationId": "version", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Everything is OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get version of current broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/{clusterName}/{broker-webserviceurl}/ownedNamespaces": { + "get": { + "description": "", + "operationId": "getOwnedNamespaces", + "parameters": [ + { + "in": "path", + "name": "clusterName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "broker-webserviceurl", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceOwnershipStatus" + }, + "type": "object" + } + }, + "307": { + "description": "Current broker doesn't serve the cluster" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Cluster doesn't exist" + } + }, + "summary": "Get the list of namespaces served by the specific broker", + "tags": [ + "brokers" + ] + } + }, + "/brokers/{cluster}": { + "get": { + "description": "", + "operationId": "getActiveBrokers", + "parameters": [ + { + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "307": { + "description": "Current broker doesn't serve this cluster" + }, + "401": { + "description": "Authentication required" + }, + "403": { + "description": "This operation requires super-user access" + }, + "404": { + "description": "Cluster does not exist: cluster={clustername}" + } + }, + "summary": "Get the list of active brokers (web service addresses) in the cluster.If authorization is not enabled, any cluster name is valid.", + "tags": [ + "brokers" + ] + } + }, + "/clusters": { + "get": { + "description": "", + "operationId": "getClusters", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return a list of clusters.", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the list of all the Pulsar clusters.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been deleted." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "412": { + "description": "Cluster is not empty." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Delete an existing cluster.", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the cluster data.", + "schema": { + "$ref": "#/definitions/ClusterData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the configuration for the specified cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "updateCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The cluster data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterData" + }, + "x-examples": { + "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651'\n}" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been updated." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Update the configuration for a cluster.", + "tags": [ + "clusters" + ] + }, + "put": { + "description": "This operation requires Pulsar superuser privileges, and the name cannot contain the '/' characters.", + "operationId": "createCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The cluster data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterData" + }, + "x-examples": { + "application/json": "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651',\n}" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been created." + }, + "403": { + "description": "You don't have admin permission to create the cluster." + }, + "409": { + "description": "Cluster already exists." + }, + "412": { + "description": "Cluster name is not valid." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Create a new cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/failureDomains": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getFailureDomains", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/FailureDomain" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the cluster failure domains.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/failureDomains/{domainName}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteFailureDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission or policy is read only" + }, + "404": { + "description": "FailureDomain doesn't exist" + }, + "412": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete the failure domain of the cluster", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FailureDomain" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "FailureDomain doesn't exist" + }, + "412": { + "description": "Cluster doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get a domain in a cluster", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setFailureDomain", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The failure domain name", + "in": "path", + "name": "domainName", + "required": true, + "type": "string" + }, + { + "description": "The configuration data of a failure domain", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/FailureDomain" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Failure domain doesn't exist." + }, + "409": { + "description": "Broker already exists in another domain." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Set the failure domain of the cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getNamespaceIsolationPolicies", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/NamespaceIsolationData" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the namespace isolation policies assigned to the cluster.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/brokers": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getBrokersWithNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/BrokerNamespaceIsolationData" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Namespace-isolation policies not found." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get list of brokers with namespace-isolation policies attached to them.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/brokers/{broker}": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getBrokerWithNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The broker name (:)", + "in": "path", + "name": "broker", + "required": true, + "type": "string", + "x-example": "broker1:8080" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BrokerNamespaceIsolationData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Namespace-isolation policies/ Broker not found." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get a broker with namespace-isolation policies attached to it.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/namespaceIsolationPolicies/{policyName}": { + "delete": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "deleteNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy name", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission or policies are read only." + }, + "404": { + "description": "Namespace isolation policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Delete namespace isolation policy.", + "tags": [ + "clusters" + ] + }, + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The name of the namespace isolation policy", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NamespaceIsolationData" + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the single namespace isolation policy assigned to the cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setNamespaceIsolationPolicy", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy name", + "in": "path", + "name": "policyName", + "required": true, + "type": "string" + }, + { + "description": "The namespace isolation policy data", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NamespaceIsolationData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Namespace isolation policy data is invalid." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Namespace isolation policy doesn't exist." + }, + "412": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Set namespace isolation policy.", + "tags": [ + "clusters" + ] + } + }, + "/clusters/{cluster}/peers": { + "get": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "getPeerCluster", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Get the peer-cluster data for the specified cluster.", + "tags": [ + "clusters" + ] + }, + "post": { + "description": "This operation requires Pulsar superuser privileges.", + "operationId": "setPeerClusterNames", + "parameters": [ + { + "description": "The cluster name", + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "description": "The list of peer cluster names", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + }, + "x-examples": { + "application/json": "[\n 'cluster-a',\n 'cluster-b'\n]" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Cluster has been updated." + }, + "403": { + "description": "Don't have admin permission or policies are read-only." + }, + "404": { + "description": "Cluster doesn't exist." + }, + "412": { + "description": "Peer cluster doesn't exist." + }, + "500": { + "description": "Internal server error." + } + }, + "summary": "Update peer-cluster-list for a cluster.", + "tags": [ + "clusters" + ] + } + }, + "/namespaces/{cluster}/antiAffinity/{group}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAntiAffinityNamespaces", + "parameters": [ + { + "in": "path", + "name": "cluster", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "group", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "tenant", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "412": { + "description": "Cluster not exist/Anti-affinity group can't be empty." + } + }, + "summary": "Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{property}/{namespace}/persistence/bookieAffinity": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "property", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Delete the bookie-affinity-group from namespace-local policy.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "property", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BookieAffinityGroupData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get the bookie-affinity-group from namespace-local policy.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenantNamespaces", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant doesn't exist" + } + }, + "summary": "Get the list of all the namespaces for a certain tenant.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "405": { + "description": "Broker doesn't allow forced deletion of namespaces" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Delete a namespace and all the topics under it.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Policies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the dump all the policies specified for a namespace.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "createNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Policies for the namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Policies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster doesn't exist" + }, + "409": { + "description": "Namespace already exists" + }, + "412": { + "description": "Namespace name is not valid" + } + }, + "summary": "Creates a new namespace with the specified policies", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/antiAffinity": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove anti-affinity group of a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get anti-affinity group of a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceAntiAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Anti-affinity group for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid antiAffinityGroup" + } + }, + "summary": "Set anti-affinity group for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/autoSubscriptionCreation": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove override of broker's allowAutoSubscriptionCreation in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get autoSubscriptionCreation info in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setAutoSubscriptionCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Settings for automatic subscription creation", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/AutoSubscriptionCreationOverride" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid autoSubscriptionCreation override" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Override broker's allowAutoSubscriptionCreation setting for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/autoTopicCreation": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove override of broker's allowAutoTopicCreation in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/AutoTopicCreationOverride" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get autoTopicCreation info in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setAutoTopicCreation", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Settings for automatic topic creation", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AutoTopicCreationOverride" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid autoTopicCreation override" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "406": { + "description": "The number of partitions should be less than or equal to maxNumPartitionsPerPartitionedTopic" + } + }, + "summary": "Override broker's allowAutoTopicCreation setting for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/backlogQuota": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "description": "Backlog quota for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/BacklogQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": " Set a backlog quota for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/backlogQuotaMap": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "$ref": "#/definitions/BacklogQuota" + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get backlog quota map on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/bundles": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getBundlesData", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/BundlesData" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Namespace is not setup to split in bundles" + } + }, + "summary": "Get the bundles split data.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/clearBacklog": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBacklog", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/clearBacklog/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBacklogForSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subscription", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for a given subscription on all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/compactionThreshold": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "deleteCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Delete maximum number of uncompacted bytes in a topic before compaction is triggered.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Maximum number of uncompacted bytes in topics before compaction is triggered.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Maximum number of uncompacted bytes in a topic of the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "compactionThreshold value is not valid" + } + }, + "summary": "Set maximum number of uncompacted bytes in a topic before compaction is triggered.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/deduplication": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Remove broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "modifyDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag for disabling or enabling broker side deduplication for all topics in the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Enable or disable broker side deduplication for all topics in a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/deduplicationSnapshotInterval": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/delayedDelivery": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Delete delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Delayed delivery policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DelayedDeliveryPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/dispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Delete dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Dispatch rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/encryptionRequired": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getEncryptionRequired", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get message encryption required status in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "modifyEncryptionRequired", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag defining if message encryption is required", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Message encryption is required or not for all topics in a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/inactiveTopicPolicies": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove inactive topic policies from a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/InactiveTopicPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get inactive topic policies config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Inactive topic policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/InactiveTopicPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Set inactive topic policies config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/isAllowAutoUpdateSchema": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getIsAllowAutoUpdateSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The flag of whether allow auto update schema", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setIsAllowAutoUpdateSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag of whether to allow auto update schema", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update flag of whether allow auto update schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxConsumersPerSubscription": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerSubscription value is not valid" + } + }, + "summary": " Set maxConsumersPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxConsumersPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum consumers per subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerSubscription value is not valid" + } + }, + "summary": " Set maxConsumersPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxConsumersPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxConsumersPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxConsumersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum consumers per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxConsumersPerTopic value is not valid" + } + }, + "summary": " Set maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxProducersPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxProducersPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxProducersPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum producers per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxProducersPerTopic value is not valid" + } + }, + "summary": " Set maxProducersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxSubscriptionsPerTopic": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxSubscriptionsPerTopic config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum subscriptions per topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerSubscription value is not valid" + } + }, + "summary": " Set maxSubscriptionsPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxTopicsPerNamespace": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Set maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxTopicsPerNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace does not exist" + } + }, + "summary": "Get maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum topics for specific namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Set maxTopicsPerNamespace config on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerConsumer": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxUnackedmessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Remove maxUnackedMessagesPerConsumer config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxUnackedMessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxUnackedMessagesPerConsumer config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxUnackedMessagesPerConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum unacked messages per consumer", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerConsumer value is not valid" + } + }, + "summary": " Set maxConsumersPerTopic configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerSubscription": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeMaxUnackedmessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Remove maxUnackedMessagesPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMaxUnackedmessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get maxUnackedMessagesPerSubscription config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setMaxUnackedMessagesPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Number of maximum unacked messages per subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "maxUnackedMessagesPerSubscription value is not valid" + } + }, + "summary": " Set maxUnackedMessagesPerSubscription configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/messageTTL": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid TTL" + } + }, + "summary": "Set message TTL in seconds for namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int32", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the message TTL for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid TTL" + } + }, + "summary": "Set message TTL in seconds for namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadDeletionLagMs": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Clear the namespace configured offload deletion lag. The topics in the namespace will fallback to using the default configured deletion lag for the broker", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "A negative value denotes that deletion has been completely disabled. 'null' denotes that the topics in the namespace will fall back to the broker default for deletion lag.", + "operationId": "getOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "A negative value disables the deletion completely.", + "operationId": "setOffloadDeletionLag", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "New number of milliseconds to wait before deleting a ledger segment which has been offloaded", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "offloadDeletionLagMs value is not valid" + } + }, + "summary": "Set number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadPolicies": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Offload policies for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid" + } + }, + "summary": " Set offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/offloadThreshold": { + "get": { + "consumes": [ + "application/json" + ], + "description": "A negative value disables automatic offloading", + "operationId": "getOffloadThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + } + }, + "summary": "Maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "-1 will revert to using the cluster default. A negative value disables automatic offloading. ", + "operationId": "setOffloadThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Maximum number of bytes stored on the pulsar cluster for a topic of the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "offloadThreshold value is not valid" + } + }, + "summary": "Set maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPermissions", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Retrieve the permissions for a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions/subscription": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPermissionOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Namespace is not empty" + } + }, + "summary": "Retrieve the permissions for a subscription.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/permissions/{role}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "revokePermissionsOnNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Revoke all permissions to a role on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "grantPermissionOnNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "List of permissions for the specified role", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "501": { + "description": "Authorization is not enabled" + } + }, + "summary": "Grant a new permission to a role on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/persistence": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deletePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Delete the persistence configuration for all topics on a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get the persistence configuration for a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Persistence policies for the specified namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set the persistence configuration for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setBookieAffinityGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Bookie affinity group for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/BookieAffinityGroupData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set the bookie-affinity-group to namespace-persistent policy.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/properties": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get key value pair properties for a given namespace.", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setProperties", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Key value pair properties for the namespace", + "in": "body", + "name": "body", + "required": true, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Put key value pairs property on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/property/{key}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get property value for a given key on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/property/{key}/{value}": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setProperty", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "value", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Put a key value pair property on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/removeOffloadPolicies": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "OffloadPolicies is empty or driver is not supported or bucket is not valid" + } + }, + "summary": " Set offload configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/replication": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Namespace is not global" + } + }, + "summary": "Get the replication clusters for a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "409": { + "description": "Peer-cluster can't be part of replication-cluster" + }, + "412": { + "description": "Namespace is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/replicatorDispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Remove replicator dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Replicator dispatch rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set replicator dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/resourcegroup": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid resourcegroup" + } + }, + "summary": "Delete resourcegroup for a namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "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 the resourcegroup attached to the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/resourcegroup/{resourcegroup}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceResourceGroup", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + }, + "412": { + "description": "Invalid resourcegroup" + } + }, + "summary": "Set resourcegroup for a namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/retention": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": " Remove retention configuration on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getRetention", + "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/RetentionPolicies" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get retention config on a namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": " Set retention configuration on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaAutoUpdateCompatibilityStrategy": { + "get": { + "consumes": [ + "application/json" + ], + "description": "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api", + "operationId": "getSchemaAutoUpdateCompatibilityStrategy", + "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": { + "enum": [ + "AutoUpdateDisabled", + "Backward", + "Forward", + "Full", + "AlwaysCompatible", + "BackwardTransitive", + "ForwardTransitive", + "FullTransitive" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api", + "operationId": "setSchemaAutoUpdateCompatibilityStrategy", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Strategy used to check the compatibility of new schemas", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update the strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaCompatibilityStrategy": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "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": { + "enum": [ + "UNDEFINED", + "ALWAYS_INCOMPATIBLE", + "ALWAYS_COMPATIBLE", + "BACKWARD", + "FORWARD", + "FULL", + "BACKWARD_TRANSITIVE", + "FORWARD_TRANSITIVE", + "FULL_TRANSITIVE" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The strategy of the namespace schema compatibility ", + "tags": [ + "namespaces" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update the strategy used to check the compatibility of new schema", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/schemaValidationEnforced": { + "get": { + "consumes": [ + "application/json" + ], + "description": "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.", + "operationId": "getSchemaValidtionEnforced", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenants or Namespace doesn't exist" + } + }, + "summary": "Get schema validation enforced flag for namespace.", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.", + "operationId": "setSchemaValidtionEnforced", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Flag of whether validation is enforced on 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 Namespace doesn't exist" + }, + "412": { + "description": "schemaValidationEnforced value is not valid" + } + }, + "summary": "Set schema validation enforced flag on namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscribeRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteSubscribeRate", + "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 subscribe-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscribeRate", + "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/SubscribeRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get subscribe-rate configured for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscribe rate for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set subscribe-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionAuthMode": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionAuthMode", + "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": { + "enum": [ + "None", + "Prefix" + ], + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + } + }, + "summary": "Get subscription auth mode in a namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionAuthMode", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscription auth mode for all topics of the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": " Set a subscription auth mode for all the topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionDispatchRate": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteSubscriptionDispatchRate", + "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 Subscription dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionDispatchRate", + "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/DispatchRate" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get subscription dispatch-rate configured for the namespace, null means subscription 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": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Subscription 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 Subscription dispatch-rate throttling for all topics of the namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionExpirationTime": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeSubscriptionExpirationTime", + "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 subscription expiration time for namespace", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionExpirationTime", + "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 subscription expiration time for the namespace", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionExpirationTime", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Expiration time in minutes 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 expiration time" + } + }, + "summary": "Set subscription expiration time in minutes for namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/subscriptionTypesEnabled": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "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" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": " Remove subscription types enabled on a namespace.", + "tags": [ + "namespaces" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "The set of whether allow subscription types", + "tags": [ + "namespaces" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Set of whether allow subscription types", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Update set of whether allow share sub type", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/topics": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTopics", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": "PERSISTENT", + "enum": [ + "PERSISTENT", + "NON_PERSISTENT", + "ALL" + ], + "in": "query", + "name": "mode", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "Tenant or cluster or namespace doesn't exist" + } + }, + "summary": "Get the list of all the topics under a certain namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/unload": { + "put": { + "consumes": [ + "application/json" + ], + "description": "Unload an active namespace from the current broker serving it. Performing this operation will let the brokerremoves all producers, consumers, and connections using this namespace, and close all topics (includingtheir persistent store). During that operation, the namespace is marked as tentatively unavailable until thebroker completes the unloading action. This operation requires strictly super user privileges, since it wouldresult in non-persistent message loss and unexpected connection closure to the clients.", + "operationId": "unloadNamespace", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or namespace doesn't exist" + }, + "412": { + "description": "Namespace is already unloaded or Namespace has bundles activated" + } + }, + "summary": "Unload namespace", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/unsubscribe/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unsubscribeNamespace", + "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 namespacen" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Unsubscribes the given subscription on all topics on a namespace.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "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" + }, + "409": { + "description": "Namespace bundle is not empty" + } + }, + "summary": "Delete a namespace bundle and all the topics under it.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBundleBacklog", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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 or operate permission on the namespace" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Clear backlog for all topics on a namespace bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "clearNamespaceBundleBacklogForSubscription", + "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" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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 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 bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/split": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "splitNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "unload", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "splitAlgorithmName", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Split a namespace bundle", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/unload": { + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unloadNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "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" + } + }, + "summary": "Unload a namespace bundle", + "tags": [ + "namespaces" + ] + } + }, + "/namespaces/{tenant}/{namespace}/{bundle}/unsubscribe/{subscription}": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "unsubscribeNamespaceBundle", + "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" + }, + { + "in": "path", + "name": "bundle", + "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": "Unsubscribes the given subscription on all topics on a namespace bundle.", + "tags": [ + "namespaces" + ] + } + }, + "/non-persistent/{tenant}/{namespace}": { + "get": { + "description": "", + "operationId": "getList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify the bundle name", + "in": "query", + "name": "bundle", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace does not exist" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of non-persistent topics under a namespace.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/partitioned": { + "get": { + "description": "", + "operationId": "getPartitionedTopicList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of partitioned topics under a namespace.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{bundle}": { + "get": { + "description": "", + "operationId": "getListFromBundle", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Bundle range of a topic", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace doesn't exist" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of non-persistent topics under a namespace bundle.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}": { + "delete": { + "description": "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.", + "operationId": "deleteTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic has active producers/subscriptions" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "This is the only REST endpoint from which non-partitioned topics could be created.", + "operationId": "createNonPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Key value pair properties for the topic metadata", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a non-partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireMessagesForAllSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on all subscriptions of topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlog": { + "get": { + "description": "", + "operationId": "getBacklog", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentOfflineTopicStats" + } + }, + "404": { + "description": "Namespace does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get estimated backlog for offline topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogQuota": { + "delete": { + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "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": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": "Set a backlog quota for a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap": { + "get": { + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic policy does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get backlog quota map on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/backlogSize": { + "put": { + "description": "", + "operationId": "getBacklogSizeByMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Calculate backlog size by a message ID (in bytes).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/compaction": { + "get": { + "description": "", + "operationId": "compactionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist, or compaction hasn't run" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the status of a compaction operation for a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "compact", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Compaction already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Trigger a compaction operation on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/compactionThreshold": { + "delete": { + "description": "", + "operationId": "removeCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set compaction threshold configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/createMissedPartitions": { + "post": { + "description": "", + "operationId": "createMissedPartitions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Create missed partitions of an existing partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled": { + "delete": { + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove deduplication configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get deduplication configuration of a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "DeduplicationEnabled policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Set deduplication enabled on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval": { + "delete": { + "description": "", + "operationId": "deleteDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/delayedDelivery": { + "delete": { + "description": "", + "operationId": "deleteDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Delayed delivery policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/dispatchRate": { + "delete": { + "description": "", + "operationId": "removeDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/examinemessage": { + "get": { + "description": "", + "operationId": "examineMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": "latest", + "description": "Relative start position to examine message.It can be 'latest' or 'earliest'", + "enum": [ + "latest", + "earliest" + ], + "in": "query", + "name": "initialPosition", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The position of messages (default 1)", + "format": "int64", + "in": "query", + "name": "messagePosition", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, the message position does not exist" + }, + "405": { + "description": "If given partitioned topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Examine a specific message on a topic by position relative to the earliest or the latest message.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies": { + "delete": { + "description": "", + "operationId": "deleteInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "inactive topic policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set inactive topic policies on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/internal-info": { + "get": { + "description": "", + "operationId": "getManagedLedgerInfo", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stored topic metadata.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/internalStats": { + "get": { + "description": "", + "operationId": "getInternalStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentTopicInternalStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the internal stats for the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/lastMessageId": { + "get": { + "description": "", + "operationId": "getLastMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Return the last commit message id of topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}": { + "get": { + "description": "", + "operationId": "getMessageById", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The ledger id", + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "description": "The entry id", + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message by its messageId.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxConsumers": { + "delete": { + "description": "", + "operationId": "removeMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max consumers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxConsumers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription": { + "delete": { + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set max consumers per subscription configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxMessageSize": { + "delete": { + "description": "", + "operationId": "removeMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max message size of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxMessageSize config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxProducers": { + "delete": { + "description": "", + "operationId": "removeMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "The max producers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxProducers" + } + }, + "summary": "Set maxProducers config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic": { + "delete": { + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max subscriptions of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxSubscriptionsPerTopic" + } + }, + "summary": "Set maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on consumer policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per consumer config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on subscription policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per subscription config on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/messageTTL": { + "delete": { + "description": "", + "operationId": "removeMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Remove message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "format": "int32", + "in": "query", + "name": "messageTTL", + "required": true, + "type": "integer" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Set message TTL in seconds for a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}": { + "get": { + "description": "", + "operationId": "getMessageIdByTimestamp", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Specify the timestamp", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic is not non-partitioned and persistent" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message ID published at or just after this absolute timestamp (in ms).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/offload": { + "get": { + "description": "", + "operationId": "offloadStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "triggerOffload", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Message ID is null" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Offload already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/offloadPolicies": { + "delete": { + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Offload policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set offload policies on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/partitioned-stats": { + "get": { + "description": "", + "operationId": "getPartitionedStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": true, + "description": "Get per partition stats", + "in": "query", + "name": "perPartition", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return the earliest time in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/partitions": { + "delete": { + "description": "It will also delete all the partitions of the topic if it exists.", + "operationId": "deletePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Partitioned topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a partitioned topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPartitionedMetadata", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Is check configuration required to automatically create topic", + "in": "query", + "name": "checkAllowAutoCreation", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate cluster configuration" + } + }, + "summary": "Get partitioned topic metadata.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "It only increments partitions of existing non-global partitioned-topic", + "operationId": "updatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "updateLocalTopicOnly", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "description": "The number of partitions for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "default": 0, + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Increment partitions of an existing partitioned topic.", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "consumes": [ + "application/vnd.partitioned-topic-metadata+json" + ], + "description": "It needs to be called before creating a producer on a partitioned topic.", + "operationId": "createPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The metadata for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PartitionedTopicMetadata" + } + }, + { + "default": false, + "in": "query", + "name": "createLocalTopicOnly", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a partitioned topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/permissions": { + "get": { + "description": "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.", + "operationId": "getPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get permissions on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/permissions/{role}": { + "delete": { + "description": "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).", + "operationId": "revokePermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Permissions are not set at the topic level" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Revoke permissions on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "grantPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "Actions to be granted (produce,functions,consume)", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Grant a new permission to a role on a single topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/persistence": { + "delete": { + "description": "", + "operationId": "removePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Bookkeeper persistence policies for specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set configuration of persistence policies for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/properties": { + "get": { + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get topic properties.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/publishRate": { + "delete": { + "description": "", + "operationId": "removePublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PublishRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message publish rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/replication": { + "delete": { + "description": "", + "operationId": "removeReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove the replication clusters from a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get the replication clusters for a topic", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate": { + "delete": { + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Replicator dispatch rate of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of replicatorDispatchRate" + } + }, + "summary": "Set replicatorDispatchRate config for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/retention": { + "delete": { + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Remove retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Set retention configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy": { + "delete": { + "description": "", + "operationId": "removeSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Remove schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the cluster", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Get schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Set schema compatibility strategy on a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/stats": { + "get": { + "description": "", + "operationId": "getStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Is authentication required to perform this operation", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return time of the earliest message in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/NonPersistentTopicStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to manage resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the stats for the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscribeRate": { + "delete": { + "description": "", + "operationId": "removeSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscribe rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}": { + "delete": { + "description": "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.", + "operationId": "deleteSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be deleted", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Disconnect and close all consumers and delete subscription forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Subscription has active consumers" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Delete a subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}": { + "get": { + "description": "", + "operationId": "peekNthMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscribed message expired", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The number of messages (default 1)", + "format": "int32", + "in": "path", + "name": "messagePosition", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Peek nth message on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/properties": { + "put": { + "description": "", + "operationId": "updateSubscriptionProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to update", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "The new properties", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Replaces all the properties on the given subscription", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus": { + "get": { + "description": "", + "operationId": "getReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get replicated subscription status on a topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Whether to enable replicated subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on this topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Enable or disable a replicated subscription on a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursorOnPosition", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "412": { + "description": "Unable to find position for position specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to given position.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursor", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "the timestamp to reset back", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "412": { + "description": "Failed to reset cursor on subscription or Unable to find position for timestamp specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to absolute timestamp (in ms).", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}": { + "post": { + "description": "", + "operationId": "skipMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "The number of messages to skip", + "format": "int32", + "in": "path", + "name": "numMessages", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Skipping messages on a partitioned topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skipping messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip_all": { + "post": { + "description": "Completely clears the backlog on the subscription.", + "operationId": "skipAllMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on non-persistent topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skip all messages on a topic subscription.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}": { + "put": { + "description": "Creates a subscription on the topic at the specified message id", + "operationId": "createSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to create position on", + "in": "path", + "name": "subscriptionName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + }, + { + "description": "Is replicated required to perform this operation", + "in": "query", + "name": "replicated", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Create subscription on non persistent topic is not supported" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a subscription on the topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate": { + "delete": { + "description": "", + "operationId": "removeSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Subscription message dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscription message dispatch rate configuration for specified topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled": { + "delete": { + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription types enabled for specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get is enable sub type fors specified topic.", + "tags": [ + "non-persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Enable sub types for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set is enable sub types for specified topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/subscriptions": { + "get": { + "description": "", + "operationId": "getSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of persistent subscriptions for a given topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/terminate": { + "post": { + "description": "", + "operationId": "terminate", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/MessageId" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a partitioned topic is not allowed" + }, + "406": { + "description": "Need to provide a persistent topic name" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate a topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/terminate/partitions": { + "post": { + "description": "", + "operationId": "terminatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a non-partitioned topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate all partitioned topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/truncate": { + "delete": { + "description": "NonPersistentTopic does not support truncate.", + "operationId": "truncateTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "412": { + "description": "NonPersistentTopic does not support truncate." + } + }, + "summary": "Truncate a topic.", + "tags": [ + "non-persistent topic" + ] + } + }, + "/non-persistent/{tenant}/{namespace}/{topic}/unload": { + "put": { + "description": "", + "operationId": "unloadTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "This operation requires super-user access" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "The tenant/namespace/topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Unload a topic", + "tags": [ + "non-persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}": { + "get": { + "description": "", + "operationId": "getList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify the bundle name", + "in": "query", + "name": "bundle", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespacee" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of topics under a namespace.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/partitioned": { + "get": { + "description": "", + "operationId": "getPartitionedTopicList", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin or operate permission on the namespace" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Namespace name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get the list of partitioned topics under a namespace.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}": { + "delete": { + "description": "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.", + "operationId": "deleteTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic has active producers/subscriptions" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "This is the only REST endpoint from which non-partitioned topics could be created.", + "operationId": "createNonPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Key value pair properties for the topic metadata", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a non-partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireMessagesForAllSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on all subscriptions of topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlog": { + "get": { + "description": "", + "operationId": "getBacklog", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentOfflineTopicStats" + } + }, + "404": { + "description": "Namespace does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get estimated backlog for offline topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogQuota": { + "delete": { + "description": "", + "operationId": "removeBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove a backlog quota policy from a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setBacklogQuota", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "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": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Specified backlog quota exceeds retention quota. Increase retention quota and retry request" + } + }, + "summary": "Set a backlog quota for a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap": { + "get": { + "description": "", + "operationId": "getBacklogQuotaMap", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic policy does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get backlog quota map on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/backlogSize": { + "put": { + "description": "", + "operationId": "getBacklogSizeByMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Calculate backlog size by a message ID (in bytes).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/compaction": { + "get": { + "description": "", + "operationId": "compactionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist, or compaction hasn't run" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the status of a compaction operation for a topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "compact", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Compaction already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Trigger a compaction operation on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/compactionThreshold": { + "delete": { + "description": "", + "operationId": "removeCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setCompactionThreshold", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set compaction threshold configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/createMissedPartitions": { + "post": { + "description": "", + "operationId": "createMissedPartitions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Create missed partitions of an existing partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled": { + "delete": { + "description": "", + "operationId": "removeDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove deduplication configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Get deduplication configuration of a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplication", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "DeduplicationEnabled policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + } + }, + "summary": "Set deduplication enabled on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval": { + "delete": { + "description": "", + "operationId": "deleteDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDeduplicationSnapshotInterval", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Interval to take deduplication snapshot for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set deduplicationSnapshotInterval config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/delayedDelivery": { + "delete": { + "description": "", + "operationId": "deleteDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDelayedDeliveryPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Delayed delivery policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set delayed delivery messages config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/dispatchRate": { + "delete": { + "description": "", + "operationId": "removeDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/examinemessage": { + "get": { + "description": "", + "operationId": "examineMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": "latest", + "description": "Relative start position to examine message.It can be 'latest' or 'earliest'", + "enum": [ + "latest", + "earliest" + ], + "in": "query", + "name": "initialPosition", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The position of messages (default 1)", + "format": "int64", + "in": "query", + "name": "messagePosition", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, the message position does not exist" + }, + "405": { + "description": "If given partitioned topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Examine a specific message on a topic by position relative to the earliest or the latest message.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies": { + "delete": { + "description": "", + "operationId": "deleteInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setInactiveTopicPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "inactive topic policies for the specified topic", + "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 or topic doesn't exist" + } + }, + "summary": "Set inactive topic policies on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/internal-info": { + "get": { + "description": "", + "operationId": "getManagedLedgerInfo", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stored topic metadata.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/internalStats": { + "get": { + "description": "", + "operationId": "getInternalStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PersistentTopicInternalStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the internal stats for the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/lastMessageId": { + "get": { + "description": "", + "operationId": "getLastMessageId", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Return the last commit message id of topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}": { + "get": { + "description": "", + "operationId": "getMessageById", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The ledger id", + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "description": "The entry id", + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message by its messageId.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxConsumers": { + "delete": { + "description": "", + "operationId": "removeMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max consumers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxConsumers config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription": { + "delete": { + "description": "", + "operationId": "removeMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxConsumersPerSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set max consumers per subscription configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxMessageSize": { + "delete": { + "description": "", + "operationId": "removeMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxMessageSize", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max message size of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxConsumers" + } + }, + "summary": "Set maxMessageSize config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxProducers": { + "delete": { + "description": "", + "operationId": "removeMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxProducers", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "The max producers of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxProducers" + } + }, + "summary": "Set maxProducers config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic": { + "delete": { + "description": "", + "operationId": "removeMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxSubscriptionsPerTopic", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "The max subscriptions of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of maxSubscriptionsPerTopic" + } + }, + "summary": "Set maxSubscriptionsPerTopic config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnConsumer", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on consumer policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per consumer config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription": { + "delete": { + "description": "", + "operationId": "deleteMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMaxUnackedMessagesOnSubscription", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Max unacked messages on subscription policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set max unacked messages per subscription config on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/messageTTL": { + "delete": { + "description": "", + "operationId": "removeMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Remove message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setMessageTTL", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "TTL in seconds for the specified namespace", + "format": "int32", + "in": "query", + "name": "messageTTL", + "required": true, + "type": "integer" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Not authenticate to perform the request or policy is read only" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + }, + "412": { + "description": "Invalid message TTL value" + } + }, + "summary": "Set message TTL in seconds for a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}": { + "get": { + "description": "", + "operationId": "getMessageIdByTimestamp", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Specify the timestamp", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic is not non-partitioned and persistent" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get message ID published at or just after this absolute timestamp (in ms).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/offload": { + "get": { + "description": "", + "operationId": "offloadStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "triggerOffload", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Message ID is null" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation is not allowed on the persistent topic" + }, + "409": { + "description": "Offload already running" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Offload a prefix of a topic to long term storage", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/offloadPolicies": { + "delete": { + "description": "", + "operationId": "removeOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Delete offload policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get offload policies on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setOffloadPolicies", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Offload policies for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/OffloadPoliciesImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + } + }, + "summary": "Set offload policies on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/partitioned-stats": { + "get": { + "description": "", + "operationId": "getPartitionedStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": true, + "description": "Get per partition stats", + "in": "query", + "name": "perPartition", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return the earliest time in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/partitions": { + "delete": { + "description": "It will also delete all the partitions of the topic if it exists.", + "operationId": "deletePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Stop all producer/consumer/replicator and delete topic forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Delete the topic's schema storage", + "in": "query", + "name": "deleteSchema", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Partitioned topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Delete a partitioned topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPartitionedMetadata", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Is check configuration required to automatically create topic", + "in": "query", + "name": "checkAllowAutoCreation", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get partitioned topic metadata.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "It only increments partitions of existing non-global partitioned-topic", + "operationId": "updatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "updateLocalTopicOnly", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "description": "The number of partitions for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "default": 0, + "format": "int32", + "type": "integer" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic does not exist" + }, + "412": { + "description": "Partitioned topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Increment partitions of an existing partitioned topic.", + "tags": [ + "persistent topic" + ] + }, + "put": { + "consumes": [ + "application/vnd.partitioned-topic-metadata+json" + ], + "description": "It needs to be called before creating a producer on a partitioned topic.", + "operationId": "createPartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "The metadata for the topic", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PartitionedTopicMetadata" + } + }, + { + "default": false, + "in": "query", + "name": "createLocalTopicOnly", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant does not exist" + }, + "406": { + "description": "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic" + }, + "409": { + "description": "Partitioned topic already exist" + }, + "412": { + "description": "Failed Reason : Name is invalid or Namespace does not have any clusters configured" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a partitioned topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/permissions": { + "get": { + "description": "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.", + "operationId": "getPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "type": "object" + } + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get permissions on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/permissions/{role}": { + "delete": { + "description": "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).", + "operationId": "revokePermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "412": { + "description": "Permissions are not set at the topic level" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Revoke permissions on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "grantPermissionsOnTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Client role to which grant permissions", + "in": "path", + "name": "role", + "required": true, + "type": "string" + }, + { + "description": "Actions to be granted (produce,functions,consume)", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "produce", + "consume", + "functions", + "sources", + "sinks", + "packages" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "tenant/namespace/topic doesn't exit" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Grant a new permission to a role on a single topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/persistence": { + "delete": { + "description": "", + "operationId": "removePersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPersistence", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Bookkeeper persistence policies for specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PersistencePolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid persistence policies" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set configuration of persistence policies for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/properties": { + "get": { + "description": "", + "operationId": "getProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is invalid" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get topic properties.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/publishRate": { + "delete": { + "description": "", + "operationId": "removePublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove message publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setPublishRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PublishRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set message publish rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/replication": { + "delete": { + "description": "", + "operationId": "removeReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "enum": [ + "destination_storage", + "message_age" + ], + "in": "query", + "name": "backlogQuotaType", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove the replication clusters from a topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, enable the topic level policy and retry" + } + }, + "summary": "Get the replication clusters for a topic", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicationClusters", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "List of replication clusters", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic is not global or invalid cluster ids" + } + }, + "summary": "Set the replication clusters for a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate": { + "delete": { + "description": "", + "operationId": "removeReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatorDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Replicator dispatch rate of the topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Invalid value of replicatorDispatchRate" + } + }, + "summary": "Set replicatorDispatchRate config for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/retention": { + "delete": { + "description": "", + "operationId": "removeRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Remove retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setRetention", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Retention policies for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/RetentionPolicies" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Retention Quota must exceed backlog quota" + } + }, + "summary": "Set retention configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy": { + "delete": { + "description": "", + "operationId": "removeSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Remove schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the cluster", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Get schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + }, + "put": { + "description": "", + "operationId": "setSchemaCompatibilityStrategy", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Strategy used to check the compatibility of new schema", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Operation not allowed on persistent topic" + } + }, + "summary": "Set schema compatibility strategy on a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/stats": { + "get": { + "description": "", + "operationId": "getStats", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return precise backlog or imprecise backlog", + "in": "query", + "name": "getPreciseBacklog", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.", + "in": "query", + "name": "subscriptionBacklogSize", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "If return time of the earliest message in backlog", + "in": "query", + "name": "getEarliestTimeInBacklog", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/TopicStats" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the stats for the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscribeRate": { + "delete": { + "description": "", + "operationId": "removeSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscribeRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Subscribe rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SubscribeRate" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscribe rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}": { + "delete": { + "description": "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.", + "operationId": "deleteSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be deleted", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Disconnect and close all consumers and delete subscription forcefully", + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Subscription has active consumers" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Delete a subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}": { + "post": { + "description": "", + "operationId": "expireTopicMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to be Expiry messages on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Expires beyond the specified number of seconds", + "format": "int32", + "in": "path", + "name": "expireTimeInSeconds", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Expiry messages on a non-persistent topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Expiry messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}": { + "get": { + "description": "", + "operationId": "peekNthMessage", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscribed message expired", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The number of messages (default 1)", + "format": "int32", + "in": "path", + "name": "messagePosition", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic, subscription or the message position does not exist" + }, + "405": { + "description": "Skipping messages on a non-persistent topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Peek nth message on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/properties": { + "put": { + "description": "", + "operationId": "updateSubscriptionProperties", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to update", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "The new properties", + "in": "body", + "name": "body", + "required": false, + "schema": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Replaces all the properties on the given subscription", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus": { + "get": { + "description": "", + "operationId": "getReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Get replicated subscription status on a topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setReplicatedSubscriptionStatus", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Whether to enable replicated subscription", + "in": "body", + "name": "body", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on this topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Enable or disable a replicated subscription on a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursorOnPosition", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId to reset back to (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "412": { + "description": "Unable to find position for position specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to given position.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}": { + "post": { + "description": "It fence cursor and disconnects all active consumers before reseting cursor.", + "operationId": "resetCursor", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to reset position on", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "description": "the timestamp to reset back", + "format": "int64", + "in": "path", + "name": "timestamp", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Method Not Allowed" + }, + "412": { + "description": "Failed to reset cursor on subscription or Unable to find position for timestamp specified" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Reset subscription to message position closest to absolute timestamp (in ms).", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}": { + "post": { + "description": "", + "operationId": "skipMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "The number of messages to skip", + "format": "int32", + "in": "path", + "name": "numMessages", + "required": true, + "type": "integer" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Skipping messages on a partitioned topic is not allowed" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skipping messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip_all": { + "post": { + "description": "Completely clears the backlog on the subscription.", + "operationId": "skipAllMessages", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Name of subscription", + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic or subscription does not exist" + }, + "405": { + "description": "Operation not allowed on non-persistent topic" + }, + "412": { + "description": "Can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Skip all messages on a topic subscription.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}": { + "put": { + "description": "Creates a subscription on the topic at the specified message id", + "operationId": "createSubscription", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "Subscription to create position on", + "in": "path", + "name": "subscriptionName", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)", + "in": "body", + "name": "messageId", + "required": false, + "schema": { + "$ref": "#/definitions/ResetCursorData" + } + }, + { + "description": "Is replicated required to perform this operation", + "in": "query", + "name": "replicated", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "400": { + "description": "Create subscription on non persistent topic is not supported" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic/Subscription does not exist" + }, + "405": { + "description": "Not supported for partitioned topics" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Create a subscription on the topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate": { + "delete": { + "description": "", + "operationId": "removeSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "applied", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionDispatchRate", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "description": "Subscription message dispatch rate for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/DispatchRateImpl" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set subscription message dispatch rate configuration for specified topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled": { + "delete": { + "description": "", + "operationId": "removeSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, to enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove subscription types enabled for specified topic.", + "tags": [ + "persistent topic" + ] + }, + "get": { + "description": "", + "operationId": "getSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Get is enable sub type fors specified topic.", + "tags": [ + "persistent topic" + ] + }, + "post": { + "description": "", + "operationId": "setSubscriptionTypesEnabled", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "isGlobal", + "required": false, + "type": "boolean" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "description": "Enable sub types for the specified topic", + "in": "body", + "name": "body", + "required": false, + "schema": { + "items": { + "enum": [ + "Exclusive", + "Shared", + "Failover", + "Key_Shared" + ], + "type": "string" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Topic level policy is disabled, please enable the topic level policy and retry" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set is enable sub types for specified topic", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/subscriptions": { + "get": { + "description": "", + "operationId": "getSubscriptions", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Get the list of persistent subscriptions for a given topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/terminate": { + "post": { + "description": "", + "operationId": "terminate", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/MessageId" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a partitioned topic is not allowed" + }, + "406": { + "description": "Need to provide a persistent topic name" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate a topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/terminate/partitions": { + "post": { + "description": "", + "operationId": "terminatePartitionedTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "405": { + "description": "Termination of a non-partitioned topic is not allowed" + }, + "412": { + "description": "Topic name is not valid" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Terminate all partitioned topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/truncate": { + "delete": { + "description": "The truncate operation will move all cursors to the end of the topic and delete all inactive ledgers.", + "operationId": "truncateTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Truncate a topic.", + "tags": [ + "persistent topic" + ] + } + }, + "/persistent/{tenant}/{namespace}/{topic}/unload": { + "put": { + "description": "", + "operationId": "unloadTopic", + "parameters": [ + { + "description": "Specify the tenant", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Specify the namespace", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Specify topic name", + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "description": "Whether leader broker redirected this call to this broker. For internal use.", + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "Don't have permission to administrate resources on this tenant" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Topic does not exist" + }, + "409": { + "description": "Concurrent modification" + }, + "412": { + "description": "Topic name is not valid or can't find owner for topic" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Failed to validate global cluster configuration" + } + }, + "summary": "Unload a topic", + "tags": [ + "persistent topic" + ] + } + }, + "/resource-quotas": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getDefaultResourceQuota", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the default quota", + "tags": [ + "resource-quotas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setDefaultResourceQuota", + "parameters": [ + { + "description": "Default resource quota", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Set the default quota", + "tags": [ + "resource-quotas" + ] + } + }, + "/resource-quotas/{tenant}/{namespace}/{bundle}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "removeNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Remove resource quota for a namespace.", + "tags": [ + "resource-quotas" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Namespace does not exist" + } + }, + "summary": "Get resource quota of a namespace bundle.", + "tags": [ + "resource-quotas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "setNamespaceBundleResourceQuota", + "parameters": [ + { + "description": "Tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "Namespace name within the specified tenant", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "Namespace bundle range", + "in": "path", + "name": "bundle", + "required": true, + "type": "string" + }, + { + "description": "Resource quota for the specified namespace", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceQuota" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace" + }, + "403": { + "description": "Don't have admin permission" + }, + "409": { + "description": "Concurrent modification" + } + }, + "summary": "Set resource quota on a namespace.", + "tags": [ + "resource-quotas" + ] + } + }, + "/resourcegroups": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getResourceGroups", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "403": { + "description": "Don't have admin permission" + } + }, + "summary": "Get the list of all the resourcegroups.", + "tags": [ + "resourcegroups" + ] + } + }, + "/resourcegroups/{resourcegroup}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "ResourceGroup doesn't exist" + }, + "409": { + "description": "ResourceGroup is in use" + } + }, + "summary": "Delete a resourcegroup.", + "tags": [ + "resourcegroups" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/ResourceGroup" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "ResourceGroup doesn't exist" + } + }, + "summary": "Get the rate limiters specified for a resourcegroup.", + "tags": [ + "resourcegroups" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "createOrUpdateResourceGroup", + "parameters": [ + { + "in": "path", + "name": "resourcegroup", + "required": true, + "type": "string" + }, + { + "description": "Rate limiters for the resourcegroup", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ResourceGroup" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "cluster doesn't exist" + } + }, + "summary": "Creates a new resourcegroup with the specified rate limiters", + "tags": [ + "resourcegroups" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/compatibility": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "testCompatibility", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/IsCompatibilityResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "test the schema compatibility", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schema": { + "delete": { + "description": "", + "operationId": "deleteSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/DeleteSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Delete the schema of a topic", + "tags": [ + "schemas" + ] + }, + "get": { + "description": "", + "operationId": "getSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the schema of a topic", + "tags": [ + "schemas" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "postSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/PostSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "409": { + "description": "Incompatible schema" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "422": { + "description": "Invalid schema data" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Update the schema of a topic", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schema/{version}": { + "get": { + "description": "", + "operationId": "getSchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the schema of a topic at a given version", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/schemas": { + "get": { + "description": "", + "operationId": "getAllSchemas", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/GetAllVersionsSchemaResponse" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get the all schemas of a topic", + "tags": [ + "schemas" + ] + } + }, + "/schemas/{tenant}/{namespace}/{topic}/version": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getVersionBySchema", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting a schema payload. An example of the expected schema can be found down here.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PostSchemaPayload" + }, + "x-examples": { + "application/json": "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }" + } + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongSchemaVersion" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + }, + "401": { + "description": "Client is not authorized or Don't have admin permission" + }, + "403": { + "description": "Client is not authenticated" + }, + "404": { + "description": "Tenant or Namespace or Topic doesn't exist" + }, + "412": { + "description": "Failed to find the ownership for the topic" + }, + "422": { + "description": "Invalid schema data" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "get the version of the schema", + "tags": [ + "schemas" + ] + } + }, + "/tenants": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenants", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant doesn't exist" + } + }, + "summary": "Get the list of existing tenants.", + "tags": [ + "tenants" + ] + } + }, + "/tenants/{tenant}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deleteTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "force", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + }, + "405": { + "description": "Broker doesn't allow forced deletion of tenants" + }, + "409": { + "description": "The tenant still has active namespaces" + } + }, + "summary": "Delete a tenant and all namespaces and topics under it.", + "tags": [ + "tenants" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getTenantAdmin", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + } + }, + "summary": "Get the admin configuration for a given tenant.", + "tags": [ + "tenants" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "description": "This operation requires Pulsar super-user privileges.", + "operationId": "updateTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "TenantInfo", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/TenantInfo" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Tenant does not exist" + }, + "409": { + "description": "Tenant already exists" + }, + "412": { + "description": "Clusters do not exist" + } + }, + "summary": "Update the admins for a tenant.", + "tags": [ + "tenants" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "This operation requires Pulsar super-user privileges.", + "operationId": "createTenant", + "parameters": [ + { + "description": "The tenant name", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "TenantInfo", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/TenantInfo" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "The requester doesn't have admin permissions" + }, + "409": { + "description": "Tenant already exists" + }, + "412": { + "description": "Clusters do not exist" + } + }, + "summary": "Create a new tenant.", + "tags": [ + "tenants" + ] + } + }, + "/worker-stats/functionsmetrics": { + "get": { + "description": "Requested should be executed by Monitoring agent on each worker to fetch the metrics", + "operationId": "getStats", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/WorkerFunctionInstanceStats" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have admin permission" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Get metrics for all functions owned by worker" + } + }, + "/worker-stats/metrics": { + "get": { + "description": "Request should be executed by Monitoring agent on each worker to fetch the worker-metrics", + "operationId": "getMetrics", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/Metrics" + }, + "type": "array" + } + }, + "401": { + "description": "Don't have admin permission" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Gets the metrics for Monitoring" + } + }, + "/worker/assignments": { + "get": { + "description": "", + "operationId": "getAssignments", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches information about which Pulsar Functions are assigned to which Pulsar clusters" + } + }, + "/worker/cluster": { + "get": { + "description": "", + "operationId": "getCluster", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/WorkerInfo" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches information about the Pulsar cluster running Pulsar Functions" + } + }, + "/worker/cluster/leader": { + "get": { + "description": "", + "operationId": "getClusterLeader", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/WorkerInfo" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Fetches info about the leader node of the Pulsar cluster running Pulsar Functions" + } + }, + "/worker/cluster/leader/ready": { + "get": { + "description": "", + "operationId": "isLeaderReady", + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "boolean" + } + }, + "503": { + "description": "Worker service is not running" + } + }, + "summary": "Checks if this node is the leader and is ready to service requests" + } + }, + "/worker/connectors": { + "get": { + "description": "", + "operationId": "getConnectorsList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode" + } + }, + "/worker/drain": { + "get": { + "description": "", + "operationId": "getDrainStatus", + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Get the status of any ongoing drain operation at this worker" + }, + "put": { + "description": "", + "operationId": "drain", + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "409": { + "description": "Drain already in progress" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Drains this worker, i.e., moves its work-assignments to other workers" + } + }, + "/worker/leader/drain": { + "get": { + "description": "", + "operationId": "getDrainStatusFromLeader", + "parameters": [ + { + "in": "query", + "name": "workerId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LongRunningProcessStatus" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Get the status of any ongoing drain operation at the specified worker" + }, + "put": { + "description": "", + "operationId": "drainAtLeader", + "parameters": [ + { + "in": "query", + "name": "workerId", + "required": false, + "type": "string" + } + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "409": { + "description": "Drain already in progress" + }, + "503": { + "description": "Worker service is not ready" + } + }, + "summary": "Drains the specified worker, i.e., moves its work-assignments to other workers" + } + }, + "/worker/rebalance": { + "put": { + "description": "", + "operationId": "rebalance", + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Triggers a rebalance of functions to workers" + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "bookies" + }, + { + "name": "broker-stats" + }, + { + "name": "brokers" + }, + { + "name": "clusters" + }, + { + "name": "namespaces" + }, + { + "name": "non-persistent topic" + }, + { + "name": "persistent topic" + }, + { + "name": "resource-quotas" + }, + { + "name": "resourcegroups" + }, + { + "name": "schemas" + }, + { + "name": "tenants" + } + ] +} diff --git a/static/swagger/2.10.5/v2/swaggerlookup.json b/static/swagger/2.10.5/v2/swaggerlookup.json new file mode 100644 index 000000000000..224562a78f7f --- /dev/null +++ b/static/swagger/2.10.5/v2/swaggerlookup.json @@ -0,0 +1,319 @@ +{ + "basePath": "/lookup", + "definitions": { + "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" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CompletableFuture": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CompletableFutureByteBuf": { + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LookupData": { + "properties": { + "brokerUrl": { + "type": "string" + }, + "brokerUrlSsl": { + "type": "string" + }, + "brokerUrlTls": { + "type": "string" + }, + "httpUrl": { + "type": "string" + }, + "httpUrlTls": { + "type": "string" + }, + "nativeUrl": { + "type": "string" + } + }, + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for lookup operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Lookup REST API", + "version": "v2" + }, + "paths": { + "/v2/topic/{topic-domain}/{tenant}/{namespace}/{topic}": { + "get": { + "description": "", + "operationId": "TopicLookup_lookupTopicAsync", + "parameters": [ + { + "in": "path", + "name": "topic-domain", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "listenerName", + "required": false, + "type": "string" + }, + { + "in": "header", + "name": "X-Pulsar-ListenerName", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/LookupData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this topic" + } + }, + "summary": "Get the owner broker of the given topic.", + "tags": [ + "lookup" + ] + } + }, + "/v2/topic/{topic-domain}/{tenant}/{namespace}/{topic}/bundle": { + "get": { + "description": "", + "operationId": "TopicLookup_getNamespaceBundle", + "parameters": [ + { + "in": "path", + "name": "topic-domain", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "403": { + "description": "Don't have admin permission" + }, + "405": { + "description": "Invalid topic domain type" + } + }, + "summary": "Get the namespace bundle which the given topic belongs to.", + "tags": [ + "lookup" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "lookup" + } + ] +} diff --git a/static/swagger/2.10.5/v3/swaggerfunctions.json b/static/swagger/2.10.5/v3/swaggerfunctions.json new file mode 100644 index 000000000000..83590d363841 --- /dev/null +++ b/static/swagger/2.10.5/v3/swaggerfunctions.json @@ -0,0 +1,3469 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConsumerConfig": { + "properties": { + "consumerProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "poolMessages": { + "type": "boolean" + }, + "receiverQueueSize": { + "format": "int32", + "type": "integer" + }, + "regexPattern": { + "type": "boolean" + }, + "schemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schemaType": { + "type": "string" + }, + "serdeClassName": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "EncryptionContext": { + "properties": { + "algorithm": { + "type": "string" + }, + "batchSize": { + "format": "int32", + "type": "integer" + }, + "compressionType": { + "enum": [ + "NONE", + "LZ4", + "ZLIB", + "ZSTD", + "SNAPPY" + ], + "type": "string" + }, + "keys": { + "additionalProperties": { + "$ref": "#/definitions/EncryptionKey" + }, + "type": "object" + }, + "param": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "uncompressedMessageSize": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionKey": { + "properties": { + "keyValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionConfig": { + "properties": { + "autoAck": { + "type": "boolean" + }, + "batchBuilder": { + "type": "string" + }, + "className": { + "type": "string" + }, + "cleanupSubscription": { + "type": "boolean" + }, + "customRuntimeOptions": { + "type": "string" + }, + "customSchemaInputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "customSchemaOutputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "customSerdeInputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "deadLetterTopic": { + "type": "string" + }, + "exposePulsarAdminClientEnabled": { + "type": "boolean" + }, + "forwardSourceMessageProperty": { + "type": "boolean" + }, + "fqfn": { + "type": "string" + }, + "go": { + "type": "string" + }, + "inputSpecs": { + "additionalProperties": { + "$ref": "#/definitions/ConsumerConfig" + }, + "type": "object" + }, + "inputs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jar": { + "type": "string" + }, + "logTopic": { + "type": "string" + }, + "maxMessageRetries": { + "format": "int32", + "type": "integer" + }, + "maxPendingAsyncRequests": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "output": { + "type": "string" + }, + "outputSchemaType": { + "type": "string" + }, + "outputSerdeClassName": { + "type": "string" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "producerConfig": { + "$ref": "#/definitions/ProducerConfig" + }, + "py": { + "type": "string" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "retainKeyOrdering": { + "type": "boolean" + }, + "retainOrdering": { + "type": "boolean" + }, + "runtime": { + "enum": [ + "JAVA", + "PYTHON", + "GO" + ], + "type": "string" + }, + "runtimeFlags": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "subName": { + "type": "string" + }, + "subscriptionPosition": { + "enum": [ + "Latest", + "Earliest" + ], + "type": "string" + }, + "tenant": { + "type": "string" + }, + "timeoutMs": { + "format": "int64", + "type": "integer" + }, + "topicsPattern": { + "type": "string" + }, + "userConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "windowConfig": { + "$ref": "#/definitions/WindowConfig" + } + }, + "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" + }, + "FunctionInstanceStatsDataBaseImpl": { + "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" + }, + "FunctionInstanceStatsDataImpl": { + "properties": { + "1min": { + "$ref": "#/definitions/FunctionInstanceStatsDataBaseImpl" + }, + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "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" + }, + "FunctionInstanceStatsImpl": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "metrics": { + "$ref": "#/definitions/FunctionInstanceStatsData" + } + }, + "type": "object" + }, + "FunctionInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/FunctionInstanceStatusData" + } + }, + "type": "object" + }, + "FunctionInstanceStatusData": { + "properties": { + "averageLatency": { + "format": "double", + "type": "number" + }, + "error": { + "type": "string" + }, + "lastInvocationTime": { + "format": "int64", + "type": "integer" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestUserExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReceived": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSuccessfullyProcessed": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numUserExceptions": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "FunctionState": { + "properties": { + "byteValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "key": { + "type": "string" + }, + "numberValue": { + "format": "int64", + "type": "integer" + }, + "stringValue": { + "type": "string" + }, + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FunctionStatsImpl": { + "properties": { + "1min": { + "$ref": "#/definitions/FunctionInstanceStatsDataBaseImpl" + }, + "avgProcessLatency": { + "format": "double", + "type": "number" + }, + "instances": { + "items": { + "$ref": "#/definitions/FunctionInstanceStatsImpl" + }, + "type": "array" + }, + "lastInvocation": { + "format": "int64", + "type": "integer" + }, + "processedSuccessfullyTotal": { + "format": "int64", + "type": "integer" + }, + "receivedTotal": { + "format": "int64", + "type": "integer" + }, + "systemExceptionsTotal": { + "format": "int64", + "type": "integer" + }, + "userExceptionsTotal": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FunctionStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/FunctionInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "InputStream": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Message": { + "properties": { + "brokerPublishTime": { + "format": "int64", + "type": "integer" + }, + "data": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "encryptionCtx": { + "$ref": "#/definitions/EncryptionContext" + }, + "eventTime": { + "format": "int64", + "type": "integer" + }, + "index": { + "format": "int64", + "type": "integer" + }, + "key": { + "type": "string" + }, + "keyBytes": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "messageId": { + "$ref": "#/definitions/MessageId" + }, + "orderingKey": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "producerName": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "publishTime": { + "format": "int64", + "type": "integer" + }, + "readerSchema": { + "$ref": "#/definitions/SchemaObject" + }, + "redeliveryCount": { + "format": "int32", + "type": "integer" + }, + "replicated": { + "type": "boolean" + }, + "replicatedFrom": { + "type": "string" + }, + "schemaVersion": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "sequenceId": { + "format": "int64", + "type": "integer" + }, + "topicName": { + "type": "string" + }, + "value": { + "type": "object" + } + }, + "type": "object" + }, + "MessageId": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProducerConfig": { + "properties": { + "batchBuilder": { + "type": "string" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "maxPendingMessages": { + "format": "int32", + "type": "integer" + }, + "maxPendingMessagesAcrossPartitions": { + "format": "int32", + "type": "integer" + }, + "useThreadLocalProducers": { + "type": "boolean" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Schema": { + "properties": { + "nativeSchema": { + "type": "object" + }, + "schemaInfo": { + "$ref": "#/definitions/SchemaInfo" + } + }, + "type": "object" + }, + "SchemaInfo": { + "properties": { + "name": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schema": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "schemaDefinition": { + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "SchemaObject": { + "properties": { + "nativeSchema": { + "type": "object" + }, + "schemaInfo": { + "$ref": "#/definitions/SchemaInfo" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "WindowConfig": { + "properties": { + "actualWindowFunctionClassName": { + "type": "string" + }, + "lateDataTopic": { + "type": "string" + }, + "maxLagMs": { + "format": "int64", + "type": "integer" + }, + "slidingIntervalCount": { + "format": "int32", + "type": "integer" + }, + "slidingIntervalDurationMs": { + "format": "int64", + "type": "integer" + }, + "timestampExtractorClassName": { + "type": "string" + }, + "watermarkEmitIntervalMs": { + "format": "int64", + "type": "integer" + }, + "windowLengthCount": { + "format": "int32", + "type": "integer" + }, + "windowLengthDurationMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Functions operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Functions REST API", + "version": "v3" + }, + "paths": { + "/functions/connectors": { + "get": { + "consumes": [ + "application/json" + ], + "deprecated": true, + "description": "", + "operationId": "getConnectorsList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches a list of supported Pulsar IO connectors currently running in cluster mode", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listFunctions", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + } + }, + "summary": "Lists all Pulsar Functions currently deployed in a given namespace", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Pulsar Function was successfully deleted" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Deletes a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Fetches information about a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a function (in any languages that you are familiar with) \nto a Pulsar cluster. Follow the steps below. \n1. Create a JSON object using some of the following parameters.\nA JSON value presenting configuration payload of a Pulsar Function.\n An example of the expected Pulsar Function can be found here.\n- **autoAck**\n Whether or not the framework acknowledges messages automatically.\n- **runtime**\n What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]\n- **resources**\n The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.\n- **className**\n The class name of a Pulsar Function.\n- **customSchemaInputs**\n The map of input topics to Schema class names (specified as a JSON object).\n- **customSerdeInputs**\n The map of input topics to SerDe class names (specified as a JSON object).\n- **deadLetterTopic**\n Messages that are not processed successfully are sent to `deadLetterTopic`.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime. Note that in thread mode, these flags have no impact.\n- **fqfn**\n The Fully Qualified Function Name (FQFN) for the Pulsar Function.\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **inputs**\n The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function.\n- **jar**\n Path to the JAR file for the Pulsar Function (if the Pulsar Function is written in Java). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **py**\n Path to the main Python file or Python wheel file for the Pulsar Function (if the Pulsar Function is written in Python).\n- **go**\n Path to the main Go executable binary for the Pulsar Function (if the Pulsar Function is written in Go).\n- **logTopic**\n The topic to which the logs of a Pulsar Function are produced.\n- **maxMessageRetries**\n How many times should we try to process a message before giving up.\n- **output**\n The output topic of a Pulsar Function (If none is specified, no output is written).\n- **outputSerdeClassName**\n The SerDe class to be used for messages output by the Pulsar Function.\n- **parallelism**\n The parallelism factor of a Pulsar Function (i.e. the number of a Pulsar Function instances to run).\n- **processingGuarantees**\n The processing guarantees (that is, delivery semantics) applied to the Pulsar Function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **retainOrdering**\n Function consumes and processes messages in order.\n- **outputSchemaType**\n Represents either a builtin schema type (for example: 'avro', 'json', ect) or the class name for a Schema implementation.- **subName**\n Pulsar source subscription name. User can specify a subscription-name for the input-topic consumer.\n- **windowConfig**\n The window configuration of a Pulsar Function.\n- **timeoutMs**\n The message timeout in milliseconds.\n- **topicsPattern**\n The topic pattern to consume from a list of topics under a namespace that match the pattern. [input] and [topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)\n- **userConfig**\n A map of user-defined configurations (specified as a JSON object).\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the Pulsar Function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **cleanupSubscription**\n Whether the subscriptions of a Pulsar Function created or used should be deleted when the Pulsar Function is deleted.\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/FunctionConfig" + }, + "x-examples": { + "text/plain": "Example \n\n 1. Create a JSON object. \n\n{\n\t\"inputs\": \"persistent://public/default/input-topic\",\n\t\"parallelism\": \"4\",\n\t\"output\": \"persistent://public/default/output-topic\",\n\t\"log-topic\": \"persistent://public/default/log-topic\",\n\t\"classname\": \"org.example.test.ExclamationFunction\",\n\t\"jar\": \"java-function-1.0-SNAPSHOT.jar\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python). \n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('functionConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully created" + }, + "400": { + "description": "Invalid request (The Pulsar Function already exists, etc.)" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + } + }, + "summary": "Creates a new Pulsar Function in cluster mode", + "tags": [ + "functions" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.\n- **autoAck**\n Whether or not the framework acknowledges messages automatically.\n- **runtime**\n What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]\n- **resources**\n The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.\n- **className**\n The class name of a Pulsar Function.\n- **customSchemaInputs**\n The map of input topics to Schema class names (specified as a JSON object).\n- **customSerdeInputs**\n The map of input topics to SerDe class names (specified as a JSON object).\n- **deadLetterTopic**\n Messages that are not processed successfully are sent to `deadLetterTopic`.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime. Note that in thread mode, these flags have no impact.\n- **fqfn**\n The Fully Qualified Function Name (FQFN) for the Pulsar Function.\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **inputs**\n The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function.\n- **jar**\n Path to the JAR file for the Pulsar Function (if the Pulsar Function is written in Java). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **py**\n Path to the main Python file or Python wheel file for the Pulsar Function (if the Pulsar Function is written in Python).\n- **go**\n Path to the main Go executable binary for the Pulsar Function (if the Pulsar Function is written in Go).\n- **logTopic**\n The topic to which the logs of a Pulsar Function are produced.\n- **maxMessageRetries**\n How many times should we try to process a message before giving up.\n- **output**\n The output topic of a Pulsar Function (If none is specified, no output is written).\n- **outputSerdeClassName**\n The SerDe class to be used for messages output by the Pulsar Function.\n- **parallelism**\n The parallelism factor of a Pulsar Function (i.e. the number of a Pulsar Function instances to run).\n- **processingGuarantees**\n The processing guarantees (that is, delivery semantics) applied to the Pulsar Function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **retainOrdering**\n Function consumes and processes messages in order.\n- **outputSchemaType**\n Represents either a builtin schema type (for example: 'avro', 'json', ect) or the class name for a Schema implementation.- **subName**\n Pulsar source subscription name. User can specify a subscription-name for the input-topic consumer.\n- **windowConfig**\n The window configuration of a Pulsar Function.\n- **timeoutMs**\n The message timeout in milliseconds.\n- **topicsPattern**\n The topic pattern to consume from a list of topics under a namespace that match the pattern. [input] and [topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)\n- **userConfig**\n A map of user-defined configurations (specified as a JSON object).\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the Pulsar Function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **cleanupSubscription**\n Whether the subscriptions of a Pulsar Function created or used should be deleted when the Pulsar Function is deleted.\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/FunctionConfig" + }, + "x-examples": { + "application/json": "{\n \"inputs\": persistent://public/default/input-topic,\n \"parallelism\": 4\n \"output\": persistent://public/default/output-topic\n \"log-topic\": persistent://public/default/log-topic\n \"classname\": org.example.test.ExclamationFunction\n \"jar\": java-function-1.0-SNAPSHOT.jar\n}" + } + }, + { + "description": "The update options is for the Pulsar Function that needs to be updated.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully updated" + }, + "400": { + "description": "Invalid request (The Pulsar Function doesn't exist, etc.)" + }, + "403": { + "description": "The requester doesn't have admin permissions" + } + }, + "summary": "Updates a Pulsar Function currently running in cluster mode", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Restart all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Start all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/state/{key}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionState", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The stats key", + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionState" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The key does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Fetch the current state associated with a Pulsar Function", + "tags": [ + "functions" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "putFunctionState", + "parameters": [ + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "key", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Put the state associated with a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/stats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionStats", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionStatsImpl" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the stats of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the status of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Stop all instances of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/trigger": { + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "triggerFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The value with which you want to trigger the Pulsar Function", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The path to the file that contains the data with which you'd like to trigger the Pulsar Function", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/InputStream" + } + }, + { + "description": "The specific topic name that the Pulsar Function consumes from which you want to inject the data to", + "in": "body", + "name": "body", + "required": false, + "schema": { + "type": "string" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "408": { + "description": "Request timeout" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Triggers a Pulsar Function with a user-specified value or file data", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are restarted", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Restart an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances sre started. ", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Start an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInstanceStats", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionInstanceStatsDataImpl" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the stats of a Pulsar Function instance", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getFunctionInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/FunctionInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this function" + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "The Pulsar Function doesn't exist" + } + }, + "summary": "Displays the status of a Pulsar Function instance", + "tags": [ + "functions" + ] + } + }, + "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopFunction", + "parameters": [ + { + "description": "The tenant of a Pulsar Function", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Function", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Function", + "in": "path", + "name": "functionName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are stopped. ", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Function does not exist" + }, + "500": { + "description": "Internal server error" + } + }, + "summary": "Stop an instance of a Pulsar Function", + "tags": [ + "functions" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "functions" + } + ] +} diff --git a/static/swagger/2.10.5/v3/swaggerpackages.json b/static/swagger/2.10.5/v3/swaggerpackages.json new file mode 100644 index 000000000000..04d19a0adcdf --- /dev/null +++ b/static/swagger/2.10.5/v3/swaggerpackages.json @@ -0,0 +1,1970 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PackageMetadata": { + "properties": { + "contact": { + "type": "string" + }, + "createTime": { + "format": "int64", + "type": "integer" + }, + "description": { + "type": "string" + }, + "modificationTime": { + "format": "int64", + "type": "integer" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "StreamingOutput": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Packages operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Packages REST API", + "version": "v3" + }, + "paths": { + "/packages/{type}/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listPackages", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return all the specified type package names in the specified namespace.", + "schema": { + "$ref": "#/definitions/PackageMetadata" + } + }, + "412": { + "description": "The package type is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get all the specified type packages in a namespace.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listPackageVersion", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the package versions of the specified package.", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get all the versions of a package.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}/{version}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "delete", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Delete the specified package successfully." + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Delete a package with the package name.", + "tags": [ + "packages" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "download", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Download the specified package successfully.", + "schema": { + "$ref": "#/definitions/StreamingOutput" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Download a package with the package name.", + "tags": [ + "packages" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "upload", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Upload the specified package successfully." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Upload a package.", + "tags": [ + "packages" + ] + } + }, + "/packages/{type}/{tenant}/{namespace}/{packageName}/{version}/metadata": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getMeta", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Return the metadata of the specified package.", + "schema": { + "$ref": "#/definitions/PackageMetadata" + } + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Get the metadata of a package.", + "tags": [ + "packages" + ] + }, + "put": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "updateMeta", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "packageName", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "version", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Update the metadata of the specified package successfully." + }, + "404": { + "description": "The specified package is not existent." + }, + "412": { + "description": "The package name is illegal." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "Package Management Service is not enabled in the broker." + } + }, + "summary": "Update the metadata of a package.", + "tags": [ + "packages" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "packages" + } + ] +} diff --git a/static/swagger/2.10.5/v3/swaggersink.json b/static/swagger/2.10.5/v3/swaggersink.json new file mode 100644 index 000000000000..6fefb2feb4e0 --- /dev/null +++ b/static/swagger/2.10.5/v3/swaggersink.json @@ -0,0 +1,2761 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConfigFieldDefinition": { + "properties": { + "attributes": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "typeName": { + "type": "string" + } + }, + "type": "object" + }, + "ConnectorDefinition": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sinkClass": { + "type": "string" + }, + "sinkConfigClass": { + "type": "string" + }, + "sourceClass": { + "type": "string" + }, + "sourceConfigClass": { + "type": "string" + } + }, + "type": "object" + }, + "ConsumerConfig": { + "properties": { + "consumerProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "poolMessages": { + "type": "boolean" + }, + "receiverQueueSize": { + "format": "int32", + "type": "integer" + }, + "regexPattern": { + "type": "boolean" + }, + "schemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "schemaType": { + "type": "string" + }, + "serdeClassName": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SinkConfig": { + "properties": { + "archive": { + "type": "string" + }, + "autoAck": { + "type": "boolean" + }, + "className": { + "type": "string" + }, + "cleanupSubscription": { + "type": "boolean" + }, + "configs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "customRuntimeOptions": { + "type": "string" + }, + "deadLetterTopic": { + "type": "string" + }, + "inputSpecs": { + "additionalProperties": { + "$ref": "#/definitions/ConsumerConfig" + }, + "type": "object" + }, + "inputs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxMessageRetries": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "negativeAckRedeliveryDelayMs": { + "format": "int64", + "type": "integer" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "retainKeyOrdering": { + "type": "boolean" + }, + "retainOrdering": { + "type": "boolean" + }, + "runtimeFlags": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "sourceSubscriptionName": { + "type": "string" + }, + "sourceSubscriptionPosition": { + "enum": [ + "Latest", + "Earliest" + ], + "type": "string" + }, + "tenant": { + "type": "string" + }, + "timeoutMs": { + "format": "int64", + "type": "integer" + }, + "topicToSchemaProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicToSchemaType": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicToSerdeClassName": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "topicsPattern": { + "type": "string" + } + }, + "type": "object" + }, + "SinkInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/SinkInstanceStatusData" + } + }, + "type": "object" + }, + "SinkInstanceStatusData": { + "properties": { + "error": { + "type": "string" + }, + "lastReceivedTime": { + "format": "int64", + "type": "integer" + }, + "latestSinkExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReadFromPulsar": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSinkExceptions": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numWrittenToSink": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "SinkStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/SinkInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Sink operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Sink REST API", + "version": "v3" + }, + "paths": { + "/sinks/builtinsinks": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Get builtin sinks successfully.", + "schema": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + } + }, + "summary": "Fetches the list of built-in Pulsar IO sinks", + "tags": [ + "sinks" + ] + } + }, + "/sinks/builtinsinks/{name}/configdefinition": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkConfigDefinition", + "parameters": [ + { + "description": "The name of the builtin sink", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConfigFieldDefinition" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "builtin sink does not exist" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about config fields associated with the specified builtin sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/reloadBuiltInSinks": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "reloadSinks", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Reload the built-in connectors, including Sources and Sinks", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listSinks", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid list request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "500": { + "description": "Internal server error (failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Lists all Pulsar Sinks currently deployed in a given namespace", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The Pulsar Sink was successfully deleted" + }, + "400": { + "description": "Invalid deregister request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "408": { + "description": "Got InterruptedException while deregistering the Pulsar Sink" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to deregister, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Deletes a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a sink (in any languages that you are familiar with) to a Pulsar cluster. Follow the steps below.\n1. Create a JSON object using some of the following parameters.\nA JSON value presenting config payload of a Pulsar Sink. All available configuration options are:\n- **classname**\n The class name of a Pulsar Sink if archive is file-url-path (file://)\n- **sourceSubscriptionName**\n Pulsar source subscription name if user wants a specific\n subscription-name for input-topic consumer\n- **inputs**\n The input topic or topics of a Pulsar Sink (specified as a JSON array)\n- **topicsPattern**\n TopicsPattern to consume from list of topics under a namespace that match the pattern. [input] and [topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)- **topicToSerdeClassName**\n The map of input topics to SerDe class names (specified as a JSON object)\n- **topicToSchemaType**\n The map of input topics to Schema types or class names (specified as a JSON object)\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **configs**\n The map of configs (specified as a JSON object)\n- **secrets**\n a map of secretName(aka how the secret is going to be \n accessed in the function via context) to an object that \n encapsulates how the secret is fetched by the underlying \n secrets provider. The type of an value here can be found by the \n SecretProviderConfigurator.getSecretObjectType() method. (specified as a JSON object)\n- **parallelism**\n The parallelism factor of a Pulsar Sink (i.e. the number of a Pulsar Sink instances to run \n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Sink. Possible Values: \"ATLEAST_ONCE\", \"ATMOST_ONCE\", \"EFFECTIVELY_ONCE\"\n- **retainOrdering**\n Boolean denotes whether the Pulsar Sink consumes and processes messages in order\n- **resources**\n {\"cpu\": 1, \"ram\": 2, \"disk\": 3} The CPU (in cores), RAM (in bytes) and disk (in bytes) that needs to be allocated per Pulsar Sink instance (applicable only to Docker runtime)\n- **autoAck**\n Boolean denotes whether or not the framework will automatically acknowledge messages\n- **timeoutMs**\n Long denotes the message timeout in milliseconds\n- **cleanupSubscription**\n Boolean denotes whether the subscriptions the functions created/used should be deleted when the functions is deleted\n- **runtimeFlags**\n Any flags that you want to pass to the runtime as a single string\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SinkConfig" + }, + "x-examples": { + "text/plain": "Example \n\n 1. Create a JSON object. \n\n{\n\t\"classname\": \"org.example.MySinkTest\",\n\t\"inputs\": [\"persistent://public/default/sink-input\"],\n\t\"processingGuarantees\": \"EFFECTIVELY_ONCE\",\n\t\"parallelism\": \"10\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python).\n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('sinkConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Sink successfully created" + }, + "400": { + "description": "Invalid request (The Pulsar Sink already exists, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to get tenant data, failed to process package, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Creates a new Pulsar Sink in cluster mode", + "tags": [ + "sinks" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting config payload of a Pulsar Sink. All available configuration options are:\n- **classname**\n The class name of a Pulsar Sink if archive is file-url-path (file://)\n- **sourceSubscriptionName**\n Pulsar source subscription name if user wants a specific\n subscription-name for input-topic consumer\n- **inputs**\n The input topic or topics of a Pulsar Sink (specified as a JSON array)\n- **topicsPattern**\n TopicsPattern to consume from list of topics under a namespace that match the pattern. [input] and [topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in customSerdeInputs (supported for java fun only)- **topicToSerdeClassName**\n The map of input topics to SerDe class names (specified as a JSON object)\n- **topicToSchemaType**\n The map of input topics to Schema types or class names (specified as a JSON object)\n- **inputSpecs**\n The map of input topics to its consumer configuration, each configuration has schema of {\"schemaType\": \"type-x\", \"serdeClassName\": \"name-x\", \"isRegexPattern\": true, \"receiverQueueSize\": 5}\n- **configs**\n The map of configs (specified as a JSON object)\n- **secrets**\n a map of secretName(aka how the secret is going to be \n accessed in the function via context) to an object that \n encapsulates how the secret is fetched by the underlying \n secrets provider. The type of an value here can be found by the \n SecretProviderConfigurator.getSecretObjectType() method. (specified as a JSON object)\n- **parallelism**\n The parallelism factor of a Pulsar Sink (i.e. the number of a Pulsar Sink instances to run \n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Sink. Possible Values: \"ATLEAST_ONCE\", \"ATMOST_ONCE\", \"EFFECTIVELY_ONCE\"\n- **retainOrdering**\n Boolean denotes whether the Pulsar Sink consumes and processes messages in order\n- **resources**\n {\"cpu\": 1, \"ram\": 2, \"disk\": 3} The CPU (in cores), RAM (in bytes) and disk (in bytes) that needs to be allocated per Pulsar Sink instance (applicable only to Docker runtime)\n- **autoAck**\n Boolean denotes whether or not the framework will automatically acknowledge messages\n- **timeoutMs**\n Long denotes the message timeout in milliseconds\n- **cleanupSubscription**\n Boolean denotes whether the subscriptions the functions created/used should be deleted when the functions is deleted\n- **runtimeFlags**\n Any flags that you want to pass to the runtime as a single string\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SinkConfig" + }, + "x-examples": { + "application/json": "{\n\t\"classname\": \"org.example.SinkStressTest\",\n\t\"inputs\": [\"persistent://public/default/sink-input\"],\n\t\"processingGuarantees\": \"EFFECTIVELY_ONCE\",\n\t\"parallelism\": 5\n}" + } + }, + { + "description": "Update options for the Pulsar Sink", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Sink successfully updated" + }, + "400": { + "description": "Invalid request (The Pulsar Sink doesn't exist, update contains no change, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "The Pulsar Sink doesn't exist" + }, + "500": { + "description": "Internal server error (failed to authorize, failed to process package, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Updates a Pulsar Sink currently running in cluster mode", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid restart request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to restart the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid start request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to start the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "Invalid get status request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Sink running in cluster mode", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid stop request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to stop the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop all instances of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "Invalid restart request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to restart the instance of a Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid start request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal server error (failed to start the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSinkInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SinkInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this sink" + }, + "400": { + "description": "The Pulsar Sink instance does not exist" + }, + "404": { + "description": "The Pulsar Sink does not exist" + }, + "500": { + "description": "Internal Server Error (got exception while getting status, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Sink instance", + "tags": [ + "sinks" + ] + } + }, + "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSink", + "parameters": [ + { + "description": "The tenant of a Pulsar Sink", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Sink", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Sink", + "in": "path", + "name": "sinkName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Sink", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid stop request" + }, + "401": { + "description": "The client is not authorized to perform this operation" + }, + "404": { + "description": "The Pulsar Sink instance does not exist" + }, + "500": { + "description": "Internal server error (failed to stop the Pulsar Sink, failed to authorize, etc.)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop an instance of a Pulsar Sink", + "tags": [ + "sinks" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "sinks" + } + ] +} diff --git a/static/swagger/2.10.5/v3/swaggersource.json b/static/swagger/2.10.5/v3/swaggersource.json new file mode 100644 index 000000000000..d310251f6e25 --- /dev/null +++ b/static/swagger/2.10.5/v3/swaggersource.json @@ -0,0 +1,2712 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "Annotation": { + "type": "object" + }, + "AnnotationIntrospector": { + "type": "object" + }, + "ArrayBuilders": { + "properties": { + "booleanBuilder": { + "$ref": "#/definitions/BooleanBuilder" + }, + "byteBuilder": { + "$ref": "#/definitions/ByteBuilder" + }, + "doubleBuilder": { + "$ref": "#/definitions/DoubleBuilder" + }, + "floatBuilder": { + "$ref": "#/definitions/FloatBuilder" + }, + "intBuilder": { + "$ref": "#/definitions/IntBuilder" + }, + "longBuilder": { + "$ref": "#/definitions/LongBuilder" + }, + "shortBuilder": { + "$ref": "#/definitions/ShortBuilder" + } + }, + "type": "object" + }, + "AuthenticationDataHttps": { + "properties": { + "commandData": { + "type": "string" + }, + "httpAuthType": { + "type": "string" + }, + "peerAddress": { + "$ref": "#/definitions/SocketAddress" + }, + "subscription": { + "type": "string" + }, + "tlsCertificates": { + "items": { + "$ref": "#/definitions/X509Certificate" + }, + "type": "array" + } + }, + "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" + }, + "Base64Variant": { + "properties": { + "maxLineLength": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "paddingByte": { + "format": "byte", + "type": "string" + }, + "paddingChar": { + "type": "string" + } + }, + "type": "object" + }, + "BatchSourceConfig": { + "properties": { + "discoveryTriggererClassName": { + "type": "string" + }, + "discoveryTriggererConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "BooleanBuilder": { + "type": "object" + }, + "ByteBuilder": { + "type": "object" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "CharacterEscapes": { + "properties": { + "escapeCodesForAscii": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassIntrospector": { + "type": "object" + }, + "ClassLoader": { + "properties": { + "definedPackages": { + "items": { + "$ref": "#/definitions/Package" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ClassLoader" + }, + "registeredAsParallelCapable": { + "type": "boolean" + }, + "unnamedModule": { + "$ref": "#/definitions/Module" + } + }, + "type": "object" + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConfigFieldDefinition": { + "properties": { + "attributes": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "fieldName": { + "type": "string" + }, + "typeName": { + "type": "string" + } + }, + "type": "object" + }, + "ConnectorDefinition": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sinkClass": { + "type": "string" + }, + "sinkConfigClass": { + "type": "string" + }, + "sourceClass": { + "type": "string" + }, + "sourceConfigClass": { + "type": "string" + } + }, + "type": "object" + }, + "ContextAttributes": { + "type": "object" + }, + "CryptoConfig": { + "properties": { + "consumerCryptoFailureAction": { + "enum": [ + "FAIL", + "DISCARD", + "CONSUME" + ], + "type": "string" + }, + "cryptoKeyReaderClassName": { + "type": "string" + }, + "cryptoKeyReaderConfig": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "encryptionKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "producerCryptoFailureAction": { + "enum": [ + "FAIL", + "SEND" + ], + "type": "string" + } + }, + "type": "object" + }, + "Currency": { + "properties": { + "currencyCode": { + "type": "string" + }, + "defaultFractionDigits": { + "format": "int32", + "type": "integer" + }, + "displayName": { + "type": "string" + }, + "numericCode": { + "format": "int32", + "type": "integer" + }, + "numericCodeAsString": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "type": "object" + }, + "DateFormat": { + "properties": { + "calendar": { + "format": "date-time", + "type": "string" + }, + "lenient": { + "type": "boolean" + }, + "numberFormat": { + "$ref": "#/definitions/NumberFormat" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + } + }, + "type": "object" + }, + "DeserializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "problemHandlers": { + "$ref": "#/definitions/LinkedNodeDeserializationProblemHandler" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializationContext": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "arrayBuilders": { + "$ref": "#/definitions/ArrayBuilders" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "config": { + "$ref": "#/definitions/DeserializationConfig" + }, + "contextualType": { + "$ref": "#/definitions/JavaType" + }, + "deserializationFeatures": { + "format": "int32", + "type": "integer" + }, + "factory": { + "$ref": "#/definitions/DeserializerFactory" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "parser": { + "$ref": "#/definitions/JsonParser" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "DeserializerFactory": { + "type": "object" + }, + "DoubleBuilder": { + "type": "object" + }, + "ExceptionInformation": { + "properties": { + "exceptionString": { + "type": "string" + }, + "timestampMs": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "FilterProvider": { + "type": "object" + }, + "FloatBuilder": { + "type": "object" + }, + "FormatSchema": { + "properties": { + "schemaType": { + "type": "string" + } + }, + "type": "object" + }, + "HandlerInstantiator": { + "type": "object" + }, + "InjectableValues": { + "type": "object" + }, + "InputDecorator": { + "type": "object" + }, + "IntBuilder": { + "type": "object" + }, + "JavaType": { + "properties": { + "abstract": { + "type": "boolean" + }, + "arrayType": { + "type": "boolean" + }, + "bindings": { + "$ref": "#/definitions/TypeBindings" + }, + "collectionLikeType": { + "type": "boolean" + }, + "concrete": { + "type": "boolean" + }, + "containerType": { + "type": "boolean" + }, + "contentType": { + "$ref": "#/definitions/JavaType" + }, + "contentTypeHandler": { + "type": "object" + }, + "contentValueHandler": { + "type": "object" + }, + "enumType": { + "type": "boolean" + }, + "erasedSignature": { + "type": "string" + }, + "final": { + "type": "boolean" + }, + "genericSignature": { + "type": "string" + }, + "interface": { + "type": "boolean" + }, + "interfaces": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + }, + "javaLangObject": { + "type": "boolean" + }, + "keyType": { + "$ref": "#/definitions/JavaType" + }, + "mapLikeType": { + "type": "boolean" + }, + "primitive": { + "type": "boolean" + }, + "referenceType": { + "type": "boolean" + }, + "referencedType": { + "$ref": "#/definitions/JavaType" + }, + "superClass": { + "$ref": "#/definitions/JavaType" + }, + "throwable": { + "type": "boolean" + }, + "typeHandler": { + "type": "object" + }, + "typeName": { + "type": "string" + }, + "valueHandler": { + "type": "object" + } + }, + "type": "object" + }, + "JsonFactory": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "formatName": { + "type": "string" + }, + "inputDecorator": { + "$ref": "#/definitions/InputDecorator" + }, + "outputDecorator": { + "$ref": "#/definitions/OutputDecorator" + }, + "rootValueSeparator": { + "type": "string" + } + }, + "type": "object" + }, + "JsonGenerator": { + "properties": { + "characterEscapes": { + "$ref": "#/definitions/CharacterEscapes" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentValue": { + "type": "object" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "highestEscapedChar": { + "format": "int32", + "type": "integer" + }, + "outputBuffered": { + "format": "int32", + "type": "integer" + }, + "outputContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "outputTarget": { + "type": "object" + }, + "prettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + } + }, + "type": "object" + }, + "JsonLocation": { + "properties": { + "byteOffset": { + "format": "int64", + "type": "integer" + }, + "charOffset": { + "format": "int64", + "type": "integer" + }, + "columnNr": { + "format": "int32", + "type": "integer" + }, + "lineNr": { + "format": "int32", + "type": "integer" + }, + "sourceRef": { + "type": "object" + } + }, + "type": "object" + }, + "JsonNodeFactory": { + "type": "object" + }, + "JsonParser": { + "properties": { + "bigIntegerValue": { + "type": "integer" + }, + "binaryValue": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "booleanValue": { + "type": "boolean" + }, + "byteValue": { + "format": "byte", + "type": "string" + }, + "closed": { + "type": "boolean" + }, + "codec": { + "$ref": "#/definitions/ObjectCodec" + }, + "currentLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "currentName": { + "type": "string" + }, + "currentToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "currentTokenId": { + "format": "int32", + "type": "integer" + }, + "currentValue": { + "type": "object" + }, + "decimalValue": { + "type": "number" + }, + "doubleValue": { + "format": "double", + "type": "number" + }, + "embeddedObject": { + "type": "object" + }, + "expectedStartArrayToken": { + "type": "boolean" + }, + "expectedStartObjectToken": { + "type": "boolean" + }, + "featureMask": { + "format": "int32", + "type": "integer" + }, + "floatValue": { + "format": "float", + "type": "number" + }, + "formatFeatures": { + "format": "int32", + "type": "integer" + }, + "inputSource": { + "type": "object" + }, + "intValue": { + "format": "int32", + "type": "integer" + }, + "lastClearedToken": { + "enum": [ + "NOT_AVAILABLE", + "START_OBJECT", + "END_OBJECT", + "START_ARRAY", + "END_ARRAY", + "FIELD_NAME", + "VALUE_EMBEDDED_OBJECT", + "VALUE_STRING", + "VALUE_NUMBER_INT", + "VALUE_NUMBER_FLOAT", + "VALUE_TRUE", + "VALUE_FALSE", + "VALUE_NULL" + ], + "type": "string" + }, + "longValue": { + "format": "int64", + "type": "integer" + }, + "numberType": { + "enum": [ + "INT", + "LONG", + "BIG_INTEGER", + "FLOAT", + "DOUBLE", + "BIG_DECIMAL" + ], + "type": "string" + }, + "numberValue": { + "$ref": "#/definitions/Number" + }, + "objectId": { + "type": "object" + }, + "parsingContext": { + "$ref": "#/definitions/JsonStreamContext" + }, + "schema": { + "$ref": "#/definitions/FormatSchema" + }, + "shortValue": { + "format": "int32", + "type": "integer" + }, + "text": { + "type": "string" + }, + "textCharacters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textLength": { + "format": "int32", + "type": "integer" + }, + "textOffset": { + "format": "int32", + "type": "integer" + }, + "tokenLocation": { + "$ref": "#/definitions/JsonLocation" + }, + "typeId": { + "type": "object" + }, + "valueAsBoolean": { + "type": "boolean" + }, + "valueAsDouble": { + "format": "double", + "type": "number" + }, + "valueAsInt": { + "format": "int32", + "type": "integer" + }, + "valueAsLong": { + "format": "int64", + "type": "integer" + }, + "valueAsString": { + "type": "string" + } + }, + "type": "object" + }, + "JsonSerializer": { + "properties": { + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonSerializerObject": { + "properties": { + "delegatee": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "unwrappingSerializer": { + "type": "boolean" + } + }, + "type": "object" + }, + "JsonStreamContext": { + "properties": { + "currentIndex": { + "format": "int32", + "type": "integer" + }, + "currentName": { + "type": "string" + }, + "currentValue": { + "type": "object" + }, + "entryCount": { + "format": "int32", + "type": "integer" + }, + "parent": { + "$ref": "#/definitions/JsonStreamContext" + }, + "typeDesc": { + "type": "string" + } + }, + "type": "object" + }, + "LinkedNode": { + "type": "object" + }, + "LinkedNodeDeserializationProblemHandler": { + "type": "object" + }, + "Locale": { + "properties": { + "country": { + "type": "string" + }, + "displayCountry": { + "type": "string" + }, + "displayLanguage": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayScript": { + "type": "string" + }, + "displayVariant": { + "type": "string" + }, + "extensionKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "iso3Country": { + "type": "string" + }, + "iso3Language": { + "type": "string" + }, + "language": { + "type": "string" + }, + "script": { + "type": "string" + }, + "unicodeLocaleAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "unicodeLocaleKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "variant": { + "type": "string" + } + }, + "type": "object" + }, + "LongBuilder": { + "type": "object" + }, + "Module": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "descriptor": { + "$ref": "#/definitions/ModuleDescriptor" + }, + "layer": { + "$ref": "#/definitions/ModuleLayer" + }, + "name": { + "type": "string" + }, + "named": { + "type": "boolean" + }, + "packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ModuleDescriptor": { + "properties": { + "automatic": { + "type": "boolean" + }, + "open": { + "type": "boolean" + } + }, + "type": "object" + }, + "ModuleLayer": { + "type": "object" + }, + "Number": { + "type": "object" + }, + "NumberFormat": { + "properties": { + "currency": { + "$ref": "#/definitions/Currency" + }, + "groupingUsed": { + "type": "boolean" + }, + "maximumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "maximumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "minimumFractionDigits": { + "format": "int32", + "type": "integer" + }, + "minimumIntegerDigits": { + "format": "int32", + "type": "integer" + }, + "parseIntegerOnly": { + "type": "boolean" + }, + "roundingMode": { + "enum": [ + "UP", + "DOWN", + "CEILING", + "FLOOR", + "HALF_UP", + "HALF_DOWN", + "HALF_EVEN", + "UNNECESSARY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ObjectCodec": { + "properties": { + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + } + }, + "type": "object" + }, + "ObjectMapper": { + "properties": { + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "deserializationConfig": { + "$ref": "#/definitions/DeserializationConfig" + }, + "deserializationContext": { + "$ref": "#/definitions/DeserializationContext" + }, + "factory": { + "$ref": "#/definitions/JsonFactory" + }, + "injectableValues": { + "$ref": "#/definitions/InjectableValues" + }, + "jsonFactory": { + "$ref": "#/definitions/JsonFactory" + }, + "nodeFactory": { + "$ref": "#/definitions/JsonNodeFactory" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "serializationConfig": { + "$ref": "#/definitions/SerializationConfig" + }, + "serializerFactory": { + "$ref": "#/definitions/SerializerFactory" + }, + "serializerProvider": { + "$ref": "#/definitions/SerializerProvider" + }, + "serializerProviderInstance": { + "$ref": "#/definitions/SerializerProvider" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + }, + "visibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + } + }, + "type": "object" + }, + "OutputDecorator": { + "type": "object" + }, + "Package": { + "properties": { + "annotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "declaredAnnotations": { + "items": { + "$ref": "#/definitions/Annotation" + }, + "type": "array" + }, + "implementationTitle": { + "type": "string" + }, + "implementationVendor": { + "type": "string" + }, + "implementationVersion": { + "type": "string" + }, + "name": { + "type": "string" + }, + "sealed": { + "type": "boolean" + }, + "specificationTitle": { + "type": "string" + }, + "specificationVendor": { + "type": "string" + }, + "specificationVersion": { + "type": "string" + } + }, + "type": "object" + }, + "PrettyPrinter": { + "type": "object" + }, + "Principal": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ProducerConfig": { + "properties": { + "batchBuilder": { + "type": "string" + }, + "cryptoConfig": { + "$ref": "#/definitions/CryptoConfig" + }, + "maxPendingMessages": { + "format": "int32", + "type": "integer" + }, + "maxPendingMessagesAcrossPartitions": { + "format": "int32", + "type": "integer" + }, + "useThreadLocalProducers": { + "type": "boolean" + } + }, + "type": "object" + }, + "PropertyName": { + "properties": { + "empty": { + "type": "boolean" + }, + "namespace": { + "type": "string" + }, + "simpleName": { + "type": "string" + } + }, + "type": "object" + }, + "PropertyNamingStrategy": { + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "properties": { + "cpu": { + "format": "double", + "type": "number" + }, + "disk": { + "format": "int64", + "type": "integer" + }, + "ram": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SerializationConfig": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "annotationProcessingEnabled": { + "type": "boolean" + }, + "attributes": { + "$ref": "#/definitions/ContextAttributes" + }, + "base64Variant": { + "$ref": "#/definitions/Base64Variant" + }, + "classIntrospector": { + "$ref": "#/definitions/ClassIntrospector" + }, + "dateFormat": { + "$ref": "#/definitions/DateFormat" + }, + "defaultPrettyPrinter": { + "$ref": "#/definitions/PrettyPrinter" + }, + "defaultPropertyInclusion": { + "$ref": "#/definitions/Value" + }, + "defaultVisibilityChecker": { + "$ref": "#/definitions/VisibilityCheckerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "fullRootName": { + "$ref": "#/definitions/PropertyName" + }, + "handlerInstantiator": { + "$ref": "#/definitions/HandlerInstantiator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "propertyNamingStrategy": { + "$ref": "#/definitions/PropertyNamingStrategy" + }, + "rootName": { + "type": "string" + }, + "serializationFeatures": { + "format": "int32", + "type": "integer" + }, + "serializationInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "subtypeResolver": { + "$ref": "#/definitions/SubtypeResolver" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "SerializerFactory": { + "type": "object" + }, + "SerializerProvider": { + "properties": { + "annotationIntrospector": { + "$ref": "#/definitions/AnnotationIntrospector" + }, + "config": { + "$ref": "#/definitions/SerializationConfig" + }, + "defaultNullKeySerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "defaultNullValueSerializer": { + "$ref": "#/definitions/JsonSerializerObject" + }, + "filterProvider": { + "$ref": "#/definitions/FilterProvider" + }, + "generator": { + "$ref": "#/definitions/JsonGenerator" + }, + "locale": { + "$ref": "#/definitions/Locale" + }, + "timeZone": { + "$ref": "#/definitions/TimeZone" + }, + "typeFactory": { + "$ref": "#/definitions/TypeFactory" + } + }, + "type": "object" + }, + "ShortBuilder": { + "type": "object" + }, + "SocketAddress": { + "type": "object" + }, + "SourceConfig": { + "properties": { + "archive": { + "type": "string" + }, + "batchBuilder": { + "type": "string" + }, + "batchSourceConfig": { + "$ref": "#/definitions/BatchSourceConfig" + }, + "className": { + "type": "string" + }, + "configs": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "customRuntimeOptions": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "parallelism": { + "format": "int32", + "type": "integer" + }, + "processingGuarantees": { + "enum": [ + "ATLEAST_ONCE", + "ATMOST_ONCE", + "EFFECTIVELY_ONCE" + ], + "type": "string" + }, + "producerConfig": { + "$ref": "#/definitions/ProducerConfig" + }, + "resources": { + "$ref": "#/definitions/Resources" + }, + "runtimeFlags": { + "type": "string" + }, + "schemaType": { + "type": "string" + }, + "secrets": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "serdeClassName": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "topicName": { + "type": "string" + } + }, + "type": "object" + }, + "SourceInstanceStatus": { + "properties": { + "instanceId": { + "format": "int32", + "type": "integer" + }, + "status": { + "$ref": "#/definitions/SourceInstanceStatusData" + } + }, + "type": "object" + }, + "SourceInstanceStatusData": { + "properties": { + "error": { + "type": "string" + }, + "lastReceivedTime": { + "format": "int64", + "type": "integer" + }, + "latestSourceExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "latestSystemExceptions": { + "items": { + "$ref": "#/definitions/ExceptionInformation" + }, + "type": "array" + }, + "numReceivedFromSource": { + "format": "int64", + "type": "integer" + }, + "numRestarts": { + "format": "int64", + "type": "integer" + }, + "numSourceExceptions": { + "format": "int64", + "type": "integer" + }, + "numSystemExceptions": { + "format": "int64", + "type": "integer" + }, + "numWritten": { + "format": "int64", + "type": "integer" + }, + "running": { + "type": "boolean" + }, + "workerId": { + "type": "string" + } + }, + "type": "object" + }, + "SourceStatus": { + "properties": { + "instances": { + "items": { + "$ref": "#/definitions/SourceInstanceStatus" + }, + "type": "array" + }, + "numInstances": { + "format": "int32", + "type": "integer" + }, + "numRunning": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SubtypeResolver": { + "type": "object" + }, + "TimeZone": { + "properties": { + "displayName": { + "type": "string" + }, + "dstsavings": { + "format": "int32", + "type": "integer" + }, + "id": { + "type": "string" + }, + "rawOffset": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TypeBindings": { + "properties": { + "empty": { + "type": "boolean" + }, + "typeParameters": { + "items": { + "$ref": "#/definitions/JavaType" + }, + "type": "array" + } + }, + "type": "object" + }, + "TypeFactory": { + "properties": { + "classLoader": { + "$ref": "#/definitions/ClassLoader" + } + }, + "type": "object" + }, + "UpdateOptions": { + "description": "Options while updating the sink", + "properties": { + "update-auth-data": { + "description": "Whether or not to update the auth data", + "type": "boolean" + } + }, + "type": "object" + }, + "Value": { + "properties": { + "contentInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + }, + "valueInclusion": { + "enum": [ + "ALWAYS", + "NON_NULL", + "NON_ABSENT", + "NON_EMPTY", + "NON_DEFAULT", + "USE_DEFAULTS" + ], + "type": "string" + } + }, + "type": "object" + }, + "VisibilityChecker": { + "type": "object" + }, + "VisibilityCheckerObject": { + "type": "object" + }, + "X500Principal": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "X509Certificate": { + "properties": { + "basicConstraints": { + "format": "int32", + "type": "integer" + }, + "criticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "extendedKeyUsage": { + "items": { + "type": "string" + }, + "type": "array" + }, + "issuerAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "issuerDN": { + "$ref": "#/definitions/Principal" + }, + "issuerUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "issuerX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "keyUsage": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "nonCriticalExtensionOIDs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "notAfter": { + "format": "date-time", + "type": "string" + }, + "notBefore": { + "format": "date-time", + "type": "string" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "serialNumber": { + "type": "integer" + }, + "sigAlgName": { + "type": "string" + }, + "sigAlgOID": { + "type": "string" + }, + "sigAlgParams": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "signature": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "subjectAlternativeNames": { + "items": { + "items": { + "type": "object" + }, + "type": "array" + }, + "type": "array" + }, + "subjectDN": { + "$ref": "#/definitions/Principal" + }, + "subjectUniqueID": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "subjectX500Principal": { + "$ref": "#/definitions/X500Principal" + }, + "tbscertificate": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "type": { + "type": "string" + }, + "version": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Source operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Source REST API", + "version": "v3" + }, + "paths": { + "/sources/builtinsources": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceList", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConnectorDefinition" + }, + "type": "array" + } + }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "408": { + "description": "Request timeout" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches the list of built-in Pulsar IO sources", + "tags": [ + "sources" + ] + } + }, + "/sources/builtinsources/{name}/configdefinition": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceConfigDefinition", + "parameters": [ + { + "description": "The name of the builtin source", + "in": "path", + "name": "name", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "items": { + "$ref": "#/definitions/ConfigFieldDefinition" + }, + "type": "array" + } + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "builtin source does not exist" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about config fields associated with the specified builtin source", + "tags": [ + "sources" + ] + } + }, + "/sources/reloadBuiltInSources": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "reloadSources", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Reload the built-in connectors, including Sources and Sinks", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "listSources", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "type": "string" + } + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Lists all Pulsar Sources currently deployed in a given namespace", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}": { + "delete": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "deregisterSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The function was successfully deleted" + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "408": { + "description": "Request timeout" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Deletes a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + }, + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceInfo", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceConfig" + } + }, + "400": { + "description": "Invalid request" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Fetches information about a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + }, + "post": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "registerSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "You can submit a source (in any languages that you are familiar with) to a Pulsar cluster. Follow the steps below.\n1. Create a JSON object using some of the following parameters.\nA JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method. \n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n2. Encapsulate the JSON object to a multipart object.", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SourceConfig" + }, + "x-examples": { + "text/plain": "Example \n\n1. Create a JSON object. \n\n{\n\t\"tenant\": \"public\",\n\t\"namespace\": \"default\",\n\t\"name\": \"pulsar-io-mysql\",\n\t\"className\": \"TestSourceMysql\",\n\t\"topicName\": \"pulsar-io-mysql\",\n\t\"parallelism\": \"1\",\n\t\"archive\": \"/connectors/pulsar-io-mysql-0.0.1.nar\",\n\t\"schemaType\": \"avro\"\n}\n\n\n2. Encapsulate the JSON object to a multipart object (in Python). \n\nfrom requests_toolbelt.multipart.encoder import MultipartEncoder \nmp_encoder = MultipartEncoder( \n\t[('sourceConfig', (None, json.dumps(config), 'application/json'))])" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully created" + }, + "400": { + "description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Creates a new Pulsar Source in cluster mode", + "tags": [ + "sources" + ] + }, + "put": { + "consumes": [ + "multipart/form-data" + ], + "description": "", + "operationId": "updateSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "A JSON value presenting configuration payload of a Pulsar Source. An example of the expected functions can be found here.\n- **classname**\n The class name of a Pulsar Source if archive is file-url-path (file://).\n- **topicName**\n The Pulsar topic to which data is sent.\n- **serdeClassName**\n The SerDe classname for the Pulsar Source.\n- **schemaType**\n The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the Pulsar Source\n- **configs**\n Pulsar Source config key/values\n- **secrets**\n This is a map of secretName(that is how the secret is going to be accessed in the function via context) to an object that encapsulates how the secret is fetched by the underlying secrets provider. The type of an value here can be found by the SecretProviderConfigurator.getSecretObjectType() method.\n- **parallelism**\n The parallelism factor of a Pulsar Source (i.e. the number of a Pulsar Source instances to run).\n- **processingGuarantees**\n The processing guarantees (aka delivery semantics) applied to the Pulsar Source. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]\n- **resources**\n The size of the system resources allowed by the Pulsar Source runtime. The resources include: cpu, ram, disk.\n- **archive**\n The path to the NAR archive for the Pulsar Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.\n- **runtimeFlags**\n Any flags that you want to pass to the runtime.\n", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/SourceConfig" + }, + "x-examples": { + "application/json": "{\n \"tenant\": public\n \"namespace\": default\n \"name\": pulsar-io-mysql\n \"className\": TestSourceMysql\n \"topicName\": pulsar-io-mysql\n \"parallelism\": 1\n \"archive\": /connectors/pulsar-io-mysql-0.0.1.nar\n \"schemaType\": avro\n}" + } + }, + { + "description": "Update options for Pulsar Source", + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/UpdateOptions" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Pulsar Function successfully updated" + }, + "400": { + "description": "Invalid request (Function already exists or Tenant, Namespace or Name is not provided, etc.)" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "403": { + "description": "The requester doesn't have admin permissions" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Updates a Pulsar Source currently running in cluster mode", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceStatus" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Source running in cluster mode", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop all instances of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/restart": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "restartSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Restart an instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/start": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "startSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Start an instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/status": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "getSourceInstanceStatus", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/SourceInstanceStatusData" + } + }, + "307": { + "description": "Current broker doesn't serve the namespace of this source" + }, + "500": { + "description": "Internal Server Error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Displays the status of a Pulsar Source instance", + "tags": [ + "sources" + ] + } + }, + "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/stop": { + "post": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "stopSource", + "parameters": [ + { + "description": "The tenant of a Pulsar Source", + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "description": "The namespace of a Pulsar Source", + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "description": "The name of a Pulsar Source", + "in": "path", + "name": "sourceName", + "required": true, + "type": "string" + }, + { + "description": "The instanceId of a Pulsar Source (if instance-id is not provided, the stats of all instances is returned).", + "in": "path", + "name": "instanceId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "400": { + "description": "Invalid request" + }, + "401": { + "description": "Client is not authorized to perform operation" + }, + "404": { + "description": "Not Found(The Pulsar Source doesn't exist)" + }, + "500": { + "description": "Internal server error" + }, + "503": { + "description": "Function worker service is now initializing. Please try again later." + } + }, + "summary": "Stop instance of a Pulsar Source", + "tags": [ + "sources" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "sources" + } + ] +} diff --git a/static/swagger/2.10.5/v3/swaggertransactions.json b/static/swagger/2.10.5/v3/swaggertransactions.json new file mode 100644 index 000000000000..c6d52b5c3487 --- /dev/null +++ b/static/swagger/2.10.5/v3/swaggertransactions.json @@ -0,0 +1,975 @@ +{ + "basePath": "/admin/v3", + "definitions": { + "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" + }, + "Certificate": { + "properties": { + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "publicKey": { + "$ref": "#/definitions/PublicKey" + }, + "type": { + "type": "string" + } + }, + "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" + }, + "CompletableFutureVoid": { + "properties": { + "cancelled": { + "type": "boolean" + }, + "completedExceptionally": { + "type": "boolean" + }, + "done": { + "type": "boolean" + }, + "numberOfDependents": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PublicKey": { + "properties": { + "algorithm": { + "type": "string" + }, + "encoded": { + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "type": "object" + }, + "SocketAddress": { + "type": "object" + } + }, + "info": { + "description": "This provides the REST API for Pulsar Transactions operations", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "title": "Pulsar Transactions REST API", + "version": "v3" + }, + "paths": { + "/transactions/coordinatorInternalStats/{coordinatorId}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getCoordinatorInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "coordinatorId", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Transaction coordinator not found" + }, + "405": { + "description": "Broker don't use MLTransactionMetadataStore!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get coordinator internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/coordinatorStats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getCoordinatorStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "format": "int32", + "in": "query", + "name": "coordinatorId", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Transaction coordinator not found" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction coordinator stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/coordinators": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_listCoordinators", + "produces": [ + "application/json" + ], + "responses": { + "403": { + "description": "Don't have admin permission" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "List transaction coordinators.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/pendingAckInternalStats/{tenant}/{namespace}/{topic}/{subName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPendingAckInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subscription name doesn't exist" + }, + "405": { + "description": "Pending ack handle don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction pending ack internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/pendingAckStats/{tenant}/{namespace}/{topic}/{subName}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPendingAckStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "lowWaterMarks", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subName doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction pending ack stats in topic.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/positionStatsInPendingAck/{tenant}/{namespace}/{topic}/{subName}/{ledgerId}/{entryId}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getPositionStatsInPendingAck", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + }, + { + "format": "int64", + "in": "path", + "name": "ledgerId", + "required": true, + "type": "integer" + }, + { + "format": "int64", + "in": "path", + "name": "entryId", + "required": true, + "type": "integer" + }, + { + "format": "int32", + "in": "query", + "name": "batchIndex", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or subscription name doesn't exist" + }, + "405": { + "description": "Pending ack handle don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get position stats in pending ack.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/slowTransactions/{timeout}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getSlowTransactions", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "timeout", + "required": true, + "type": "string" + }, + { + "format": "int32", + "in": "query", + "name": "coordinatorId", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic don't owner by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or coordinator or transaction doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get slow transactions.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionBufferInternalStats/{tenant}/{namespace}/{topic}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionBufferInternalStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "metadata", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "405": { + "description": "Transaction buffer don't use managedLedger!" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not enable transaction" + } + }, + "summary": "Get transaction buffer internal stats.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionBufferStats/{tenant}/{namespace}/{topic}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionBufferStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "lowWaterMarks", + "required": false, + "type": "boolean" + }, + { + "default": false, + "in": "query", + "name": "segmentStats", + "required": false, + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction buffer stats in topic.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionCoordinator/replicas": { + "post": { + "consumes": [ + "application/json" + ], + "operationId": "Transactions_scaleTransactionCoordinators", + "produces": [ + "application/json" + ], + "responses": { + "401": { + "description": "This operation requires super-user access" + }, + "406": { + "description": "The number of replicas should be more than the current number of transaction coordinator replicas" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionInBufferStats/{tenant}/{namespace}/{topic}/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionInBufferStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction state in transaction buffer.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionInPendingAckStats/{tenant}/{namespace}/{topic}/{subName}/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionInPendingAckStats", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "tenant", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "namespace", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "topic", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "subName", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction state in pending ack.", + "tags": [ + "transactions" + ] + } + }, + "/transactions/transactionMetadata/{mostSigBits}/{leastSigBits}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "", + "operationId": "Transactions_getTransactionMetadata", + "parameters": [ + { + "default": false, + "in": "query", + "name": "authoritative", + "required": false, + "type": "boolean" + }, + { + "in": "path", + "name": "mostSigBits", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "leastSigBits", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "307": { + "description": "Topic is not owned by this broker!" + }, + "400": { + "description": "Topic is not a persistent topic!" + }, + "403": { + "description": "Don't have admin permission" + }, + "404": { + "description": "Tenant or cluster or namespace or topic or coordinator or transaction doesn't exist" + }, + "409": { + "description": "Concurrent modification" + }, + "503": { + "description": "This Broker is not configured with transactionCoordinatorEnabled=true." + } + }, + "summary": "Get transaction metadata", + "tags": [ + "transactions" + ] + } + } + }, + "schemes": [ + "http", + "https" + ], + "swagger": "2.0", + "tags": [ + { + "name": "transactions" + } + ] +}