Class KafkaConnectClient

java.lang.Object
org.sourcelab.kafka.connect.apiclient.KafkaConnectClient

public class KafkaConnectClient extends Object
API Client for interacting with the Kafka-Connect Rest Endpoint. Official Rest Endpoint documentation can be found here: https://docs.confluent.io/current/connect/references/restapi.html
  • Constructor Details

    • KafkaConnectClient

      public KafkaConnectClient(Configuration configuration)
      Default Constructor.
      Parameters:
      configuration - Api Client Configuration.
    • KafkaConnectClient

      public KafkaConnectClient(Configuration configuration, RestClient restClient)
      Constructor for injecting a RestClient implementation. Typically only used in testing.
      Parameters:
      configuration - Api Client Configuration.
      restClient - RestClient implementation to use.
  • Method Details

    • getConnectServerVersion

      public ConnectServerVersion getConnectServerVersion()
      Retrieve details about the Kafka-Connect service itself. https://docs.confluent.io/current/connect/references/restapi.html#get--
      Returns:
      ConnectServerVersion
    • getConnectors

      public Collection<String> getConnectors()
      Get a list of deployed connectors. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors
      Returns:
      Collection of connector names currently deployed.
    • getConnectorsWithExpandedStatus

      public ConnectorsWithExpandedStatus getConnectorsWithExpandedStatus()
      Get a list of deployed connectors, including the status for each connector. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors Requires Kafka-Connect 2.3.0+
      Returns:
      All deployed connectors, and their respective statuses.
    • getConnectorsWithExpandedInfo

      public ConnectorsWithExpandedInfo getConnectorsWithExpandedInfo()
      Get a list of deployed connectors, including the definition for each connector. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors Requires Kafka-Connect 2.3.0+
      Returns:
      All deployed connectors, and their respective definition.
    • getConnectorsWithAllExpandedMetadata

      public ConnectorsWithExpandedMetadata getConnectorsWithAllExpandedMetadata()
      Get a list of deployed connectors, including all metadata available. Currently includes both 'info' and 'status' metadata. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors Requires Kafka-Connect 2.3.0+
      Returns:
      All deployed connectors, and their respective metadata.
    • getConnector

      public ConnectorDefinition getConnector(String connectorName)
      Get information about the connector. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)
      Parameters:
      connectorName - Name of connector.
      Returns:
      Connector details.
    • getConnectorConfig

      public Map<String,String> getConnectorConfig(String connectorName)
      Get the configuration for the connector. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)-config
      Parameters:
      connectorName - Name of connector.
      Returns:
      Configuration for connector.
    • getConnectorStatus

      public ConnectorStatus getConnectorStatus(String connectorName)
      Get the status of specified connector by name. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)-config
      Parameters:
      connectorName - Name of connector.
      Returns:
      Status details of the connector.
    • getConnectorTopics

      public ConnectorTopics getConnectorTopics(String connectorName)
      Get the set of topics that a specific connector is using since the connector was created or since a request to reset its set of active topics was issued. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)-topics Requires Kafka-Connect 2.5.0+
      Parameters:
      connectorName - Name of connector.
      Returns:
      Connector Topics response.
    • resetConnectorTopics

      public boolean resetConnectorTopics(String connectorName)
      Send a request to empty the set of active topics of a connector. https://docs.confluent.io/current/connect/references/restapi.html#put--connectors-(string-name)-topics-reset Requires Kafka-Connect 2.5.0+
      Parameters:
      connectorName - Name of connector.
      Returns:
      true on success.
    • addConnector

      public ConnectorDefinition addConnector(NewConnectorDefinition connectorDefinition)
      Create a new connector, returning the current connector info if successful. https://docs.confluent.io/current/connect/references/restapi.html#post--connectors
      Parameters:
      connectorDefinition - Defines the new connector to deploy
      Returns:
      connector info.
    • updateConnectorConfig

      public ConnectorDefinition updateConnectorConfig(String connectorName, Map<String,String> config)
      Update a connector's configuration. https://docs.confluent.io/current/connect/references/restapi.html#put--connectors-(string-name)-config
      Parameters:
      connectorName - Name of connector to update.
      config - Configuration values to set.
      Returns:
      ConnectorDefinition describing the connectors configuration.
    • restartConnector

      public Boolean restartConnector(String connectorName)
      Restart a connector. https://docs.confluent.io/current/connect/references/restapi.html#post--connectors-(string-name)-restart
      Parameters:
      connectorName - Name of connector to restart.
      Returns:
      Boolean true if success.
    • restartConnector

      public Boolean restartConnector(PostConnectorRestart connectorRestartRequest)
      Restart a connector. https://docs.confluent.io/current/connect/references/restapi.html#post--connectors-(string-name)-restart
      Parameters:
      connectorRestartRequest - Defines the connector restart request.
      Returns:
      Boolean true if success.
    • pauseConnector

      public Boolean pauseConnector(String connectorName)
      Pause a connector. https://docs.confluent.io/current/connect/references/restapi.html#put--connectors-(string-name)-pause
      Parameters:
      connectorName - Name of connector to pause.
      Returns:
      Boolean true if success.
    • resumeConnector

      public Boolean resumeConnector(String connectorName)
      Resume a connector. https://docs.confluent.io/current/connect/references/restapi.html#put--connectors-(string-name)-resume
      Parameters:
      connectorName - Name of connector to resume.
      Returns:
      Boolean true if success.
    • deleteConnector

      public Boolean deleteConnector(String connectorName)
      Delete a connector. https://docs.confluent.io/platform/current/connect/references/restapi.html#delete--connectors-(string-name)-
      Parameters:
      connectorName - Name of connector to resume.
      Returns:
      Boolean true if success.
    • getConnectorTasks

      public Collection<Task> getConnectorTasks(String connectorName)
      Get a list of tasks currently running for the connector. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)-tasks
      Parameters:
      connectorName - Name of connector to retrieve tasks for.
      Returns:
      Collection of details about each task.
    • getConnectorTaskStatus

      public TaskStatus getConnectorTaskStatus(String connectorName, int taskId)
      Get a task’s status. https://docs.confluent.io/current/connect/references/restapi.html#get--connectors-(string-name)-tasks-(int-taskid)-status
      Parameters:
      connectorName - Name of connector to retrieve tasks for.
      taskId - Id of task to get status for.
      Returns:
      Details about task.
    • restartConnectorTask

      public Boolean restartConnectorTask(String connectorName, int taskId)
      Restart an individual task. https://docs.confluent.io/current/connect/references/restapi.html#post--connectors-(string-name)-tasks-(int-taskid)-restart
      Parameters:
      connectorName - Name of connector to restart tasks for.
      taskId - Id of task to restart
      Returns:
      True if a success.
    • getConnectorPlugins

      public Collection<ConnectorPlugin> getConnectorPlugins()
      Return a list of connector plugins installed in the Kafka Connect cluster. https://docs.confluent.io/current/connect/references/restapi.html#get--connector-plugins-
      Returns:
      Collection of available connector plugins.
    • validateConnectorPluginConfig

      public ConnectorPluginConfigValidationResults validateConnectorPluginConfig(ConnectorPluginConfigDefinition configDefinition)
      Validate the provided configuration values against the configuration definition. This API performs per config validation, returns suggested values and error messages during validation. https://docs.confluent.io/current/connect/references/restapi.html#put--connector-plugins-(string-name)-config-validate
      Parameters:
      configDefinition - Defines the configuration to validate.
      Returns:
      Results of the validation.