2424import org .sourcelab .kafka .connect .apiclient .request .Request ;
2525import org .sourcelab .kafka .connect .apiclient .request .RequestErrorResponse ;
2626import org .sourcelab .kafka .connect .apiclient .request .delete .DeleteConnector ;
27+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectServerVersion ;
2728import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorDefinition ;
2829import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorPlugin ;
2930import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorPluginConfigDefinition ;
3031import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorPluginConfigValidationResults ;
3132import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorStatus ;
33+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorsWithExpandedMetadata ;
34+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorsWithExpandedInfo ;
35+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorsWithExpandedStatus ;
3236import org .sourcelab .kafka .connect .apiclient .request .dto .NewConnectorDefinition ;
3337import org .sourcelab .kafka .connect .apiclient .request .dto .Task ;
3438import org .sourcelab .kafka .connect .apiclient .request .dto .TaskStatus ;
39+ import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectServerVersion ;
3540import org .sourcelab .kafka .connect .apiclient .request .get .GetConnector ;
3641import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorConfig ;
3742import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorPlugins ;
3843import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorStatus ;
3944import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorTaskStatus ;
4045import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorTasks ;
4146import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectors ;
47+ import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorsExpandAllDetails ;
48+ import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorsExpandInfo ;
49+ import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorsExpandStatus ;
4250import org .sourcelab .kafka .connect .apiclient .request .post .PostConnector ;
4351import org .sourcelab .kafka .connect .apiclient .request .post .PostConnectorRestart ;
4452import org .sourcelab .kafka .connect .apiclient .request .post .PostConnectorTaskRestart ;
5967/**
6068 * API Client for interacting with the Kafka-Connect Rest Endpoint.
6169 * Official Rest Endpoint documentation can be found here:
62- * https://docs.confluent.io/current/connect/restapi.html
70+ * https://docs.confluent.io/current/connect/references/ restapi.html
6371 */
6472public class KafkaConnectClient {
6573 private static final Logger logger = LoggerFactory .getLogger (KafkaConnectClient .class );
@@ -92,7 +100,7 @@ public KafkaConnectClient(final Configuration configuration) {
92100 /**
93101 * Constructor for injecting a RestClient implementation.
94102 * Typically only used in testing.
95- * @param configuration Pardot Api Configuration.
103+ * @param configuration Api Client Configuration.
96104 * @param restClient RestClient implementation to use.
97105 */
98106 public KafkaConnectClient (final Configuration configuration , final RestClient restClient ) {
@@ -101,18 +109,64 @@ public KafkaConnectClient(final Configuration configuration, final RestClient re
101109 }
102110
103111 /**
104- * Get a list of active connectors.
105- * https://docs.confluent.io/current/connect/restapi.html#get--connectors
112+ * Retrieve details about the Kafka-Connect service itself.
113+ * @return ConnectServerVersion
114+ */
115+ public ConnectServerVersion getConnectServerVersion () {
116+ return submitRequest (new GetConnectServerVersion ());
117+ }
118+
119+ /**
120+ * Get a list of deployed connectors.
121+ * https://docs.confluent.io/current/connect/references/restapi.html#get--connectors
106122 *
107123 * @return Collection of connector names currently deployed.
108124 */
109125 public Collection <String > getConnectors () {
110126 return submitRequest (new GetConnectors ());
111127 }
112128
129+ /**
130+ * Get a list of deployed connectors, including the status for each connector.
131+ * https://docs.confluent.io/current/connect/references/restapi.html#get--connectors
132+ *
133+ * Requires Kafka-Connect 2.3.0+
134+ *
135+ * @return All deployed connectors, and their respective statuses.
136+ */
137+ public ConnectorsWithExpandedStatus getConnectorsWithExpandedStatus () {
138+ return submitRequest (new GetConnectorsExpandStatus ());
139+ }
140+
141+ /**
142+ * Get a list of deployed connectors, including the definition for each connector.
143+ * https://docs.confluent.io/current/connect/references/restapi.html#get--connectors
144+ *
145+ * Requires Kafka-Connect 2.3.0+
146+ *
147+ * @return All deployed connectors, and their respective definition.
148+ */
149+ public ConnectorsWithExpandedInfo getConnectorsWithExpandedInfo () {
150+ return submitRequest (new GetConnectorsExpandInfo ());
151+ }
152+
153+ /**
154+ * Get a list of deployed connectors, including all metadata available.
155+ * Currently includes both 'info' {@see getConnectorsWithExpandedInfo} and 'status' {@see getConnectorsWithExpandedStatus}
156+ * metadata.
157+ * https://docs.confluent.io/current/connect/references/restapi.html#get--connectors
158+ *
159+ * Requires Kafka-Connect 2.3.0+
160+ *
161+ * @return All deployed connectors, and their respective metadata.
162+ */
163+ public ConnectorsWithExpandedMetadata getConnectorsWithAllExpandedMetadata () {
164+ return submitRequest (new GetConnectorsExpandAllDetails ());
165+ }
166+
113167 /**
114168 * Get information about the connector.
115- * https://docs.confluent.io/current/connect/restapi.html#get--connectors-(string-name)
169+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connectors-(string-name)
116170 * @param connectorName Name of connector.
117171 * @return Connector details.
118172 */
@@ -122,7 +176,7 @@ public ConnectorDefinition getConnector(final String connectorName) {
122176
123177 /**
124178 * Get the configuration for the connector.
125- * https://docs.confluent.io/current/connect/restapi.html#get--connectors-(string-name)-config
179+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connectors-(string-name)-config
126180 * @param connectorName Name of connector.
127181 * @return Configuration for connector.
128182 */
@@ -132,7 +186,7 @@ public Map<String, String> getConnectorConfig(final String connectorName) {
132186
133187 /**
134188 * Get the status of specified connector by name.
135- * https://docs.confluent.io/current/connect/restapi.html#get--connectors-(string-name)-config
189+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connectors-(string-name)-config
136190 *
137191 * @param connectorName Name of connector.
138192 * @return Status details of the connector.
@@ -143,7 +197,7 @@ public ConnectorStatus getConnectorStatus(final String connectorName) {
143197
144198 /**
145199 * Create a new connector, returning the current connector info if successful.
146- * https://docs.confluent.io/current/connect/restapi.html#post--connectors
200+ * https://docs.confluent.io/current/connect/references/ restapi.html#post--connectors
147201 *
148202 * @param connectorDefinition Defines the new connector to deploy
149203 * @return connector info.
@@ -154,7 +208,7 @@ public ConnectorDefinition addConnector(final NewConnectorDefinition connectorDe
154208
155209 /**
156210 * Update a connector's configuration.
157- * https://docs.confluent.io/current/connect/restapi.html#put--connectors-(string-name)-config
211+ * https://docs.confluent.io/current/connect/references/ restapi.html#put--connectors-(string-name)-config
158212 *
159213 * @param connectorName Name of connector to update.
160214 * @param config Configuration values to set.
@@ -166,7 +220,7 @@ public ConnectorDefinition updateConnectorConfig(final String connectorName, fin
166220
167221 /**
168222 * Restart a connector.
169- * https://docs.confluent.io/current/connect/restapi.html#post--connectors-(string-name)-restart
223+ * https://docs.confluent.io/current/connect/references/ restapi.html#post--connectors-(string-name)-restart
170224 *
171225 * @param connectorName Name of connector to restart.
172226 * @return Boolean true if success.
@@ -177,7 +231,7 @@ public Boolean restartConnector(final String connectorName) {
177231
178232 /**
179233 * Pause a connector.
180- * https://docs.confluent.io/current/connect/restapi.html#put--connectors-(string-name)-pause
234+ * https://docs.confluent.io/current/connect/references/ restapi.html#put--connectors-(string-name)-pause
181235 *
182236 * @param connectorName Name of connector to pause.
183237 * @return Boolean true if success.
@@ -188,7 +242,7 @@ public Boolean pauseConnector(final String connectorName) {
188242
189243 /**
190244 * Resume a connector.
191- * https://docs.confluent.io/current/connect/restapi.html#put--connectors-(string-name)-resume
245+ * https://docs.confluent.io/current/connect/references/ restapi.html#put--connectors-(string-name)-resume
192246 *
193247 * @param connectorName Name of connector to resume.
194248 * @return Boolean true if success.
@@ -199,7 +253,7 @@ public Boolean resumeConnector(final String connectorName) {
199253
200254 /**
201255 * Resume a connector.
202- * https://docs.confluent.io/current/connect/restapi.html#put--connectors-(string-name)-resume
256+ * https://docs.confluent.io/current/connect/references/ restapi.html#put--connectors-(string-name)-resume
203257 *
204258 * @param connectorName Name of connector to resume.
205259 * @return Boolean true if success.
@@ -210,7 +264,7 @@ public Boolean deleteConnector(final String connectorName) {
210264
211265 /**
212266 * Get a list of tasks currently running for the connector.
213- * https://docs.confluent.io/current/connect/restapi.html#get--connectors-(string-name)-tasks
267+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connectors-(string-name)-tasks
214268 *
215269 * @param connectorName Name of connector to retrieve tasks for.
216270 * @return Collection of details about each task.
@@ -221,7 +275,7 @@ public Collection<Task> getConnectorTasks(final String connectorName) {
221275
222276 /**
223277 * Get a task’s status.
224- * https://docs.confluent.io/current/connect/restapi.html#get--connectors-(string-name)-tasks-(int-taskid)-status
278+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connectors-(string-name)-tasks-(int-taskid)-status
225279 *
226280 * @param connectorName Name of connector to retrieve tasks for.
227281 * @param taskId Id of task to get status for.
@@ -233,7 +287,7 @@ public TaskStatus getConnectorTaskStatus(final String connectorName, final int t
233287
234288 /**
235289 * Restart an individual task.
236- * https://docs.confluent.io/current/connect/restapi.html#post--connectors-(string-name)-tasks-(int-taskid)-restart
290+ * https://docs.confluent.io/current/connect/references/ restapi.html#post--connectors-(string-name)-tasks-(int-taskid)-restart
237291 *
238292 * @param connectorName Name of connector to restart tasks for.
239293 * @param taskId Id of task to restart
@@ -245,7 +299,7 @@ public Boolean restartConnectorTask(final String connectorName, final int taskId
245299
246300 /**
247301 * Return a list of connector plugins installed in the Kafka Connect cluster.
248- * https://docs.confluent.io/current/connect/restapi.html#get--connector-plugins-
302+ * https://docs.confluent.io/current/connect/references/ restapi.html#get--connector-plugins-
249303 *
250304 * @return Collection of available connector plugins.
251305 */
@@ -256,7 +310,7 @@ public Collection<ConnectorPlugin> getConnectorPlugins() {
256310 /**
257311 * Validate the provided configuration values against the configuration definition. This API performs per config
258312 * validation, returns suggested values and error messages during validation.
259- * https://docs.confluent.io/current/connect/restapi.html#put--connector-plugins-(string-name)-config-validate
313+ * https://docs.confluent.io/current/connect/references/ restapi.html#put--connector-plugins-(string-name)-config-validate
260314 *
261315 * @param configDefinition Defines the configuration to validate.
262316 * @return Results of the validation.
0 commit comments