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) 
    
    /**
     * Create topics with a built (via dedicated builder) Wire Protocolobject which encapsulates
     * all needed parameters for topic creation request
     *
     * @returns a mapping between topic name and error code returned from the server
     * 
     * @throws ApiException in case of global error, which means topic creation was not even started
     */
    public Map<String, Short> createTopics(CreateTopicRequestCreateTopicRequestBody createTopicRequest) throws ApiException;
    
    /**
     * Alter topics with a built (via dedicated builder) Wire Protocol request object which encapsulates
     * all needed parameters for topic alteration
     *
     * @returns a mapping between topic name and error code returned from the server
     * 
     * @throws ApiException in case of global error, which means topic alteration was not even started
     */
    public Map<String, Short> alterTopics(AlterTopicRequest alterTopicRequest) throws ApiException;
    
    /**
     * Delete Kafka topics by name
     *
     * @returns a mapping between topic name and error code returned from the server
     *
     * @throws ApiException in case of global error, which means topic deletion was not even started
     */
    public Map <String, Short> deleteTopics(Lsit<String> topics) throws ApiException;
    
    /**
     * List all existing topics in Kafka cluster
     *
     * @returns list of topic names
     *
     * @throws ApiException
     */
    public List<String> listTopics() throws ApiException;
 
    /**
     * Check whether topic with the given name exists
     *
     * @throws ApiException
     */
    public boolean topicExists(String topicName) 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;
    
    /**
     * A generic facility to send Admin request and return response counterpart
     *
     * @param adminRequest AdminRequest message
     * @param <T>          concrete AdminRequest type
     * @return response counterpart
     * @throws ApiException
     */
    private <T extends AbstractAdminResponse> T sendAdminRequest(AbstractAdminRequest<T> adminRequest) throws ApiException;

 
    /**
     * Refreshes cluster metadata cache - list of brokers and controller
     * 
     * @throws ApiException
     */
    private void updateClusterMetadata() throws Exception;

}

...