Class PersistentTopics

Direct Known Subclasses:
NonPersistentTopics

@Path("/persistent") @Produces("application/json") public class PersistentTopics extends PersistentTopicsBase
  • Constructor Details

    • PersistentTopics

      public PersistentTopics()
  • Method Details

    • getList

      @GET @Path("/{property}/{cluster}/{namespace}") public void getList(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @QueryParam("bundle") String bundle)
    • getPartitionedTopicList

      @GET @Path("/{property}/{cluster}/{namespace}/partitioned") public void getPartitionedTopicList(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace)
    • getPermissionsOnTopic

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/permissions") public void getPermissionsOnTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic)
    • grantPermissionsOnTopic

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/permissions/{role}") public void grantPermissionsOnTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("role") String role, Set<org.apache.pulsar.common.policies.data.AuthAction> actions)
    • revokePermissionsOnTopic

      @DELETE @Path("/{property}/{cluster}/{namespace}/{topic}/permissions/{role}") public void revokePermissionsOnTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("role") String role)
    • createPartitionedTopic

      @PUT @Path("/{property}/{cluster}/{namespace}/{topic}/partitions") public void createPartitionedTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, int numPartitions, @QueryParam("createLocalTopicOnly") @DefaultValue("false") boolean createLocalTopicOnly)
    • createNonPartitionedTopic

      @PUT @Path("/{tenant}/{cluster}/{namespace}/{topic}") public void createNonPartitionedTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • updatePartitionedTopic

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/partitions") public void updatePartitionedTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("updateLocalTopicOnly") @DefaultValue("false") boolean updateLocalTopicOnly, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, @QueryParam("force") @DefaultValue("false") boolean force, int numPartitions)
      It updates number of partitions of an existing non-global partitioned topic. It requires partitioned-topic to be already exist and number of new partitions must be greater than existing number of partitions. Decrementing number of partitions requires deletion of topic which is not supported. Already created partitioned producers and consumers can't see newly created partitions and it requires to recreate them at application so, newly created producers and consumers can connect to newly added partitions as well. Therefore, it can violate partition ordering at producers until all producers are restarted at application.
      Parameters:
      property -
      cluster -
      namespace -
      numPartitions -
    • getPartitionedMetadata

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/partitions") public void getPartitionedMetadata(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, @QueryParam("checkAllowAutoCreation") @DefaultValue("false") boolean checkAllowAutoCreation)
    • deletePartitionedTopic

      @DELETE @Path("/{property}/{cluster}/{namespace}/{topic}/partitions") public void deletePartitionedTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("force") @DefaultValue("false") boolean force, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • unloadTopic

      @PUT @Path("/{property}/{cluster}/{namespace}/{topic}/unload") public void unloadTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • deleteTopic

      @DELETE @Path("/{property}/{cluster}/{namespace}/{topic}") public void deleteTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("force") @DefaultValue("false") boolean force, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getSubscriptions

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/subscriptions") public void getSubscriptions(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getStats

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/stats") public void getStats(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, @QueryParam("getPreciseBacklog") @DefaultValue("false") boolean getPreciseBacklog)
    • getInternalStats

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/internalStats") public void getInternalStats(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, @QueryParam("metadata") @DefaultValue("false") boolean metadata)
    • getManagedLedgerInfo

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/internal-info") public void getManagedLedgerInfo(@PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getPartitionedStats

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/partitioned-stats") public void getPartitionedStats(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("perPartition") @DefaultValue("true") boolean perPartition, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getPartitionedStatsInternal

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/partitioned-internalStats") public void getPartitionedStatsInternal(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • deleteSubscription

      @DELETE @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}") public void deleteSubscription(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("force") @DefaultValue("false") boolean force, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • skipAllMessages

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/skip_all") public void skipAllMessages(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • skipMessages

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}") public void skipMessages(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @PathParam("numMessages") int numMessages, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • expireTopicMessages

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}") public void expireTopicMessages(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @PathParam("expireTimeInSeconds") int expireTimeInSeconds, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • expireTopicMessages

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/expireMessages") public void expireTopicMessages(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, org.apache.pulsar.client.impl.ResetCursorData resetCursorData)
    • expireMessagesForAllSubscriptions

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}") public void expireMessagesForAllSubscriptions(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("expireTimeInSeconds") int expireTimeInSeconds, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • resetCursor

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}") public void resetCursor(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @PathParam("timestamp") long timestamp, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • resetCursorOnPosition

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/resetcursor") public void resetCursorOnPosition(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, org.apache.pulsar.client.impl.ResetCursorData resetCursorData)
    • createSubscription

      @PUT @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subscriptionName}") public void createSubscription(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String topic, @PathParam("subscriptionName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, org.apache.pulsar.client.impl.MessageIdImpl messageId, @QueryParam("replicated") boolean replicated)
    • peekNthMessage

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}") public void peekNthMessage(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @PathParam("messagePosition") int messagePosition, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getMessageByID

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}") public void getMessageByID(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("ledgerId") Long ledgerId, @PathParam("entryId") Long entryId, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getBacklog

      @GET @Path("{property}/{cluster}/{namespace}/{topic}/backlog") public void getBacklog(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • terminate

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/terminate") public void terminate(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • terminatePartitionedTopic

      @POST @Path("/{property}/{cluster}/{namespace}/{topic}/terminate/partitions") public void terminatePartitionedTopic(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • compact

      @PUT @Path("/{property}/{cluster}/{namespace}/{topic}/compaction") public void compact(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • compactionStatus

      @GET @Path("/{property}/{cluster}/{namespace}/{topic}/compaction") public void compactionStatus(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("property") String property, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • triggerOffload

      @PUT @Path("/{tenant}/{cluster}/{namespace}/{topic}/offload") public void triggerOffload(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, org.apache.pulsar.client.impl.MessageIdImpl messageId)
    • offloadStatus

      @GET @Path("/{tenant}/{cluster}/{namespace}/{topic}/offload") public void offloadStatus(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • getLastMessageId

      @GET @Path("/{tenant}/{cluster}/{namespace}/{topic}/lastMessageId") public void getLastMessageId(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)
    • setReplicatedSubscriptionStatus

      @POST @Path("/{tenant}/{cluster}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus") public void setReplicatedSubscriptionStatus(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative, boolean enabled)
    • getReplicatedSubscriptionStatus

      @GET @Path("/{tenant}/{cluster}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus") public void getReplicatedSubscriptionStatus(@Suspended javax.ws.rs.container.AsyncResponse asyncResponse, @PathParam("tenant") String tenant, @PathParam("cluster") String cluster, @PathParam("namespace") String namespace, @PathParam("topic") @Encoded String encodedTopic, @PathParam("subName") String encodedSubName, @QueryParam("authoritative") @DefaultValue("false") boolean authoritative)