org.apache.pulsar.client.admin.TopicPolicies Maven / Gradle / Ivy
The newest version!
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.pulsar.client.admin;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import org.apache.pulsar.client.api.SubscriptionType;
import org.apache.pulsar.common.policies.data.AutoSubscriptionCreationOverride;
import org.apache.pulsar.common.policies.data.BacklogQuota;
import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies;
import org.apache.pulsar.common.policies.data.DispatchRate;
import org.apache.pulsar.common.policies.data.EntryFilters;
import org.apache.pulsar.common.policies.data.InactiveTopicPolicies;
import org.apache.pulsar.common.policies.data.OffloadPolicies;
import org.apache.pulsar.common.policies.data.PersistencePolicies;
import org.apache.pulsar.common.policies.data.PublishRate;
import org.apache.pulsar.common.policies.data.RetentionPolicies;
import org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy;
import org.apache.pulsar.common.policies.data.SubscribeRate;
/**
* Admin interface for topic policies management.
*/
public interface TopicPolicies {
/**
* Get backlog quota map for a topic.
* @param topic Topic name
* @throws PulsarAdminException.NotFoundException Topic does not exist
* @throws PulsarAdminException Unexpected error
*/
Map getBacklogQuotaMap(String topic)
throws PulsarAdminException;
/**
* Get applied backlog quota map for a topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
Map getBacklogQuotaMap(String topic, boolean applied)
throws PulsarAdminException;
/**
* Set a backlog quota for a topic.
* @param topic
* Topic name
* @param backlogQuota
* the new BacklogQuota
* @param backlogQuotaType
*
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void setBacklogQuota(String topic, BacklogQuota backlogQuota,
BacklogQuota.BacklogQuotaType backlogQuotaType) throws PulsarAdminException;
default void setBacklogQuota(String topic, BacklogQuota backlogQuota) throws PulsarAdminException {
setBacklogQuota(topic, backlogQuota, BacklogQuota.BacklogQuotaType.destination_storage);
}
/**
* Remove a backlog quota policy from a topic.
* The namespace backlog policy falls back to the default.
*
* @param topic
* Topic name
* @param backlogQuotaType
*
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void removeBacklogQuota(String topic, BacklogQuota.BacklogQuotaType backlogQuotaType) throws PulsarAdminException;
default void removeBacklogQuota(String topic)
throws PulsarAdminException {
removeBacklogQuota(topic, BacklogQuota.BacklogQuotaType.destination_storage);
}
/**
* Get the delayed delivery policy applied for a specified topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
DelayedDeliveryPolicies getDelayedDeliveryPolicy(String topic
, boolean applied) throws PulsarAdminException;
/**
* Get the delayed delivery policy applied for a specified topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getDelayedDeliveryPolicyAsync(String topic
, boolean applied);
/**
* Get the delayed delivery policy for a specified topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
DelayedDeliveryPolicies getDelayedDeliveryPolicy(String topic) throws PulsarAdminException;
/**
* Get the delayed delivery policy for a specified topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getDelayedDeliveryPolicyAsync(String topic);
/**
* Set the delayed delivery policy for a specified topic.
* @param topic
* @param delayedDeliveryPolicies
* @throws PulsarAdminException
*/
void setDelayedDeliveryPolicy(String topic
, DelayedDeliveryPolicies delayedDeliveryPolicies) throws PulsarAdminException;
/**
* Set the delayed delivery policy for a specified topic asynchronously.
* @param topic
* @param delayedDeliveryPolicies
* @return
*/
CompletableFuture setDelayedDeliveryPolicyAsync(String topic
, DelayedDeliveryPolicies delayedDeliveryPolicies);
/**
* Remove the delayed delivery policy for a specified topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeDelayedDeliveryPolicyAsync(String topic);
/**
* Remove the delayed delivery policy for a specified topic.
* @param topic
* @throws PulsarAdminException
*/
void removeDelayedDeliveryPolicy(String topic) throws PulsarAdminException;
/**
* Set message TTL for a topic.
*
* @param topic
* Topic name
* @param messageTTLInSecond
* Message TTL in second.
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void setMessageTTL(String topic, int messageTTLInSecond) throws PulsarAdminException;
/**
* Get message TTL for a topic.
*
* @param topic
* @return Message TTL in second.
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
Integer getMessageTTL(String topic) throws PulsarAdminException;
/**
* Get message TTL applied for a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Integer getMessageTTL(String topic, boolean applied) throws PulsarAdminException;
/**
* Remove message TTL for a topic.
*
* @param topic
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void removeMessageTTL(String topic) throws PulsarAdminException;
/**
* Set the retention configuration on a topic.
*
* Set the retention configuration on a topic. This operation requires Pulsar super-user access.
*
* Request parameter example:
*
*
*
*
* {
* "retentionTimeInMinutes" : 60, // how long to retain messages
* "retentionSizeInMB" : 1024, // retention backlog limit
* }
*
*
*
* @param topic
* Topic name
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws ConflictException
* Concurrent modification
* @throws PulsarAdminException
* Unexpected error
*/
void setRetention(String topic, RetentionPolicies retention) throws PulsarAdminException;
/**
* Set the retention configuration for all the topics on a topic asynchronously.
*
* Set the retention configuration on a topic. This operation requires Pulsar super-user access.
*
* Request parameter example:
*
*
*
*
* {
* "retentionTimeInMinutes" : 60, // how long to retain messages
* "retentionSizeInMB" : 1024, // retention backlog limit
* }
*
*
*
* @param topic
* Topic name
*/
CompletableFuture setRetentionAsync(String topic, RetentionPolicies retention);
/**
* Get the retention configuration for a topic.
*
* Get the retention configuration for a topic.
*
* Response example:
*
*
*
*
* {
* "retentionTimeInMinutes" : 60, // how long to retain messages
* "retentionSizeInMB" : 1024, // retention backlog limit
* }
*
*
*
* @param topic
* Topic name
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws ConflictException
* Concurrent modification
* @throws PulsarAdminException
* Unexpected error
*/
RetentionPolicies getRetention(String topic) throws PulsarAdminException;
/**
* Get the retention configuration for a topic asynchronously.
*
* Get the retention configuration for a topic.
*
*
* @param topic
* Topic name
*/
CompletableFuture getRetentionAsync(String topic);
/**
* Get the applied retention configuration for a topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
RetentionPolicies getRetention(String topic, boolean applied) throws PulsarAdminException;
/**
* Get the applied retention configuration for a topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getRetentionAsync(String topic, boolean applied);
/**
* Remove the retention configuration for all the topics on a topic.
*
* Remove the retention configuration on a topic. This operation requires Pulsar super-user access.
*
* Request parameter example:
*
*
* @param topic
* Topic name
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws ConflictException
* Concurrent modification
* @throws PulsarAdminException
* Unexpected error
*/
void removeRetention(String topic) throws PulsarAdminException;
/**
* Remove the retention configuration for all the topics on a topic asynchronously.
*
* Remove the retention configuration on a topic. This operation requires Pulsar super-user access.
*
* Request parameter example:
*
*
*
*
* {
* "retentionTimeInMinutes" : 60, // how long to retain messages
* "retentionSizeInMB" : 1024, // retention backlog limit
* }
*
*
*
* @param topic
* Topic name
*/
CompletableFuture removeRetentionAsync(String topic);
/**
* Get max unacked messages on a consumer of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Integer getMaxUnackedMessagesOnConsumer(String topic) throws PulsarAdminException;
/**
* get max unacked messages on consumer of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getMaxUnackedMessagesOnConsumerAsync(String topic);
/**
* get applied max unacked messages on consumer of a topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
Integer getMaxUnackedMessagesOnConsumer(String topic, boolean applied) throws PulsarAdminException;
/**
* get applied max unacked messages on consumer of a topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getMaxUnackedMessagesOnConsumerAsync(String topic, boolean applied);
/**
* set max unacked messages on consumer of a topic.
* @param topic
* @param maxNum
* @throws PulsarAdminException
*/
void setMaxUnackedMessagesOnConsumer(String topic, int maxNum) throws PulsarAdminException;
/**
* set max unacked messages on consumer of a topic asynchronously.
* @param topic
* @param maxNum
* @return
*/
CompletableFuture setMaxUnackedMessagesOnConsumerAsync(String topic, int maxNum);
/**
* remove max unacked messages on consumer of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeMaxUnackedMessagesOnConsumer(String topic) throws PulsarAdminException;
/**
* remove max unacked messages on consumer of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeMaxUnackedMessagesOnConsumerAsync(String topic);
/**
* Get inactive topic policies applied for a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
InactiveTopicPolicies getInactiveTopicPolicies(String topic, boolean applied) throws PulsarAdminException;
/**
* Get inactive topic policies applied for a topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getInactiveTopicPoliciesAsync(String topic, boolean applied);
/**
* get inactive topic policies of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
InactiveTopicPolicies getInactiveTopicPolicies(String topic) throws PulsarAdminException;
/**
* get inactive topic policies of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getInactiveTopicPoliciesAsync(String topic);
/**
* set inactive topic policies of a topic.
* @param topic
* @param inactiveTopicPolicies
* @throws PulsarAdminException
*/
void setInactiveTopicPolicies(String topic
, InactiveTopicPolicies inactiveTopicPolicies) throws PulsarAdminException;
/**
* set inactive topic policies of a topic asynchronously.
* @param topic
* @param inactiveTopicPolicies
* @return
*/
CompletableFuture setInactiveTopicPoliciesAsync(String topic, InactiveTopicPolicies inactiveTopicPolicies);
/**
* remove inactive topic policies of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeInactiveTopicPolicies(String topic) throws PulsarAdminException;
/**
* remove inactive topic policies of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeInactiveTopicPoliciesAsync(String topic);
/**
* get offload policies of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
OffloadPolicies getOffloadPolicies(String topic) throws PulsarAdminException;
/**
* get offload policies of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getOffloadPoliciesAsync(String topic);
/**
* get applied offload policies of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
OffloadPolicies getOffloadPolicies(String topic, boolean applied) throws PulsarAdminException;
/**
* get applied offload policies of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getOffloadPoliciesAsync(String topic, boolean applied);
/**
* set offload policies of a topic.
* @param topic
* @param offloadPolicies
* @throws PulsarAdminException
*/
void setOffloadPolicies(String topic, OffloadPolicies offloadPolicies) throws PulsarAdminException;
/**
* set offload policies of a topic asynchronously.
* @param topic
* @param offloadPolicies
* @return
*/
CompletableFuture setOffloadPoliciesAsync(String topic, OffloadPolicies offloadPolicies);
/**
* remove offload policies of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeOffloadPolicies(String topic) throws PulsarAdminException;
/**
* remove offload policies of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeOffloadPoliciesAsync(String topic);
/**
* get max unacked messages on subscription of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Integer getMaxUnackedMessagesOnSubscription(String topic) throws PulsarAdminException;
/**
* get max unacked messages on subscription of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getMaxUnackedMessagesOnSubscriptionAsync(String topic);
/**
* get max unacked messages on subscription of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Integer getMaxUnackedMessagesOnSubscription(String topic, boolean applied) throws PulsarAdminException;
/**
* get max unacked messages on subscription of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getMaxUnackedMessagesOnSubscriptionAsync(String topic, boolean applied);
/**
* set max unacked messages on subscription of a topic.
* @param topic
* @param maxNum
* @throws PulsarAdminException
*/
void setMaxUnackedMessagesOnSubscription(String topic, int maxNum) throws PulsarAdminException;
/**
* set max unacked messages on subscription of a topic asynchronously.
* @param topic
* @param maxNum
* @return
*/
CompletableFuture setMaxUnackedMessagesOnSubscriptionAsync(String topic, int maxNum);
/**
* remove max unacked messages on subscription of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeMaxUnackedMessagesOnSubscription(String topic) throws PulsarAdminException;
/**
* remove max unacked messages on subscription of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeMaxUnackedMessagesOnSubscriptionAsync(String topic);
/**
* Set the configuration of persistence policies for specified topic.
*
* @param topic Topic name
* @param persistencePolicies Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
void setPersistence(String topic, PersistencePolicies persistencePolicies) throws PulsarAdminException;
/**
* Set the configuration of persistence policies for specified topic asynchronously.
*
* @param topic Topic name
* @param persistencePolicies Configuration of bookkeeper persistence policies
*/
CompletableFuture setPersistenceAsync(String topic, PersistencePolicies persistencePolicies);
/**
* Get the configuration of persistence policies for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
PersistencePolicies getPersistence(String topic) throws PulsarAdminException;
/**
* Get the configuration of persistence policies for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture getPersistenceAsync(String topic);
/**
* Get the applied configuration of persistence policies for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
PersistencePolicies getPersistence(String topic, boolean applied) throws PulsarAdminException;
/**
* Get the applied configuration of persistence policies for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture getPersistenceAsync(String topic, boolean applied);
/**
* Remove the configuration of persistence policies for specified topic.
*
* @param topic Topic name
* @throws PulsarAdminException Unexpected error
*/
void removePersistence(String topic) throws PulsarAdminException;
/**
* Remove the configuration of persistence policies for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture removePersistenceAsync(String topic);
/**
* get deduplication enabled of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Boolean getDeduplicationStatus(String topic) throws PulsarAdminException;
/**
* get deduplication enabled of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getDeduplicationStatusAsync(String topic);
/**
* get applied deduplication enabled of a topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Boolean getDeduplicationStatus(String topic, boolean applied) throws PulsarAdminException;
/**
* get applied deduplication enabled of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getDeduplicationStatusAsync(String topic, boolean applied);
/**
* set deduplication enabled of a topic.
* @param topic
* @param enabled
* @throws PulsarAdminException
*/
void setDeduplicationStatus(String topic, boolean enabled) throws PulsarAdminException;
/**
* set deduplication enabled of a topic asynchronously.
* @param topic
* @param enabled
* @return
*/
CompletableFuture setDeduplicationStatusAsync(String topic, boolean enabled);
/**
* remove deduplication enabled of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeDeduplicationStatus(String topic) throws PulsarAdminException;
/**
* remove deduplication enabled of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeDeduplicationStatusAsync(String topic);
/**
* Set message-dispatch-rate (topic can dispatch this many messages per second).
*
* @param topic
* @param dispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
void setDispatchRate(String topic, DispatchRate dispatchRate) throws PulsarAdminException;
/**
* Set message-dispatch-rate asynchronously.
*
* topic can dispatch this many messages per second
*
* @param topic
* @param dispatchRate
* number of messages per second
*/
CompletableFuture setDispatchRateAsync(String topic, DispatchRate dispatchRate);
/**
* Get message-dispatch-rate (topic can dispatch this many messages per second).
*
* @param topic
* @returns messageRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
DispatchRate getDispatchRate(String topic) throws PulsarAdminException;
/**
* Get message-dispatch-rate asynchronously.
*
* Topic can dispatch this many messages per second.
*
* @param topic
* @returns messageRate
* number of messages per second
*/
CompletableFuture getDispatchRateAsync(String topic);
/**
* Get applied message-dispatch-rate (topic can dispatch this many messages per second).
*
* @param topic
* @returns messageRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
DispatchRate getDispatchRate(String topic, boolean applied) throws PulsarAdminException;
/**
* Get applied message-dispatch-rate asynchronously.
*
* Topic can dispatch this many messages per second.
*
* @param topic
* @returns messageRate
* number of messages per second
*/
CompletableFuture getDispatchRateAsync(String topic, boolean applied);
/**
* Remove message-dispatch-rate.
*
* Remove topic message dispatch rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
void removeDispatchRate(String topic) throws PulsarAdminException;
/**
* Remove message-dispatch-rate asynchronously.
*
* Remove topic message dispatch rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
CompletableFuture removeDispatchRateAsync(String topic) throws PulsarAdminException;
/**
* Set subscription-message-dispatch-rate for the topic.
*
* Subscriptions of this topic can dispatch this many messages per second
*
* @param topic
* @param dispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
void setSubscriptionDispatchRate(String topic, DispatchRate dispatchRate) throws PulsarAdminException;
/**
* Set subscription-message-dispatch-rate for the topic asynchronously.
*
* Subscriptions of this topic can dispatch this many messages per second.
*
* @param topic
* @param dispatchRate
* number of messages per second
*/
CompletableFuture setSubscriptionDispatchRateAsync(String topic, DispatchRate dispatchRate);
/**
* Get applied subscription-message-dispatch-rate.
*
* Subscriptions of this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
DispatchRate getSubscriptionDispatchRate(String topic, boolean applied) throws PulsarAdminException;
/**
* Get applied subscription-message-dispatch-rate asynchronously.
*
* Subscriptions in this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
*/
CompletableFuture getSubscriptionDispatchRateAsync(String topic, boolean applied);
/**
* Get subscription-message-dispatch-rate for the topic.
*
* Subscriptions of this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
DispatchRate getSubscriptionDispatchRate(String topic) throws PulsarAdminException;
/**
* Get subscription-message-dispatch-rate asynchronously.
*
* Subscriptions of this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
*/
CompletableFuture getSubscriptionDispatchRateAsync(String topic);
/**
* Remove subscription-message-dispatch-rate for a topic.
* @param topic
* Topic name
* @throws PulsarAdminException
* Unexpected error
*/
void removeSubscriptionDispatchRate(String topic) throws PulsarAdminException;
/**
* Remove subscription-message-dispatch-rate for a topic asynchronously.
* @param topic
* Topic name
*/
CompletableFuture removeSubscriptionDispatchRateAsync(String topic);
/**
* Set dispatch rate limiter for a specific subscription.
*/
void setSubscriptionDispatchRate(String topic, String subscriptionName, DispatchRate dispatchRate)
throws PulsarAdminException;
/**
* Async version of {@link #setSubscriptionDispatchRate(String, String, DispatchRate)}.
*/
CompletableFuture setSubscriptionDispatchRateAsync(String topic, String subscriptionName,
DispatchRate dispatchRate);
/**
* If applied is true, get dispatch rate limiter for a specific subscription.
* Or else, return subscription level setting.
*/
DispatchRate getSubscriptionDispatchRate(String topic, String subscriptionName, boolean applied)
throws PulsarAdminException;
/**
* Async version of {@link #getSubscriptionDispatchRate(String, String, boolean)}.
*/
CompletableFuture getSubscriptionDispatchRateAsync(String topic, String subscriptionName,
boolean applied);
/**
* Get subscription level dispatch rate limiter setting for a specific subscription.
*/
DispatchRate getSubscriptionDispatchRate(String topic, String subscriptionName) throws PulsarAdminException;
/**
* Async version of {@link #getSubscriptionDispatchRate(String, String)}.
*/
CompletableFuture getSubscriptionDispatchRateAsync(String topic, String subscriptionName);
/**
* Remove subscription level dispatch rate limiter setting for a specific subscription.
*/
void removeSubscriptionDispatchRate(String topic, String subscriptionName) throws PulsarAdminException;
/**
* Async version of {@link #removeSubscriptionDispatchRate(String, String)}.
*/
CompletableFuture removeSubscriptionDispatchRateAsync(String topic, String subscriptionName);
/**
* Set replicatorDispatchRate for the topic.
*
* Replicator dispatch rate under this topic can dispatch this many messages per second
*
* @param topic
* @param dispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
void setReplicatorDispatchRate(String topic, DispatchRate dispatchRate) throws PulsarAdminException;
/**
* Set replicatorDispatchRate for the topic asynchronously.
*
* Replicator dispatch rate under this topic can dispatch this many messages per second.
*
* @param topic
* @param dispatchRate
* number of messages per second
*/
CompletableFuture setReplicatorDispatchRateAsync(String topic, DispatchRate dispatchRate);
/**
* Get replicatorDispatchRate for the topic.
*
* Replicator dispatch rate under this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
DispatchRate getReplicatorDispatchRate(String topic) throws PulsarAdminException;
/**
* Get replicatorDispatchRate asynchronously.
*
* Replicator dispatch rate under this topic can dispatch this many messages per second.
*
* @param topic
* @returns DispatchRate
* number of messages per second
*/
CompletableFuture getReplicatorDispatchRateAsync(String topic);
/**
* Get applied replicatorDispatchRate for the topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
DispatchRate getReplicatorDispatchRate(String topic, boolean applied) throws PulsarAdminException;
/**
* Get applied replicatorDispatchRate asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getReplicatorDispatchRateAsync(String topic, boolean applied);
/**
* Remove replicatorDispatchRate for a topic.
* @param topic
* Topic name
* @throws PulsarAdminException
* Unexpected error
*/
void removeReplicatorDispatchRate(String topic) throws PulsarAdminException;
/**
* Remove replicatorDispatchRate for a topic asynchronously.
* @param topic
* Topic name
*/
CompletableFuture removeReplicatorDispatchRateAsync(String topic);
/**
* Get the compactionThreshold for a topic. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
*
* Response example:
*
*
* 10000000
*
*
* @param topic
* Topic name
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Namespace does not exist
* @throws PulsarAdminException
* Unexpected error
*/
Long getCompactionThreshold(String topic) throws PulsarAdminException;
/**
* Get the compactionThreshold for a topic asynchronously. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
*
* Response example:
*
*
* 10000000
*
*
* @param topic
* Topic name
*/
CompletableFuture getCompactionThresholdAsync(String topic);
/**
* Get the compactionThreshold for a topic. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
* @param topic Topic name
* @throws NotAuthorizedException Don't have admin permission
* @throws PulsarAdminException.NotFoundException Namespace does not exist
* @throws PulsarAdminException Unexpected error
*/
Long getCompactionThreshold(String topic, boolean applied) throws PulsarAdminException;
/**
* Get the compactionThreshold for a topic asynchronously. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
* @param topic Topic name
*/
CompletableFuture getCompactionThresholdAsync(String topic, boolean applied);
/**
* Set the compactionThreshold for a topic. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
*
* Request example:
*
*
* 10000000
*
*
* @param topic
* Topic name
* @param compactionThreshold
* maximum number of backlog bytes before compaction is triggered
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Namespace does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void setCompactionThreshold(String topic, long compactionThreshold) throws PulsarAdminException;
/**
* Set the compactionThreshold for a topic asynchronously. The maximum number of bytes
* can have before compaction is triggered. 0 disables.
*
* Request example:
*
*
* 10000000
*
*
* @param topic
* Topic name
* @param compactionThreshold
* maximum number of backlog bytes before compaction is triggered
*/
CompletableFuture setCompactionThresholdAsync(String topic, long compactionThreshold);
/**
* Remove the compactionThreshold for a topic.
* @param topic
* Topic name
* @throws PulsarAdminException
* Unexpected error
*/
void removeCompactionThreshold(String topic) throws PulsarAdminException;
/**
* Remove the compactionThreshold for a topic asynchronously.
* @param topic
* Topic name
*/
CompletableFuture removeCompactionThresholdAsync(String topic);
/**
* Set message-publish-rate (topics can publish this many messages per second).
*
* @param topic
* @param publishMsgRate
* number of messages per second
* @throws PulsarAdminException
* Unexpected error
*/
void setPublishRate(String topic, PublishRate publishMsgRate) throws PulsarAdminException;
/**
* Set message-publish-rate (topics can publish this many messages per second) asynchronously.
*
* @param topic
* @param publishMsgRate
* number of messages per second
*/
CompletableFuture setPublishRateAsync(String topic, PublishRate publishMsgRate);
/**
* Get message-publish-rate (topics can publish this many messages per second).
*
* @param topic
* @return number of messages per second
* @throws PulsarAdminException Unexpected error
*/
PublishRate getPublishRate(String topic) throws PulsarAdminException;
/**
* Get message-publish-rate (topics can publish this many messages per second) asynchronously.
*
* @param topic
* @return number of messages per second
*/
CompletableFuture getPublishRateAsync(String topic);
/**
* Remove message-publish-rate.
*
* Remove topic message publish rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
void removePublishRate(String topic) throws PulsarAdminException;
/**
* Remove message-publish-rate asynchronously.
*
* Remove topic message publish rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
CompletableFuture removePublishRateAsync(String topic) throws PulsarAdminException;
/**
* Get the maxConsumersPerSubscription for a topic.
*
* Response example:
*
*
* 0
*
*
* @param topic
* Topic name
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Namespace does not exist
* @throws PulsarAdminException
* Unexpected error
*/
Integer getMaxConsumersPerSubscription(String topic) throws PulsarAdminException;
/**
* Get the maxConsumersPerSubscription for a topic asynchronously.
*
* Response example:
*
*
* 0
*
*
* @param topic
* Topic name
*/
CompletableFuture getMaxConsumersPerSubscriptionAsync(String topic);
/**
* Set maxConsumersPerSubscription for a topic.
*
* Request example:
*
*
* 10
*
*
* @param topic
* Topic name
* @param maxConsumersPerSubscription
* maxConsumersPerSubscription value for a namespace
*
* @throws NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Namespace does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void setMaxConsumersPerSubscription(String topic, int maxConsumersPerSubscription) throws PulsarAdminException;
/**
* Set maxConsumersPerSubscription for a topic asynchronously.
*
* Request example:
*
*
* 10
*
*
* @param topic
* Topic name
* @param maxConsumersPerSubscription
* maxConsumersPerSubscription value for a namespace
*/
CompletableFuture setMaxConsumersPerSubscriptionAsync(String topic, int maxConsumersPerSubscription);
/**
* Remove the maxConsumersPerSubscription for a topic.
* @param topic
* Topic name
* @throws PulsarAdminException
* Unexpected error
*/
void removeMaxConsumersPerSubscription(String topic) throws PulsarAdminException;
/**
* Remove the maxConsumersPerSubscription for a topic asynchronously.
* @param topic
* Topic name
*/
CompletableFuture removeMaxConsumersPerSubscriptionAsync(String topic);
/**
* Get the max number of producer for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
Integer getMaxProducers(String topic) throws PulsarAdminException;
/**
* Get the max number of producer for specified topic asynchronously.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture getMaxProducersAsync(String topic);
/**
* Get the max number of producer applied for specified topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
Integer getMaxProducers(String topic, boolean applied) throws PulsarAdminException;
/**
* Get the max number of producer applied for specified topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getMaxProducersAsync(String topic, boolean applied);
/**
* Set the max number of producer for specified topic.
*
* @param topic Topic name
* @param maxProducers Max number of producer
* @throws PulsarAdminException Unexpected error
*/
void setMaxProducers(String topic, int maxProducers) throws PulsarAdminException;
/**
* Set the max number of producer for specified topic asynchronously.
*
* @param topic Topic name
* @param maxProducers Max number of producer
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture setMaxProducersAsync(String topic, int maxProducers);
/**
* Remove the max number of producer for specified topic.
*
* @param topic Topic name
* @throws PulsarAdminException Unexpected error
*/
void removeMaxProducers(String topic) throws PulsarAdminException;
/**
* Remove the max number of producer for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture removeMaxProducersAsync(String topic);
/**
* Get the max number of subscriptions for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
Integer getMaxSubscriptionsPerTopic(String topic) throws PulsarAdminException;
/**
* Get the max number of subscriptions for specified topic asynchronously.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture getMaxSubscriptionsPerTopicAsync(String topic);
/**
* Set the max number of subscriptions for specified topic.
*
* @param topic Topic name
* @param maxSubscriptionsPerTopic Max number of subscriptions
* @throws PulsarAdminException Unexpected error
*/
void setMaxSubscriptionsPerTopic(String topic, int maxSubscriptionsPerTopic) throws PulsarAdminException;
/**
* Set the max number of subscriptions for specified topic asynchronously.
*
* @param topic Topic name
* @param maxSubscriptionsPerTopic Max number of subscriptions
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture setMaxSubscriptionsPerTopicAsync(String topic, int maxSubscriptionsPerTopic);
/**
* Remove the max number of subscriptions for specified topic.
*
* @param topic Topic name
* @throws PulsarAdminException Unexpected error
*/
void removeMaxSubscriptionsPerTopic(String topic) throws PulsarAdminException;
/**
* Remove the max number of subscriptions for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture removeMaxSubscriptionsPerTopicAsync(String topic);
/**
* Get the max message size for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
Integer getMaxMessageSize(String topic) throws PulsarAdminException;
/**
* Get the max message size for specified topic asynchronously.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture getMaxMessageSizeAsync(String topic);
/**
* Set the max message size for specified topic.
*
* @param topic Topic name
* @param maxMessageSize Max message size of producer
* @throws PulsarAdminException Unexpected error
*/
void setMaxMessageSize(String topic, int maxMessageSize) throws PulsarAdminException;
/**
* Set the max message size for specified topic asynchronously.0 disables.
*
* @param topic Topic name
* @param maxMessageSize Max message size of topic
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture setMaxMessageSizeAsync(String topic, int maxMessageSize);
/**
* Remove the max message size for specified topic.
*
* @param topic Topic name
* @throws PulsarAdminException Unexpected error
*/
void removeMaxMessageSize(String topic) throws PulsarAdminException;
/**
* Remove the max message size for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture removeMaxMessageSizeAsync(String topic);
/**
* Get the max number of consumer for specified topic.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
Integer getMaxConsumers(String topic) throws PulsarAdminException;
/**
* Get the max number of consumer for specified topic asynchronously.
*
* @param topic Topic name
* @return Configuration of bookkeeper persistence policies
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture getMaxConsumersAsync(String topic);
/**
* Get the max number of consumer applied for specified topic.
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
Integer getMaxConsumers(String topic, boolean applied) throws PulsarAdminException;
/**
* Get the max number of consumer applied for specified topic asynchronously.
* @param topic
* @param applied
* @return
*/
CompletableFuture getMaxConsumersAsync(String topic, boolean applied);
/**
* Set the max number of consumer for specified topic.
*
* @param topic Topic name
* @param maxConsumers Max number of consumer
* @throws PulsarAdminException Unexpected error
*/
void setMaxConsumers(String topic, int maxConsumers) throws PulsarAdminException;
/**
* Set the max number of consumer for specified topic asynchronously.
*
* @param topic Topic name
* @param maxConsumers Max number of consumer
* @throws PulsarAdminException Unexpected error
*/
CompletableFuture setMaxConsumersAsync(String topic, int maxConsumers);
/**
* Remove the max number of consumer for specified topic.
*
* @param topic Topic name
* @throws PulsarAdminException Unexpected error
*/
void removeMaxConsumers(String topic) throws PulsarAdminException;
/**
* Remove the max number of consumer for specified topic asynchronously.
*
* @param topic Topic name
*/
CompletableFuture removeMaxConsumersAsync(String topic);
/**
* Get the deduplication snapshot interval for specified topic.
* @param topic
* @return
* @throws PulsarAdminException
*/
Integer getDeduplicationSnapshotInterval(String topic) throws PulsarAdminException;
/**
* Get the deduplication snapshot interval for specified topic asynchronously.
* @param topic
* @return
*/
CompletableFuture getDeduplicationSnapshotIntervalAsync(String topic);
/**
* Set the deduplication snapshot interval for specified topic.
* @param topic
* @param interval
* @throws PulsarAdminException
*/
void setDeduplicationSnapshotInterval(String topic, int interval) throws PulsarAdminException;
/**
* Set the deduplication snapshot interval for specified topic asynchronously.
* @param topic
* @param interval
* @return
*/
CompletableFuture setDeduplicationSnapshotIntervalAsync(String topic, int interval);
/**
* Remove the deduplication snapshot interval for specified topic.
* @param topic
* @throws PulsarAdminException
*/
void removeDeduplicationSnapshotInterval(String topic) throws PulsarAdminException;
/**
* Remove the deduplication snapshot interval for specified topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeDeduplicationSnapshotIntervalAsync(String topic);
/**
* Set is enable sub types.
*
* @param topic
* @param subscriptionTypesEnabled
* is enable subTypes
* @throws PulsarAdminException
* Unexpected error
*/
void setSubscriptionTypesEnabled(String topic,
Set subscriptionTypesEnabled) throws PulsarAdminException;
/**
* Set is enable sub types asynchronously.
*
* @param topic
* @param subscriptionTypesEnabled
* is enable subTypes
*/
CompletableFuture setSubscriptionTypesEnabledAsync(String topic,
Set subscriptionTypesEnabled);
/**
* Get is enable sub types.
*
* @param topic
* is topic for get is enable sub types
* @return set of enable sub types {@link Set }
* @throws PulsarAdminException
* Unexpected error
*/
Set getSubscriptionTypesEnabled(String topic) throws PulsarAdminException;
/**
* Get is enable sub types asynchronously.
*
* @param topic
* is topic for get is enable sub types
*/
CompletableFuture> getSubscriptionTypesEnabledAsync(String topic);
/**
* Remove subscription types enabled for a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeSubscriptionTypesEnabled(String topic) throws PulsarAdminException;
/**
* Remove subscription types enabled for a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeSubscriptionTypesEnabledAsync(String topic);
/**
* Set topic-subscribe-rate (topic will limit by subscribeRate).
*
* @param topic
* @param subscribeRate
* consumer subscribe limit by this subscribeRate
* @throws PulsarAdminException
* Unexpected error
*/
void setSubscribeRate(String topic, SubscribeRate subscribeRate) throws PulsarAdminException;
/**
* Set topic-subscribe-rate (topics will limit by subscribeRate) asynchronously.
*
* @param topic
* @param subscribeRate
* consumer subscribe limit by this subscribeRate
*/
CompletableFuture setSubscribeRateAsync(String topic, SubscribeRate subscribeRate);
/**
* Get topic-subscribe-rate (topics allow subscribe times per consumer in a period).
*
* @param topic
* @returns subscribeRate
* @throws PulsarAdminException
* Unexpected error
*/
SubscribeRate getSubscribeRate(String topic) throws PulsarAdminException;
/**
* Get topic-subscribe-rate asynchronously.
*
* Topic allow subscribe times per consumer in a period.
*
* @param topic
* @returns subscribeRate
*/
CompletableFuture getSubscribeRateAsync(String topic);
/**
* Get applied topic-subscribe-rate (topics allow subscribe times per consumer in a period).
*
* @param topic
* @returns subscribeRate
* @throws PulsarAdminException
* Unexpected error
*/
SubscribeRate getSubscribeRate(String topic, boolean applied) throws PulsarAdminException;
/**
* Get applied topic-subscribe-rate asynchronously.
*
* @param topic
* @returns subscribeRate
*/
CompletableFuture getSubscribeRateAsync(String topic, boolean applied);
/**
* Remove topic-subscribe-rate.
*
* Remove topic subscribe rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
void removeSubscribeRate(String topic) throws PulsarAdminException;
/**
* Remove topic-subscribe-rate asynchronously.
*
* Remove topic subscribe rate
*
* @param topic
* @throws PulsarAdminException
* unexpected error
*/
CompletableFuture removeSubscribeRateAsync(String topic) throws PulsarAdminException;
/**
* Get schema compatibility strategy on a topic.
*
* @param topic The topic in whose policy we are interested
* @param applied Get the current applied schema compatibility strategy
*/
SchemaCompatibilityStrategy getSchemaCompatibilityStrategy(String topic, boolean applied)
throws PulsarAdminException;
/**
* Get schema compatibility strategy on a topic asynchronously.
*
* @param topic The topic in whose policy we are interested
* @param applied Get the current applied schema compatibility strategy
*/
CompletableFuture getSchemaCompatibilityStrategyAsync(String topic, boolean applied);
/**
* Set schema compatibility strategy on a topic.
*
* @param topic The topic in whose policy should be set
* @param strategy The schema compatibility strategy
*/
void setSchemaCompatibilityStrategy(String topic, SchemaCompatibilityStrategy strategy) throws PulsarAdminException;
/**
* Set schema compatibility strategy on a topic asynchronously.
*
* @param topic The topic in whose policy should be set
* @param strategy The schema compatibility strategy
*/
CompletableFuture setSchemaCompatibilityStrategyAsync(String topic, SchemaCompatibilityStrategy strategy);
/**
* Remove schema compatibility strategy on a topic.
*
* @param topic The topic in whose policy should be removed
*/
void removeSchemaCompatibilityStrategy(String topic) throws PulsarAdminException;
/**
* Remove schema compatibility strategy on a topic asynchronously.
*
* @param topic The topic in whose policy should be removed
*/
CompletableFuture removeSchemaCompatibilityStrategyAsync(String topic);
/**
* Get applied entry filters for a topic.
* @param topic
* @param applied
* @return entry filters classes info.
* @throws PulsarAdminException
*/
EntryFilters getEntryFiltersPerTopic(String topic, boolean applied) throws PulsarAdminException;
/**
* Get applied entry filters for a topic asynchronously.
*
* @param topic
* @param applied
* @return
*/
CompletableFuture getEntryFiltersPerTopicAsync(String topic, boolean applied);
/**
* Set entry filters on a topic.
*
* @param topic The topic in whose policy should be set
* @param entryFilters The entry filters
*/
void setEntryFiltersPerTopic(String topic, EntryFilters entryFilters) throws PulsarAdminException;
/**
* Set entry filters on a topic asynchronously.
*
* @param topic The topic in whose policy should be set
* @param entryFilters The entry filters
*/
CompletableFuture setEntryFiltersPerTopicAsync(String topic, EntryFilters entryFilters);
/**
* remove entry filters of a topic.
* @param topic
* @throws PulsarAdminException
*/
void removeEntryFiltersPerTopic(String topic) throws PulsarAdminException;
/**
* remove entry filters of a topic asynchronously.
* @param topic
* @return
*/
CompletableFuture removeEntryFiltersPerTopicAsync(String topic);
/**
* Sets the autoSubscriptionCreation policy for a given topic, overriding namespace settings.
*
* When autoSubscriptionCreationOverride is enabled, new subscriptions will be created upon connection,
* regardless of the namespace level configuration.
*
* Request example:
*
*
*
* {
* "allowAutoSubscriptionCreation" : true
* }
*
*
*
* @param topic
* Topic name
* @param autoSubscriptionCreationOverride
* Override policies for auto subscription creation
*
* @throws PulsarAdminException.NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Topic does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void setAutoSubscriptionCreation(
String topic, AutoSubscriptionCreationOverride autoSubscriptionCreationOverride)
throws PulsarAdminException;
/**
* Sets the autoSubscriptionCreation policy for a given topic, overriding namespace settings asynchronously.
*
* When autoSubscriptionCreationOverride is enabled, new subscriptions will be created upon connection,
* regardless of the namespace level configuration.
*
* Request example:
*
*
*
* {
* "allowAutoSubscriptionCreation" : true
* }
*
*
*
* @param topic
* Topic name
* @param autoSubscriptionCreationOverride
* Override policies for auto subscription creation
*/
CompletableFuture setAutoSubscriptionCreationAsync(
String topic, AutoSubscriptionCreationOverride autoSubscriptionCreationOverride);
/**
* Get the autoSubscriptionCreation info within a topic.
*
* @param topic
* @param applied
* @return
* @throws PulsarAdminException
*/
AutoSubscriptionCreationOverride getAutoSubscriptionCreation(String topic,
boolean applied) throws PulsarAdminException;
/**
* Get the autoSubscriptionCreation info within a topic asynchronously.
*
* @param topic
* @param applied
* @return
*/
CompletableFuture getAutoSubscriptionCreationAsync(String topic, boolean applied);
/**
* Removes the autoSubscriptionCreation policy for a given topic.
*
* @param topic
* Topic name
*
* @throws PulsarAdminException.NotAuthorizedException
* Don't have admin permission
* @throws PulsarAdminException.NotFoundException
* Namespace does not exist
* @throws PulsarAdminException
* Unexpected error
*/
void removeAutoSubscriptionCreation(String topic) throws PulsarAdminException;
/**
* Removes the autoSubscriptionCreation policy for a given topic asynchronously.
*
* @param topic
* Topic name
*/
CompletableFuture removeAutoSubscriptionCreationAsync(String topic);
/**
* After enabling this feature, Pulsar will stop delivery messages to clients if the cursor metadata is too large to
* # persist, it will help to reduce the duplicates caused by the ack state that can not be fully persistent.
*/
CompletableFuture setDispatcherPauseOnAckStatePersistent(String topic);
/**
* Removes the dispatcherPauseOnAckStatePersistentEnabled policy for a given topic asynchronously.
*/
CompletableFuture removeDispatcherPauseOnAckStatePersistent(String topic);
/**
* Get the dispatcherPauseOnAckStatePersistentEnabled policy for a given topic asynchronously.
*/
CompletableFuture getDispatcherPauseOnAckStatePersistent(String topic, boolean applied);
}