All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy