public interface Topics
| Modifier and Type | Method and Description |
|---|---|
CompactionStatus |
compactionStatus(String topic)
Check the status of an ongoing compaction for a topic.
|
void |
createPartitionedTopic(String topic,
int numPartitions)
Create a partitioned topic.
|
CompletableFuture<Void> |
createPartitionedTopicAsync(String topic,
int numPartitions)
Create a partitioned topic asynchronously.
|
void |
createSubscription(String topic,
String subscriptionName,
MessageId messageId)
Create a new subscription on a topic
|
CompletableFuture<Void> |
createSubscriptionAsync(String topic,
String subscriptionName,
MessageId messageId)
Create a new subscription on a topic
|
void |
delete(String topic)
Delete a topic.
|
void |
delete(String topic,
boolean force)
Delete a topic.
|
CompletableFuture<Void> |
deleteAsync(String topic,
boolean force)
Delete a topic asynchronously.
|
void |
deletePartitionedTopic(String topic)
Delete a partitioned topic.
|
void |
deletePartitionedTopic(String topic,
boolean force)
Delete a partitioned topic.
|
CompletableFuture<Void> |
deletePartitionedTopicAsync(String topic,
boolean force)
Delete a partitioned topic asynchronously.
|
void |
deleteSubscription(String topic,
String subName)
Delete a subscription.
|
CompletableFuture<Void> |
deleteSubscriptionAsync(String topic,
String subName)
Delete a subscription asynchronously.
|
void |
expireMessages(String topic,
String subscriptionName,
long expireTimeInSeconds)
Expire all messages older than given N (expireTimeInSeconds) seconds for a given subscription
|
CompletableFuture<Void> |
expireMessagesAsync(String topic,
String subscriptionName,
long expireTimeInSeconds)
Expire all messages older than given N (expireTimeInSeconds) seconds for a given subscription asynchronously
|
void |
expireMessagesForAllSubscriptions(String topic,
long expireTimeInSeconds)
Expire all messages older than given N (expireTimeInSeconds) seconds for all subscriptions of the
persistent-topic
|
CompletableFuture<Void> |
expireMessagesForAllSubscriptionsAsync(String topic,
long expireTimeInSeconds)
Expire all messages older than given N (expireTimeInSeconds) seconds for all subscriptions of the
persistent-topic asynchronously
|
com.google.gson.JsonObject |
getInternalInfo(String topic)
Get a JSON representation of the topic metadata stored in ZooKeeper
|
CompletableFuture<com.google.gson.JsonObject> |
getInternalInfoAsync(String topic)
Get a JSON representation of the topic metadata stored in ZooKeeper
|
PersistentTopicInternalStats |
getInternalStats(String topic)
Get the internal stats for the topic.
|
CompletableFuture<PersistentTopicInternalStats> |
getInternalStatsAsync(String topic)
Get the internal stats for the topic asynchronously.
|
List<String> |
getList(String namespace)
Get the list of topics under a namespace.
|
List<String> |
getListInBundle(String namespace,
String bundleRange)
Get list of topics exist into given bundle
|
CompletableFuture<List<String>> |
getListInBundleAsync(String namespace,
String bundleRange)
Get list of topics exist into given bundle asynchronously.
|
PartitionedTopicStats |
getPartitionedStats(String topic,
boolean perPartition)
Get the stats for the partitioned topic
|
CompletableFuture<PartitionedTopicStats> |
getPartitionedStatsAsync(String topic,
boolean perPartition)
Get the stats for the partitioned topic asynchronously
|
List<String> |
getPartitionedTopicList(String namespace)
Get the list of partitioned topics under a namespace.
|
PartitionedTopicMetadata |
getPartitionedTopicMetadata(String topic)
Get metadata of a partitioned topic.
|
CompletableFuture<PartitionedTopicMetadata> |
getPartitionedTopicMetadataAsync(String topic)
Get metadata of a partitioned topic asynchronously.
|
Map<String,Set<AuthAction>> |
getPermissions(String topic)
Get permissions on a topic.
|
TopicStats |
getStats(String topic)
Get the stats for the topic.
|
CompletableFuture<TopicStats> |
getStatsAsync(String topic)
Get the stats for the topic asynchronously.
|
List<String> |
getSubscriptions(String topic)
Get the list of subscriptions.
|
CompletableFuture<List<String>> |
getSubscriptionsAsync(String topic)
Get the list of subscriptions asynchronously.
|
void |
grantPermission(String topic,
String role,
Set<AuthAction> actions)
Grant permission on a topic.
|
List<Message<byte[]>> |
peekMessages(String topic,
String subName,
int numMessages)
Peek messages from a topic subscription
|
CompletableFuture<List<Message<byte[]>>> |
peekMessagesAsync(String topic,
String subName,
int numMessages)
Peek messages from a topic subscription asynchronously
|
void |
resetCursor(String topic,
String subName,
long timestamp)
Reset cursor position on a topic subscription
|
void |
resetCursor(String topic,
String subName,
MessageId messageId)
Reset cursor position on a topic subscription
|
CompletableFuture<Void> |
resetCursorAsync(String topic,
String subName,
long timestamp)
Reset cursor position on a topic subscription
|
CompletableFuture<Void> |
resetCursorAsync(String topic,
String subName,
MessageId messageId)
Reset cursor position on a topic subscription
|
void |
revokePermissions(String topic,
String role)
Revoke permissions on a topic.
|
void |
skipAllMessages(String topic,
String subName)
Skip all messages on a topic subscription.
|
CompletableFuture<Void> |
skipAllMessagesAsync(String topic,
String subName)
Skip all messages on a topic subscription asynchronously.
|
void |
skipMessages(String topic,
String subName,
long numMessages)
Skip messages on a topic subscription.
|
CompletableFuture<Void> |
skipMessagesAsync(String topic,
String subName,
long numMessages)
Skip messages on a topic subscription asynchronously.
|
CompletableFuture<MessageId> |
terminateTopicAsync(String topic)
Terminate the topic and prevent any more messages being published on it.
|
void |
triggerCompaction(String topic)
Trigger compaction to run for a topic.
|
void |
unload(String topic)
Unload a topic.
|
CompletableFuture<Void> |
unloadAsync(String topic)
Unload a topic asynchronously.
|
void |
updatePartitionedTopic(String topic,
int numPartitions)
Update number of partitions of a non-global partitioned topic.
|
CompletableFuture<Void> |
updatePartitionedTopicAsync(String topic,
int numPartitions)
Update number of partitions of a non-global partitioned topic asynchronously.
|
List<String> getList(String namespace) throws PulsarAdminException
Response example:
["topic://my-tenant/my-namespace/topic-1",
"topic://my-tenant/my-namespace/topic-2"]
namespace - Namespace namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Namespace does not existPulsarAdminException - Unexpected errorList<String> getPartitionedTopicList(String namespace) throws PulsarAdminException
Response example:
["persistent://my-tenant/my-namespace/topic-1",
"persistent://my-tenant/my-namespace/topic-2"]
namespace - Namespace namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Namespace does not existPulsarAdminException - Unexpected errorList<String> getListInBundle(String namespace, String bundleRange) throws PulsarAdminException
namespace - bundleRange - PulsarAdminExceptionCompletableFuture<List<String>> getListInBundleAsync(String namespace, String bundleRange)
namespace - bundleRange - Map<String,Set<AuthAction>> getPermissions(String topic) throws PulsarAdminException
Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permission set on the topic.
Response Example:
{
"role-1" : [ "produce" ],
"role-2" : [ "consume" ]
}
topic - Topic urlPulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Namespace does not existPulsarAdminException - Unexpected errorvoid grantPermission(String topic, String role, Set<AuthAction> actions) throws PulsarAdminException
Grant a new permission to a client role on a single topic.
Request parameter example:
["produce", "consume"]
topic - Topic urlrole - Client role to which grant permissionactions - Auth actions (produce and consume)PulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Namespace does not existPulsarAdminException.ConflictException - Concurrent modificationPulsarAdminException - Unexpected errorvoid revokePermissions(String topic, String role) throws PulsarAdminException
Revoke permissions to a client role on a single topic. If the permission was not set at the topic level, but rather at the namespace level, this operation will return an error (HTTP status code 412).
topic - Topic urlrole - Client role to which remove permissionUniformInterfaceException - if the operations was not successfulPulsarAdminException.NotAuthorizedException - Don't have admin permissionNotFound - Namespace does not existPulsarAdminException.PreconditionFailedException - Permissions are not set at the topic levelPulsarAdminException - Unexpected errorvoid createPartitionedTopic(String topic, int numPartitions) throws PulsarAdminException
Create a partitioned topic. It needs to be called before creating a producer for a partitioned topic.
topic - Topic namenumPartitions - Number of partitions to create of the topicPulsarAdminExceptionCompletableFuture<Void> createPartitionedTopicAsync(String topic, int numPartitions)
Create a partitioned topic asynchronously. It needs to be called before creating a producer for a partitioned topic.
topic - Topic namenumPartitions - Number of partitions to create of the topicvoid updatePartitionedTopic(String topic, int numPartitions) throws PulsarAdminException
It requires partitioned-topic to be already exist and number of new partitions must be greater than existing number of partitions. Decrementing number of partitions requires deletion of topic which is not supported.
topic - Topic namenumPartitions - Number of new partitions of already exist partitioned-topicPulsarAdminExceptionCompletableFuture<Void> updatePartitionedTopicAsync(String topic, int numPartitions)
It requires partitioned-topic to be already exist and number of new partitions must be greater than existing number of partitions. Decrementing number of partitions requires deletion of topic which is not supported.
topic - Topic namenumPartitions - Number of new partitions of already exist partitioned-topicPartitionedTopicMetadata getPartitionedTopicMetadata(String topic) throws PulsarAdminException
Get metadata of a partitioned topic.
topic - Topic namePulsarAdminExceptionCompletableFuture<PartitionedTopicMetadata> getPartitionedTopicMetadataAsync(String topic)
Get metadata of a partitioned topic asynchronously.
topic - Topic namevoid deletePartitionedTopic(String topic, boolean force) throws PulsarAdminException
It will also delete all the partitions of the topic if it exists.
topic - Topic nameforce - Delete topic forcefullyPulsarAdminExceptionvoid deletePartitionedTopic(String topic) throws PulsarAdminException
It will also delete all the partitions of the topic if it exists.
topic - Topic namePulsarAdminExceptionCompletableFuture<Void> deletePartitionedTopicAsync(String topic, boolean force)
It will also delete all the partitions of the topic if it exists.
topic - Topic nameforce - Delete topic forcefullyvoid delete(String topic, boolean force) throws PulsarAdminException
Delete a topic. The topic cannot be deleted if force flag is disable and there's any active subscription or producer connected to the it. Force flag deletes topic forcefully by closing all active producers and consumers.
topic - Topic nameforce - Delete topic forcefullyPulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException.PreconditionFailedException - Topic has active subscriptions or producersPulsarAdminException - Unexpected errorvoid delete(String topic) throws PulsarAdminException
Delete a topic. The topic cannot be deleted if there's any active subscription or producer connected to the it.
topic - Topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException.PreconditionFailedException - Topic has active subscriptions or producersPulsarAdminException - Unexpected errorCompletableFuture<Void> deleteAsync(String topic, boolean force)
Delete a topic asynchronously. The topic cannot be deleted if force flag is disable and there's any active subscription or producer connected to the it. Force flag deletes topic forcefully by closing all active producers and consumers.
topic - topic nameforce - Delete topic forcefullyvoid unload(String topic) throws PulsarAdminException
topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - topic does not existPulsarAdminException - Unexpected errorCompletableFuture<Void> unloadAsync(String topic)
topic - topic nameCompletableFuture<MessageId> terminateTopicAsync(String topic)
This
topic - topic nameList<String> getSubscriptions(String topic) throws PulsarAdminException
Get the list of persistent subscriptions for a given topic.
topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorCompletableFuture<List<String>> getSubscriptionsAsync(String topic)
Get the list of persistent subscriptions for a given topic.
topic - topic nameTopicStats getStats(String topic) throws PulsarAdminException
Response Example:
{
"msgRateIn" : 100.0, // Total rate of messages published on the topic. msg/s
"msgThroughputIn" : 10240.0, // Total throughput of messages published on the topic. byte/s
"msgRateOut" : 100.0, // Total rate of messages delivered on the topic. msg/s
"msgThroughputOut" : 10240.0, // Total throughput of messages delivered on the topic. byte/s
"averageMsgSize" : 1024.0, // Average size of published messages. bytes
"publishers" : [ // List of publishes on this topic with their stats
{
"producerId" : 10 // producer id
"address" : 10.4.1.23:3425 // IP and port for this producer
"connectedSince" : 2014-11-21 23:54:46 // Timestamp of this published connection
"msgRateIn" : 100.0, // Total rate of messages published by this producer. msg/s
"msgThroughputIn" : 10240.0, // Total throughput of messages published by this producer. byte/s
"averageMsgSize" : 1024.0, // Average size of published messages by this producer. bytes
},
],
"subscriptions" : { // Map of subscriptions on this topic
"sub1" : {
"msgRateOut" : 100.0, // Total rate of messages delivered on this subscription. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered on this subscription. bytes/s
"msgBacklog" : 0, // Number of messages in the subscriotion backlog
"type" : Exclusive // Whether the subscription is exclusive or shared
"consumers" [ // List of consumers on this subscription
{
"id" : 5 // Consumer id
"address" : 10.4.1.23:3425 // IP and port for this consumer
"connectedSince" : 2014-11-21 23:54:46 // Timestamp of this consumer connection
"msgRateOut" : 100.0, // Total rate of messages delivered to this consumer. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered to this consumer. bytes/s
}
],
},
"replication" : { // Replication statistics
"cluster_1" : { // Cluster name in the context of from-cluster or to-cluster
"msgRateIn" : 100.0, // Total rate of messages received from this remote cluster. msg/s
"msgThroughputIn" : 10240.0, // Total throughput received from this remote cluster. bytes/s
"msgRateOut" : 100.0, // Total rate of messages delivered to the replication-subscriber. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered to the replication-subscriber. bytes/s
"replicationBacklog" : 0, // Number of messages pending to be replicated to this remote cluster
"connected" : true, // Whether the replication-subscriber is currently connected locally
},
"cluster_2" : {
"msgRateIn" : 100.0,
"msgThroughputIn" : 10240.0,
"msgRateOut" : 100.0,
"msghroughputOut" : 10240.0,
"replicationBacklog" : 0,
"connected" : true,
}
},
}
All the rates are computed over a 1 minute window and are relative the last completed 1 minute period.topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorCompletableFuture<TopicStats> getStatsAsync(String topic)
topic - topic namePersistentTopicInternalStats getInternalStats(String topic) throws PulsarAdminException
Access the internal state of the topic
topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorCompletableFuture<PersistentTopicInternalStats> getInternalStatsAsync(String topic)
topic - topic Namecom.google.gson.JsonObject getInternalInfo(String topic) throws PulsarAdminException
topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorCompletableFuture<com.google.gson.JsonObject> getInternalInfoAsync(String topic)
topic - topic namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorPartitionedTopicStats getPartitionedStats(String topic, boolean perPartition) throws PulsarAdminException
Response Example:
{
"msgRateIn" : 100.0, // Total rate of messages published on the partitioned topic. msg/s
"msgThroughputIn" : 10240.0, // Total throughput of messages published on the partitioned topic. byte/s
"msgRateOut" : 100.0, // Total rate of messages delivered on the partitioned topic. msg/s
"msgThroughputOut" : 10240.0, // Total throughput of messages delivered on the partitioned topic. byte/s
"averageMsgSize" : 1024.0, // Average size of published messages. bytes
"publishers" : [ // List of publishes on this partitioned topic with their stats
{
"msgRateIn" : 100.0, // Total rate of messages published by this producer. msg/s
"msgThroughputIn" : 10240.0, // Total throughput of messages published by this producer. byte/s
"averageMsgSize" : 1024.0, // Average size of published messages by this producer. bytes
},
],
"subscriptions" : { // Map of subscriptions on this topic
"sub1" : {
"msgRateOut" : 100.0, // Total rate of messages delivered on this subscription. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered on this subscription. bytes/s
"msgBacklog" : 0, // Number of messages in the subscriotion backlog
"type" : Exclusive // Whether the subscription is exclusive or shared
"consumers" [ // List of consumers on this subscription
{
"msgRateOut" : 100.0, // Total rate of messages delivered to this consumer. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered to this consumer. bytes/s
}
],
},
"replication" : { // Replication statistics
"cluster_1" : { // Cluster name in the context of from-cluster or to-cluster
"msgRateIn" : 100.0, // Total rate of messages received from this remote cluster. msg/s
"msgThroughputIn" : 10240.0, // Total throughput received from this remote cluster. bytes/s
"msgRateOut" : 100.0, // Total rate of messages delivered to the replication-subscriber. msg/s
"msgThroughputOut" : 10240.0, // Total throughput delivered to the replication-subscriber. bytes/s
"replicationBacklog" : 0, // Number of messages pending to be replicated to this remote cluster
"connected" : true, // Whether the replication-subscriber is currently connected locally
},
"cluster_2" : {
"msgRateIn" : 100.0,
"msgThroughputIn" : 10240.0,
"msgRateOut" : 100.0,
"msghroughputOut" : 10240.0,
"replicationBacklog" : 0,
"connected" : true,
}
},
}
All the rates are computed over a 1 minute window and are relative the last completed 1 minute period.topic - topic nameperPartition - PulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic does not existPulsarAdminException - Unexpected errorCompletableFuture<PartitionedTopicStats> getPartitionedStatsAsync(String topic, boolean perPartition)
topic - topic NameperPartition - flag to get stats per partitionvoid deleteSubscription(String topic, String subName) throws PulsarAdminException
Delete a persistent subscription from a topic. There should not be any active consumers on the subscription.
topic - topic namesubName - Subscription namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException.PreconditionFailedException - Subscription has active consumersPulsarAdminException - Unexpected errorCompletableFuture<Void> deleteSubscriptionAsync(String topic, String subName)
Delete a persistent subscription from a topic. There should not be any active consumers on the subscription.
topic - topic namesubName - Subscription namevoid skipAllMessages(String topic, String subName) throws PulsarAdminException
Completely clears the backlog on the subscription.
topic - topic namesubName - Subscription namePulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException - Unexpected errorCompletableFuture<Void> skipAllMessagesAsync(String topic, String subName)
Completely clears the backlog on the subscription.
topic - topic namesubName - Subscription namevoid skipMessages(String topic, String subName, long numMessages) throws PulsarAdminException
topic - topic namesubName - Subscription namenumMessages - Number of messagesPulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException - Unexpected errorCompletableFuture<Void> skipMessagesAsync(String topic, String subName, long numMessages)
topic - topic namesubName - Subscription namenumMessages - Number of messagesvoid expireMessages(String topic, String subscriptionName, long expireTimeInSeconds) throws PulsarAdminException
topic - topic namesubName - Subscription nameexpireTimeInSeconds - Expire messages older than time in secondsPulsarAdminException - Unexpected errorCompletableFuture<Void> expireMessagesAsync(String topic, String subscriptionName, long expireTimeInSeconds)
topic - topic namesubName - Subscription nameexpireTimeInSeconds - Expire messages older than time in secondsvoid expireMessagesForAllSubscriptions(String topic, long expireTimeInSeconds) throws PulsarAdminException
topic - topic nameexpireTimeInSeconds - Expire messages older than time in secondsPulsarAdminException - Unexpected errorCompletableFuture<Void> expireMessagesForAllSubscriptionsAsync(String topic, long expireTimeInSeconds)
topic - topic nameexpireTimeInSeconds - Expire messages older than time in secondsList<Message<byte[]>> peekMessages(String topic, String subName, int numMessages) throws PulsarAdminException
topic - topic namesubName - Subscription namenumMessages - Number of messagesPulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException - Unexpected errorCompletableFuture<List<Message<byte[]>>> peekMessagesAsync(String topic, String subName, int numMessages)
topic - topic namesubName - Subscription namenumMessages - Number of messagesvoid createSubscription(String topic, String subscriptionName, MessageId messageId) throws PulsarAdminException
topic - topic namesubscriptionName - Subscription namemessageId - The MessageId on where to initialize the subscription. It could be MessageId.latest,
MessageId.earliest or a specific message id.PulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.ConflictException - Subscription already existsPulsarAdminException.NotAllowedException - Command disallowed for requested resourcePulsarAdminException - Unexpected errorCompletableFuture<Void> createSubscriptionAsync(String topic, String subscriptionName, MessageId messageId)
topic - topic namesubscriptionName - Subscription namemessageId - The MessageId on where to initialize the subscription. It could be MessageId.latest,
MessageId.earliest or a specific message id.void resetCursor(String topic, String subName, long timestamp) throws PulsarAdminException
topic - topic namesubName - Subscription nametimestamp - reset subscription to position closest to time in ms since epochPulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException.NotAllowedException - Command disallowed for requested resourcePulsarAdminException - Unexpected errorCompletableFuture<Void> resetCursorAsync(String topic, String subName, long timestamp)
topic - topic namesubName - Subscription nametimestamp - reset subscription to position closest to time in ms since epochvoid resetCursor(String topic, String subName, MessageId messageId) throws PulsarAdminException
topic - topic namesubName - Subscription namemessageId - reset subscription to messageId (or previous nearest messageId if given messageId is not valid)PulsarAdminException.NotAuthorizedException - Don't have admin permissionPulsarAdminException.NotFoundException - Topic or subscription does not existPulsarAdminException.NotAllowedException - Command disallowed for requested resourcePulsarAdminException - Unexpected errorCompletableFuture<Void> resetCursorAsync(String topic, String subName, MessageId messageId)
topic - topic namesubName - Subscription nameMessageId - reset subscription to messageId (or previous nearest messageId if given messageId is not valid)void triggerCompaction(String topic) throws PulsarAdminException
topic - The topic on which to trigger compactionPulsarAdminExceptionCompactionStatus compactionStatus(String topic) throws PulsarAdminException
topic - The topic whose compaction status we wish to checkPulsarAdminExceptionCopyright © 2017–2018 Apache Software Foundation. All rights reserved.