Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleAdminClient API
public class AdminClient {
    
    /**
     * A client is instantiated by providing a set of key-value pairs as configuration. Most
     * of the settings will be related to NetworkClient
     *
     * @param properties settings related to Network client and at least one broker from KafkaCluster to connect to
     */
    public AdminClient(Properties properties) 
    
    /**
     * Initiates topics creation.  
     * This is an asynchronous call, it returns immediately once the server has accepted request and stored respective data in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that metadata about newly created topics was propagated
     * to all brokers.
     *
     * @param createTopicRequestBody holder (built by means of respective Builder) of all required arguments to create topics
     * @returns java.util.concurrent.Future which holds topics creation result - a map topic-name - error code. 
     * 
     * @throws ApiException in case of global error, which means topic creation was not even started
     */
    public Future<Map<String, Errors>> createTopics(CreateTopicRequestBody createTopicRequestBody) throws ApiException;
    
    /**
     * Initiates topics alteration.  
     * This is an asynchronous call, it returns immediately once the server has accepted request and stored/changed respective data in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that updated metadata about altered topics was propagated
     * to all brokers.
     *
     * @param alterTopicRequestBody holder (built by means of respective Builder) of all required arguments to alter topics
     * @returns java.util.concurrent.Future which holds topics alteration result - a map topic-name - error code. 
     * 
     * @throws ApiException in case of global error, which means topic creation was not even started
     */
    public Future<Map<String, Errors>> alterTopics(AlterTopicRequestBody alterTopicRequestBody) throws ApiException;
    
    /**
     * Initiates topic alterationdeletion.
     * This is an asynchronous call, it returns immediately once server has accepted request and marked requested topics for deletion in zookeeper.
     * To simulate a simple blocking call Future.get can be called. This will ensure that metadata with updated topic list was propagated to 
     * all brokers.
     *
     * @param topics topic names to be deleted
     * @returns java.util.concurrent.Future which holds topics
     *
     * @throws ApiException in case of global error, which means topic deletion was not even started
     */
    public Future<Map<String, Errors>> deleteTopics(List<String> topics) throws ApiException;
    
    /**
     * ListLists all existingavailable topics in Kafka cluster.
     * Topic is considered available if all brokers in cluster have received and cached metadata about it
     *
     * @returns list of topic names
     *
     * @throws ApiException
     */
    public List<String> listTopics() throws ApiException;
 
    /**
     * Check whether topic with the given name exists
     *
     * @param topic name to be checked
     * @returns true if all brokers in cluster have received and cached metadata about it
     
     * @throws ApiException
     */
    public boolean topicExists(String topicNametopic) throws ApiException;
    
    /**
     * Request replication information about Kafka topics
     * 
     * @returns a mapping between topic name and topic description
     * @throws ApiException in case of global error, which means topic description cannot be fetched for all topics
     */
    public Map<String, DescribeTopicOutput> describeTopics(List<String> topicNames) throws ApiException;
    
    /**
     * Initiate long-running reassign partitions procedure
     *
     * @param partitionsReassignment manual partitions assignment string (according to ReassignPartitionsCommand)
     * @return future of the reassignment result which is completed once server-side partitions reassignment has succeeded or
     * an error occurred so that partitions reassignment cannot be started
     * @throws ApiException in case partition reassignment wasn't initiated on server
     */
    public Future<ReassignPartitionsResponse> reassignPartitions(String partitionsReassignment) throws ApiException;

    /**
     * Check the interim status of the partitions reassignment
     *
     * @param partitionsReassignment manual partitions assignment string (according to ReassignPartitionsCommand)
     * @return partition to reassignment result code (completed, in-progress, failed)
     * @throws ApiException in case reassignment verification wasn't initiated on server
     */
    public Map<TopicPartition, Short> verifyReassignPartitions(String partitionsReassignment) throws ApiException;
    
    /**
     * Initiate long-running preferred replica leader election procedure
     *
     * @param partitions serialized partitions for which preferred replica leader election will be started
     *                   (according to PreferredReplicaLeaderElectionCommand)
     * @return future of the election result which is completed once server-side preferred replica is elected for provided partitions or
     * an error has occurred
     * @throws ApiException in case preferred replica procedure wasn't initiated on server
     */
    public Future<PreferredReplicaLeaderElectionResponse> preferredReplicaLeaderElection(String partitions) throws ApiException;

    /**
     * Check the interim status of the preferred replica leader election
     *
     * @param partitions for which preferred replica leader election was started (according to PreferredReplicaLeaderElectionCommand)
     * @return partition to reassignment result code (completed, in-progress, failed)
     * @throws ApiException in case procedure verification wasn't started on server
     */
    public VerifyPreferredReplicaLeaderElectionResponse verifyPreferredReplicaLeaderElection(String partitions)
            throws ApiException;
}

...