This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 1806dcece5f camel-dhis2 - fix wrong uri syntax
1806dcece5f is described below

commit 1806dcece5f687848a526a373bfbd13c13a1a839
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Jun 2 09:09:51 2023 +0200

    camel-dhis2 - fix wrong uri syntax
---
 .../org/apache/camel/catalog/components.properties |    1 +
 .../apache/camel/catalog/components}/dhis2.json    |    2 +-
 .../component/dhis2/Dhis2EndpointUriFactory.java   |    2 +-
 .../org/apache/camel/component/dhis2/dhis2.json    |    2 +-
 .../camel/component/dhis2/Dhis2Endpoint.java       |    3 +-
 .../org/apache/camel/main/components.properties    |    1 +
 .../component/ComponentsBuilderFactory.java        |   14 +
 .../dsl/Dhis2ComponentBuilderFactory.java          |  231 ++++
 .../src/generated/resources/metadata.json          |   23 +
 .../builder/endpoint/EndpointBuilderFactory.java   |    1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |    1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |   55 +
 .../endpoint/dsl/Dhis2EndpointBuilderFactory.java  | 1153 ++++++++++++++++++++
 .../camel-component-known-dependencies.properties  |    1 +
 .../apache/camel/maven/packaging/MojoHelper.java   |    2 +
 15 files changed, 1487 insertions(+), 5 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 0bda77cf51f..eff09df31ba 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -73,6 +73,7 @@ debezium-mysql
 debezium-oracle
 debezium-postgres
 debezium-sqlserver
+dhis2
 digitalocean
 direct
 disruptor
diff --git 
a/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/dhis2.json
similarity index 99%
copy from 
components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
copy to 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/dhis2.json
index 9dfcb1589b1..9aa214978e9 100644
--- 
a/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/dhis2.json
@@ -14,7 +14,7 @@
     "version": "4.0.0-SNAPSHOT",
     "scheme": "dhis2",
     "extendsScheme": "",
-    "syntax": "dhis2:methodName",
+    "syntax": "dhis2:apiName\/methodName",
     "async": false,
     "api": true,
     "apiSyntax": "apiName\/methodName",
diff --git 
a/components/camel-dhis2/camel-dhis2-component/src/generated/java/org/apache/camel/component/dhis2/Dhis2EndpointUriFactory.java
 
b/components/camel-dhis2/camel-dhis2-component/src/generated/java/org/apache/camel/component/dhis2/Dhis2EndpointUriFactory.java
index 4a7b44074cd..5070d971ce7 100644
--- 
a/components/camel-dhis2/camel-dhis2-component/src/generated/java/org/apache/camel/component/dhis2/Dhis2EndpointUriFactory.java
+++ 
b/components/camel-dhis2/camel-dhis2-component/src/generated/java/org/apache/camel/component/dhis2/Dhis2EndpointUriFactory.java
@@ -15,7 +15,7 @@ import org.apache.camel.spi.EndpointUriFactory;
  */
 public class Dhis2EndpointUriFactory extends 
org.apache.camel.support.component.EndpointUriFactorySupport implements 
EndpointUriFactory {
 
-    private static final String BASE = ":methodName";
+    private static final String BASE = ":apiName/methodName";
 
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
diff --git 
a/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
 
b/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
index 9dfcb1589b1..9aa214978e9 100644
--- 
a/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
+++ 
b/components/camel-dhis2/camel-dhis2-component/src/generated/resources/org/apache/camel/component/dhis2/dhis2.json
@@ -14,7 +14,7 @@
     "version": "4.0.0-SNAPSHOT",
     "scheme": "dhis2",
     "extendsScheme": "",
-    "syntax": "dhis2:methodName",
+    "syntax": "dhis2:apiName\/methodName",
     "async": false,
     "api": true,
     "apiSyntax": "apiName\/methodName",
diff --git 
a/components/camel-dhis2/camel-dhis2-component/src/main/java/org/apache/camel/component/dhis2/Dhis2Endpoint.java
 
b/components/camel-dhis2/camel-dhis2-component/src/main/java/org/apache/camel/component/dhis2/Dhis2Endpoint.java
index 7d8a8cbfddd..af8ec5f031f 100644
--- 
a/components/camel-dhis2/camel-dhis2-component/src/main/java/org/apache/camel/component/dhis2/Dhis2Endpoint.java
+++ 
b/components/camel-dhis2/camel-dhis2-component/src/main/java/org/apache/camel/component/dhis2/Dhis2Endpoint.java
@@ -40,9 +40,8 @@ import org.hisp.dhis.integration.sdk.api.Dhis2Client;
 
 /**
  * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 Web 
API.
- * <p>
  */
-@UriEndpoint(firstVersion = "4.0.0", scheme = "dhis2", title = "DHIS2", syntax 
= "dhis2:methodName",
+@UriEndpoint(firstVersion = "4.0.0", scheme = "dhis2", title = "DHIS2", syntax 
= "dhis2:apiName/methodName",
              apiSyntax = "apiName/methodName", category = { Category.API })
 public class Dhis2Endpoint extends AbstractApiEndpoint<Dhis2ApiName, 
Dhis2Configuration> {
 
diff --git 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 0bda77cf51f..eff09df31ba 100644
--- 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -73,6 +73,7 @@ debezium-mysql
 debezium-oracle
 debezium-postgres
 debezium-sqlserver
+dhis2
 digitalocean
 direct
 disruptor
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index d6ec55bf575..4dee78746e5 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -1040,6 +1040,20 @@ public interface ComponentsBuilderFactory {
     static 
org.apache.camel.builder.component.dsl.DebeziumSqlserverComponentBuilderFactory.DebeziumSqlserverComponentBuilder
 debeziumSqlserver() {
         return 
org.apache.camel.builder.component.dsl.DebeziumSqlserverComponentBuilderFactory.debeziumSqlserver();
     }
+    /**
+     * DHIS2 (camel-dhis2)
+     * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 
Web
+     * API.
+     * 
+     * Category: api
+     * Since: 4.0
+     * Maven coordinates: org.apache.camel:camel-dhis2
+     * 
+     * @return the dsl builder
+     */
+    static 
org.apache.camel.builder.component.dsl.Dhis2ComponentBuilderFactory.Dhis2ComponentBuilder
 dhis2() {
+        return 
org.apache.camel.builder.component.dsl.Dhis2ComponentBuilderFactory.dhis2();
+    }
     /**
      * DigitalOcean (camel-digitalocean)
      * Manage Droplets and resources within the DigitalOcean cloud.
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Dhis2ComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Dhis2ComponentBuilderFactory.java
new file mode 100644
index 00000000000..187ff3ec5a5
--- /dev/null
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Dhis2ComponentBuilderFactory.java
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.dhis2.Dhis2Component;
+
+/**
+ * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 Web
+ * API.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface Dhis2ComponentBuilderFactory {
+
+    /**
+     * DHIS2 (camel-dhis2)
+     * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 
Web
+     * API.
+     * 
+     * Category: api
+     * Since: 4.0
+     * Maven coordinates: org.apache.camel:camel-dhis2
+     * 
+     * @return the dsl builder
+     */
+    static Dhis2ComponentBuilder dhis2() {
+        return new Dhis2ComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the DHIS2 component.
+     */
+    interface Dhis2ComponentBuilder extends ComponentBuilder<Dhis2Component> {
+        /**
+         * DHIS2 server base API URL (e.g.,
+         * https://play.dhis2.org/2.39.1.1/api).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param baseApiUrl the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder baseApiUrl(java.lang.String baseApiUrl) {
+            doSetProperty("baseApiUrl", baseApiUrl);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error Handler,
+         * which mean any exceptions occurred while the consumer is trying to
+         * pickup incoming messages, or the likes, will now be processed as a
+         * message and handled by the routing Error Handler. By default the
+         * consumer will use the org.apache.camel.spi.ExceptionHandler to deal
+         * with exceptions, that will be logged at WARN or ERROR level and
+         * ignored.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param bridgeErrorHandler the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether autowiring is enabled. This is used for automatic autowiring
+         * options (the option must be marked as autowired) by looking up in 
the
+         * registry to find if there is a single instance of matching type,
+         * which then gets configured on the component. This can be used for
+         * automatic configuring JDBC data sources, JMS connection factories,
+         * AWS Clients, etc.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder autowiredEnabled(boolean 
autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder client(
+                org.hisp.dhis.integration.sdk.api.Dhis2Client client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * To use the shared configuration.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.dhis2.Dhis2Configuration&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param configuration the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder configuration(
+                org.apache.camel.component.dhis2.Dhis2Configuration 
configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+        /**
+         * DHIS2 account password for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param password the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder password(java.lang.String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * DHIS2 account username for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param username the value to set
+         * @return the dsl builder
+         */
+        default Dhis2ComponentBuilder username(java.lang.String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+    }
+
+    class Dhis2ComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<Dhis2Component>
+            implements
+                Dhis2ComponentBuilder {
+        @Override
+        protected Dhis2Component buildConcreteComponent() {
+            return new Dhis2Component();
+        }
+        private org.apache.camel.component.dhis2.Dhis2Configuration 
getOrCreateConfiguration(
+                org.apache.camel.component.dhis2.Dhis2Component component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new 
org.apache.camel.component.dhis2.Dhis2Configuration());
+            }
+            return component.getConfiguration();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "baseApiUrl": getOrCreateConfiguration((Dhis2Component) 
component).setBaseApiUrl((java.lang.String) value); return true;
+            case "bridgeErrorHandler": ((Dhis2Component) 
component).setBridgeErrorHandler((boolean) value); return true;
+            case "lazyStartProducer": ((Dhis2Component) 
component).setLazyStartProducer((boolean) value); return true;
+            case "autowiredEnabled": ((Dhis2Component) 
component).setAutowiredEnabled((boolean) value); return true;
+            case "client": getOrCreateConfiguration((Dhis2Component) 
component).setClient((org.hisp.dhis.integration.sdk.api.Dhis2Client) value); 
return true;
+            case "configuration": ((Dhis2Component) 
component).setConfiguration((org.apache.camel.component.dhis2.Dhis2Configuration)
 value); return true;
+            case "password": getOrCreateConfiguration((Dhis2Component) 
component).setPassword((java.lang.String) value); return true;
+            case "username": getOrCreateConfiguration((Dhis2Component) 
component).setUsername((java.lang.String) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/dsl/camel-componentdsl/src/generated/resources/metadata.json 
b/dsl/camel-componentdsl/src/generated/resources/metadata.json
index 83a855bb346..73e25379c8b 100644
--- a/dsl/camel-componentdsl/src/generated/resources/metadata.json
+++ b/dsl/camel-componentdsl/src/generated/resources/metadata.json
@@ -1661,6 +1661,29 @@
     "producerOnly": false,
     "lenientProperties": false
   },
+  "Dhis2ComponentBuilderFactory": {
+    "kind": "component",
+    "name": "dhis2",
+    "title": "DHIS2",
+    "description": "Leverages the DHIS2 Java SDK to integrate Apache Camel 
with the DHIS2 Web API.",
+    "deprecated": false,
+    "firstVersion": "4.0.0",
+    "label": "api",
+    "javaType": "org.apache.camel.component.dhis2.Dhis2Component",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dhis2",
+    "version": "4.0.0-SNAPSHOT",
+    "scheme": "dhis2",
+    "extendsScheme": "",
+    "syntax": "dhis2:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
   "DigitaloceanComponentBuilderFactory": {
     "kind": "component",
     "name": "digitalocean",
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 96a5eb6c2d7..14cf0170105 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -82,6 +82,7 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.DebeziumOracleEndpointBuilderFactory.DebeziumOracleBuilders,
             
org.apache.camel.builder.endpoint.dsl.DebeziumPostgresEndpointBuilderFactory.DebeziumPostgresBuilders,
             
org.apache.camel.builder.endpoint.dsl.DebeziumSqlserverEndpointBuilderFactory.DebeziumSqlserverBuilders,
+            
org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory.Dhis2Builders,
             
org.apache.camel.builder.endpoint.dsl.DigitalOceanEndpointBuilderFactory.DigitalOceanBuilders,
             
org.apache.camel.builder.endpoint.dsl.DigitalSignatureEndpointBuilderFactory.DigitalSignatureBuilders,
             
org.apache.camel.builder.endpoint.dsl.DirectEndpointBuilderFactory.DirectBuilders,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 7f0731519f4..7a028a67a65 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -79,6 +79,7 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.DebeziumOracleEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DebeziumPostgresEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DebeziumSqlserverEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DigitalOceanEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.DigitalSignatureEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DirectEndpointBuilderFactory,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index ca93a76df4a..d45086899e7 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -3414,6 +3414,61 @@ public class StaticEndpointBuilders {
             String path) {
         return 
org.apache.camel.builder.endpoint.dsl.DebeziumSqlserverEndpointBuilderFactory.endpointBuilder(componentName,
 path);
     }
+    /**
+     * DHIS2 (camel-dhis2)
+     * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 
Web
+     * API.
+     * 
+     * Category: api
+     * Since: 4.0
+     * Maven coordinates: org.apache.camel:camel-dhis2
+     * 
+     * Syntax: <code>dhis2:apiName/methodName</code>
+     * 
+     * Path parameter: apiName (required)
+     * API operation (e.g., get)
+     * There are 5 enums and the value can be one of: POST, RESOURCE_TABLES,
+     * GET, DELETE, PUT
+     * 
+     * Path parameter: methodName (required)
+     * Subject of the API operation (e.g., resource)
+     * 
+     * @param path apiName/methodName
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory.Dhis2EndpointBuilder
 dhis2(
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory.endpointBuilder("dhis2",
 path);
+    }
+    /**
+     * DHIS2 (camel-dhis2)
+     * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 
Web
+     * API.
+     * 
+     * Category: api
+     * Since: 4.0
+     * Maven coordinates: org.apache.camel:camel-dhis2
+     * 
+     * Syntax: <code>dhis2:apiName/methodName</code>
+     * 
+     * Path parameter: apiName (required)
+     * API operation (e.g., get)
+     * There are 5 enums and the value can be one of: POST, RESOURCE_TABLES,
+     * GET, DELETE, PUT
+     * 
+     * Path parameter: methodName (required)
+     * Subject of the API operation (e.g., resource)
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path apiName/methodName
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory.Dhis2EndpointBuilder
 dhis2(
+            String componentName,
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.Dhis2EndpointBuilderFactory.endpointBuilder(componentName,
 path);
+    }
     /**
      * DigitalOcean (camel-digitalocean)
      * Manage Droplets and resources within the DigitalOcean cloud.
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Dhis2EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Dhis2EndpointBuilderFactory.java
new file mode 100644
index 00000000000..321b1525bb6
--- /dev/null
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Dhis2EndpointBuilderFactory.java
@@ -0,0 +1,1153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.Map;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Leverages the DHIS2 Java SDK to integrate Apache Camel with the DHIS2 Web
+ * API.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface Dhis2EndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint consumers for the DHIS2 component.
+     */
+    public interface Dhis2EndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default AdvancedDhis2EndpointConsumerBuilder advanced() {
+            return (AdvancedDhis2EndpointConsumerBuilder) this;
+        }
+        /**
+         * DHIS2 server base API URL (e.g.,
+         * https://play.dhis2.org/2.39.1.1/api).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param baseApiUrl the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder baseApiUrl(String baseApiUrl) {
+            doSetProperty("baseApiUrl", baseApiUrl);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param inBody the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder inBody(String inBody) {
+            doSetProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * If the polling consumer did not poll any files, you can enable this
+         * option to send an empty message (no body) instead.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param sendEmptyMessageWhenIdle the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder sendEmptyMessageWhenIdle(
+                boolean sendEmptyMessageWhenIdle) {
+            doSetProperty("sendEmptyMessageWhenIdle", 
sendEmptyMessageWhenIdle);
+            return this;
+        }
+        /**
+         * If the polling consumer did not poll any files, you can enable this
+         * option to send an empty message (no body) instead.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param sendEmptyMessageWhenIdle the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder sendEmptyMessageWhenIdle(
+                String sendEmptyMessageWhenIdle) {
+            doSetProperty("sendEmptyMessageWhenIdle", 
sendEmptyMessageWhenIdle);
+            return this;
+        }
+        /**
+         * The number of subsequent error polls (failed due some error) that
+         * should happen before the backoffMultipler should kick-in.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffErrorThreshold the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffErrorThreshold(
+                int backoffErrorThreshold) {
+            doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
+            return this;
+        }
+        /**
+         * The number of subsequent error polls (failed due some error) that
+         * should happen before the backoffMultipler should kick-in.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffErrorThreshold the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffErrorThreshold(
+                String backoffErrorThreshold) {
+            doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
+            return this;
+        }
+        /**
+         * The number of subsequent idle polls that should happen before the
+         * backoffMultipler should kick-in.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffIdleThreshold the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffIdleThreshold(
+                int backoffIdleThreshold) {
+            doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
+            return this;
+        }
+        /**
+         * The number of subsequent idle polls that should happen before the
+         * backoffMultipler should kick-in.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffIdleThreshold the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffIdleThreshold(
+                String backoffIdleThreshold) {
+            doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
+            return this;
+        }
+        /**
+         * To let the scheduled polling consumer backoff if there has been a
+         * number of subsequent idles/errors in a row. The multiplier is then
+         * the number of polls that will be skipped before the next actual
+         * attempt is happening again. When this option is in use then
+         * backoffIdleThreshold and/or backoffErrorThreshold must also be
+         * configured.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffMultiplier the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffMultiplier(
+                int backoffMultiplier) {
+            doSetProperty("backoffMultiplier", backoffMultiplier);
+            return this;
+        }
+        /**
+         * To let the scheduled polling consumer backoff if there has been a
+         * number of subsequent idles/errors in a row. The multiplier is then
+         * the number of polls that will be skipped before the next actual
+         * attempt is happening again. When this option is in use then
+         * backoffIdleThreshold and/or backoffErrorThreshold must also be
+         * configured.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param backoffMultiplier the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder backoffMultiplier(
+                String backoffMultiplier) {
+            doSetProperty("backoffMultiplier", backoffMultiplier);
+            return this;
+        }
+        /**
+         * Milliseconds before the next poll.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 500
+         * Group: scheduler
+         * 
+         * @param delay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder delay(long delay) {
+            doSetProperty("delay", delay);
+            return this;
+        }
+        /**
+         * Milliseconds before the next poll.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 500
+         * Group: scheduler
+         * 
+         * @param delay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder delay(String delay) {
+            doSetProperty("delay", delay);
+            return this;
+        }
+        /**
+         * If greedy is enabled, then the ScheduledPollConsumer will run
+         * immediately again, if the previous run polled 1 or more messages.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: scheduler
+         * 
+         * @param greedy the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder greedy(boolean greedy) {
+            doSetProperty("greedy", greedy);
+            return this;
+        }
+        /**
+         * If greedy is enabled, then the ScheduledPollConsumer will run
+         * immediately again, if the previous run polled 1 or more messages.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: scheduler
+         * 
+         * @param greedy the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder greedy(String greedy) {
+            doSetProperty("greedy", greedy);
+            return this;
+        }
+        /**
+         * Milliseconds before the first poll starts.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 1000
+         * Group: scheduler
+         * 
+         * @param initialDelay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder initialDelay(long initialDelay) {
+            doSetProperty("initialDelay", initialDelay);
+            return this;
+        }
+        /**
+         * Milliseconds before the first poll starts.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 1000
+         * Group: scheduler
+         * 
+         * @param initialDelay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder initialDelay(String initialDelay) 
{
+            doSetProperty("initialDelay", initialDelay);
+            return this;
+        }
+        /**
+         * Specifies a maximum limit of number of fires. So if you set it to 1,
+         * the scheduler will only fire once. If you set it to 5, it will only
+         * fire five times. A value of zero or negative means fire forever.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 0
+         * Group: scheduler
+         * 
+         * @param repeatCount the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder repeatCount(long repeatCount) {
+            doSetProperty("repeatCount", repeatCount);
+            return this;
+        }
+        /**
+         * Specifies a maximum limit of number of fires. So if you set it to 1,
+         * the scheduler will only fire once. If you set it to 5, it will only
+         * fire five times. A value of zero or negative means fire forever.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 0
+         * Group: scheduler
+         * 
+         * @param repeatCount the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder repeatCount(String repeatCount) {
+            doSetProperty("repeatCount", repeatCount);
+            return this;
+        }
+        /**
+         * The consumer logs a start/complete log line when it polls. This
+         * option allows you to configure the logging level for that.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.LoggingLevel&lt;/code&gt; type.
+         * 
+         * Default: TRACE
+         * Group: scheduler
+         * 
+         * @param runLoggingLevel the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder runLoggingLevel(
+                org.apache.camel.LoggingLevel runLoggingLevel) {
+            doSetProperty("runLoggingLevel", runLoggingLevel);
+            return this;
+        }
+        /**
+         * The consumer logs a start/complete log line when it polls. This
+         * option allows you to configure the logging level for that.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;org.apache.camel.LoggingLevel&lt;/code&gt; type.
+         * 
+         * Default: TRACE
+         * Group: scheduler
+         * 
+         * @param runLoggingLevel the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder runLoggingLevel(
+                String runLoggingLevel) {
+            doSetProperty("runLoggingLevel", runLoggingLevel);
+            return this;
+        }
+        /**
+         * Allows for configuring a custom/shared thread pool to use for the
+         * consumer. By default each consumer has its own single threaded 
thread
+         * pool.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;java.util.concurrent.ScheduledExecutorService&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param scheduledExecutorService the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder scheduledExecutorService(
+                ScheduledExecutorService scheduledExecutorService) {
+            doSetProperty("scheduledExecutorService", 
scheduledExecutorService);
+            return this;
+        }
+        /**
+         * Allows for configuring a custom/shared thread pool to use for the
+         * consumer. By default each consumer has its own single threaded 
thread
+         * pool.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;java.util.concurrent.ScheduledExecutorService&lt;/code&gt; type.
+         * 
+         * Group: scheduler
+         * 
+         * @param scheduledExecutorService the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder scheduledExecutorService(
+                String scheduledExecutorService) {
+            doSetProperty("scheduledExecutorService", 
scheduledExecutorService);
+            return this;
+        }
+        /**
+         * To use a cron scheduler from either camel-spring or camel-quartz
+         * component. Use value spring or quartz for built in scheduler.
+         * 
+         * The option is a: &lt;code&gt;java.lang.Object&lt;/code&gt; type.
+         * 
+         * Default: none
+         * Group: scheduler
+         * 
+         * @param scheduler the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder scheduler(Object scheduler) {
+            doSetProperty("scheduler", scheduler);
+            return this;
+        }
+        /**
+         * To use a cron scheduler from either camel-spring or camel-quartz
+         * component. Use value spring or quartz for built in scheduler.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;java.lang.Object&lt;/code&gt; type.
+         * 
+         * Default: none
+         * Group: scheduler
+         * 
+         * @param scheduler the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder scheduler(String scheduler) {
+            doSetProperty("scheduler", scheduler);
+            return this;
+        }
+        /**
+         * To configure additional properties when using a custom scheduler or
+         * any of the Quartz, Spring based scheduler.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * schedulerProperties(String, Object) method to add a value (call the
+         * method multiple times to set more values).
+         * 
+         * Group: scheduler
+         * 
+         * @param key the option key
+         * @param value the option value
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder schedulerProperties(
+                String key,
+                Object value) {
+            doSetMultiValueProperty("schedulerProperties", "scheduler." + key, 
value);
+            return this;
+        }
+        /**
+         * To configure additional properties when using a custom scheduler or
+         * any of the Quartz, Spring based scheduler.
+         * 
+         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
+         * java.lang.Object&amp;gt;&lt;/code&gt; type.
+         * The option is multivalued, and you can use the
+         * schedulerProperties(String, Object) method to add a value (call the
+         * method multiple times to set more values).
+         * 
+         * Group: scheduler
+         * 
+         * @param values the values
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder schedulerProperties(Map values) {
+            doSetMultiValueProperties("schedulerProperties", "scheduler.", 
values);
+            return this;
+        }
+        /**
+         * Whether the scheduler should be auto started.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: scheduler
+         * 
+         * @param startScheduler the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder startScheduler(
+                boolean startScheduler) {
+            doSetProperty("startScheduler", startScheduler);
+            return this;
+        }
+        /**
+         * Whether the scheduler should be auto started.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: true
+         * Group: scheduler
+         * 
+         * @param startScheduler the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder startScheduler(
+                String startScheduler) {
+            doSetProperty("startScheduler", startScheduler);
+            return this;
+        }
+        /**
+         * Time unit for initialDelay and delay options.
+         * 
+         * The option is a:
+         * &lt;code&gt;java.util.concurrent.TimeUnit&lt;/code&gt; type.
+         * 
+         * Default: MILLISECONDS
+         * Group: scheduler
+         * 
+         * @param timeUnit the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder timeUnit(TimeUnit timeUnit) {
+            doSetProperty("timeUnit", timeUnit);
+            return this;
+        }
+        /**
+         * Time unit for initialDelay and delay options.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;java.util.concurrent.TimeUnit&lt;/code&gt; type.
+         * 
+         * Default: MILLISECONDS
+         * Group: scheduler
+         * 
+         * @param timeUnit the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder timeUnit(String timeUnit) {
+            doSetProperty("timeUnit", timeUnit);
+            return this;
+        }
+        /**
+         * Controls if fixed delay or fixed rate is used. See
+         * ScheduledExecutorService in JDK for details.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: scheduler
+         * 
+         * @param useFixedDelay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder useFixedDelay(boolean 
useFixedDelay) {
+            doSetProperty("useFixedDelay", useFixedDelay);
+            return this;
+        }
+        /**
+         * Controls if fixed delay or fixed rate is used. See
+         * ScheduledExecutorService in JDK for details.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: true
+         * Group: scheduler
+         * 
+         * @param useFixedDelay the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder useFixedDelay(String 
useFixedDelay) {
+            doSetProperty("useFixedDelay", useFixedDelay);
+            return this;
+        }
+        /**
+         * DHIS2 account password for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param password the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder password(String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * DHIS2 account username for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param username the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointConsumerBuilder username(String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint consumers for the DHIS2 component.
+     */
+    public interface AdvancedDhis2EndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default Dhis2EndpointConsumerBuilder basic() {
+            return (Dhis2EndpointConsumerBuilder) this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error Handler,
+         * which mean any exceptions occurred while the consumer is trying to
+         * pickup incoming messages, or the likes, will now be processed as a
+         * message and handled by the routing Error Handler. By default the
+         * consumer will use the org.apache.camel.spi.ExceptionHandler to deal
+         * with exceptions, that will be logged at WARN or ERROR level and
+         * ignored.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param bridgeErrorHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error Handler,
+         * which mean any exceptions occurred while the consumer is trying to
+         * pickup incoming messages, or the likes, will now be processed as a
+         * message and handled by the routing Error Handler. By default the
+         * consumer will use the org.apache.camel.spi.ExceptionHandler to deal
+         * with exceptions, that will be logged at WARN or ERROR level and
+         * ignored.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param bridgeErrorHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder bridgeErrorHandler(
+                String bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.spi.ExceptionHandler&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exceptionHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder exceptionHandler(
+                org.apache.camel.spi.ExceptionHandler exceptionHandler) {
+            doSetProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;org.apache.camel.spi.ExceptionHandler&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exceptionHandler the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder exceptionHandler(
+                String exceptionHandler) {
+            doSetProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.ExchangePattern&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exchangePattern the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder exchangePattern(
+                org.apache.camel.ExchangePattern exchangePattern) {
+            doSetProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;org.apache.camel.ExchangePattern&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param exchangePattern the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder exchangePattern(
+                String exchangePattern) {
+            doSetProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
+         * you to provide your custom implementation to control error handling
+         * usually occurred during the poll operation before an Exchange have
+         * been created and being routed in Camel.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.spi.PollingConsumerPollStrategy&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param pollStrategy the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder pollStrategy(
+                org.apache.camel.spi.PollingConsumerPollStrategy pollStrategy) 
{
+            doSetProperty("pollStrategy", pollStrategy);
+            return this;
+        }
+        /**
+         * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
+         * you to provide your custom implementation to control error handling
+         * usually occurred during the poll operation before an Exchange have
+         * been created and being routed in Camel.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.spi.PollingConsumerPollStrategy&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param pollStrategy the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder pollStrategy(
+                String pollStrategy) {
+            doSetProperty("pollStrategy", pollStrategy);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder client(
+                org.hisp.dhis.integration.sdk.api.Dhis2Client client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointConsumerBuilder client(String client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint producers for the DHIS2 component.
+     */
+    public interface Dhis2EndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedDhis2EndpointProducerBuilder advanced() {
+            return (AdvancedDhis2EndpointProducerBuilder) this;
+        }
+        /**
+         * DHIS2 server base API URL (e.g.,
+         * https://play.dhis2.org/2.39.1.1/api).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param baseApiUrl the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointProducerBuilder baseApiUrl(String baseApiUrl) {
+            doSetProperty("baseApiUrl", baseApiUrl);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param inBody the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointProducerBuilder inBody(String inBody) {
+            doSetProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * DHIS2 account password for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param password the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointProducerBuilder password(String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * DHIS2 account username for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param username the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointProducerBuilder username(String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint producers for the DHIS2 component.
+     */
+    public interface AdvancedDhis2EndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        default Dhis2EndpointProducerBuilder basic() {
+            return (Dhis2EndpointProducerBuilder) this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointProducerBuilder client(
+                org.hisp.dhis.integration.sdk.api.Dhis2Client client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointProducerBuilder client(String client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint for the DHIS2 component.
+     */
+    public interface Dhis2EndpointBuilder
+            extends
+                Dhis2EndpointConsumerBuilder,
+                Dhis2EndpointProducerBuilder {
+        default AdvancedDhis2EndpointBuilder advanced() {
+            return (AdvancedDhis2EndpointBuilder) this;
+        }
+        /**
+         * DHIS2 server base API URL (e.g.,
+         * https://play.dhis2.org/2.39.1.1/api).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param baseApiUrl the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder baseApiUrl(String baseApiUrl) {
+            doSetProperty("baseApiUrl", baseApiUrl);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param inBody the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder inBody(String inBody) {
+            doSetProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * DHIS2 account password for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param password the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder password(String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * DHIS2 account username for accessing the DHIS2 API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param username the value to set
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder username(String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the DHIS2 component.
+     */
+    public interface AdvancedDhis2EndpointBuilder
+            extends
+                AdvancedDhis2EndpointConsumerBuilder,
+                AdvancedDhis2EndpointProducerBuilder {
+        default Dhis2EndpointBuilder basic() {
+            return (Dhis2EndpointBuilder) this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointBuilder client(
+                org.hisp.dhis.integration.sdk.api.Dhis2Client client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * References a user-defined
+         * org.hisp.dhis.integration.sdk.api.Dhis2Client.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.hisp.dhis.integration.sdk.api.Dhis2Client&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedDhis2EndpointBuilder client(String client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    }
+
+    public interface Dhis2Builders {
+        /**
+         * DHIS2 (camel-dhis2)
+         * Leverages the DHIS2 Java SDK to integrate Apache Camel with the 
DHIS2
+         * Web API.
+         * 
+         * Category: api
+         * Since: 4.0
+         * Maven coordinates: org.apache.camel:camel-dhis2
+         * 
+         * Syntax: <code>dhis2:apiName/methodName</code>
+         * 
+         * Path parameter: apiName (required)
+         * API operation (e.g., get)
+         * There are 5 enums and the value can be one of: POST, 
RESOURCE_TABLES,
+         * GET, DELETE, PUT
+         * 
+         * Path parameter: methodName (required)
+         * Subject of the API operation (e.g., resource)
+         * 
+         * @param path apiName/methodName
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder dhis2(String path) {
+            return Dhis2EndpointBuilderFactory.endpointBuilder("dhis2", path);
+        }
+        /**
+         * DHIS2 (camel-dhis2)
+         * Leverages the DHIS2 Java SDK to integrate Apache Camel with the 
DHIS2
+         * Web API.
+         * 
+         * Category: api
+         * Since: 4.0
+         * Maven coordinates: org.apache.camel:camel-dhis2
+         * 
+         * Syntax: <code>dhis2:apiName/methodName</code>
+         * 
+         * Path parameter: apiName (required)
+         * API operation (e.g., get)
+         * There are 5 enums and the value can be one of: POST, 
RESOURCE_TABLES,
+         * GET, DELETE, PUT
+         * 
+         * Path parameter: methodName (required)
+         * Subject of the API operation (e.g., resource)
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path apiName/methodName
+         * @return the dsl builder
+         */
+        default Dhis2EndpointBuilder dhis2(String componentName, String path) {
+            return Dhis2EndpointBuilderFactory.endpointBuilder(componentName, 
path);
+        }
+    }
+    static Dhis2EndpointBuilder endpointBuilder(
+            String componentName,
+            String path) {
+        class Dhis2EndpointBuilderImpl extends AbstractEndpointBuilder 
implements Dhis2EndpointBuilder, AdvancedDhis2EndpointBuilder {
+            public Dhis2EndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new Dhis2EndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index 5559f3c8679..201e756a5df 100644
--- 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -88,6 +88,7 @@ 
org.apache.camel.component.debezium.DebeziumMySqlComponent=camel:debezium-mysql
 
org.apache.camel.component.debezium.DebeziumOracleComponent=camel:debezium-oracle
 
org.apache.camel.component.debezium.DebeziumPostgresComponent=camel:debezium-postgres
 
org.apache.camel.component.debezium.DebeziumSqlserverComponent=camel:debezium-sqlserver
+org.apache.camel.component.dhis2.Dhis2Component=camel:dhis2
 
org.apache.camel.component.digitalocean.DigitalOceanComponent=camel:digitalocean
 org.apache.camel.component.direct.DirectComponent=camel:direct
 org.apache.camel.component.disruptor.DisruptorComponent=camel:disruptor
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
index 85e1ce4779e..7de5a007f87 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
@@ -37,6 +37,8 @@ public final class MojoHelper {
                         dir.resolve("camel-cxf-rest"));
             case "camel-salesforce":
                 return 
Collections.singletonList(dir.resolve("camel-salesforce-component"));
+            case "camel-dhis2":
+                return 
Collections.singletonList(dir.resolve("camel-dhis2-component"));
             case "camel-olingo2":
                 return 
Collections.singletonList(dir.resolve("camel-olingo2-component"));
             case "camel-olingo4":

Reply via email to