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

acosentino 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 ff0565b975f Camel-Whatsapp: Added to kit
ff0565b975f is described below

commit ff0565b975fcfffd565f70b9f27d638b9def2b10
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Jul 12 15:32:19 2022 +0200

    Camel-Whatsapp: Added to kit
---
 .../org/apache/camel/catalog/components.properties |    1 +
 .../apache/camel/catalog/components/whatsapp.json  |   69 +
 .../org/apache/camel/main/components.properties    |    1 +
 .../java/org/apache/camel/util/SensitiveUtils.java |    4 +-
 .../modules/ROOT/examples/json/whatsapp.json       |    1 +
 docs/components/modules/ROOT/nav.adoc              |    1 +
 .../modules/ROOT/pages/whatsapp-component.adoc     |    1 +
 .../others/examples/json/cxf-transport.json        |    2 +-
 .../component/ComponentsBuilderFactory.java        |   13 +
 .../dsl/WhatsappComponentBuilderFactory.java       |  242 ++++
 .../src/generated/resources/metadata.json          |   22 +
 .../builder/endpoint/EndpointBuilderFactory.java   |    1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |    1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |   43 +
 .../dsl/WhatsAppEndpointBuilderFactory.java        | 1348 ++++++++++++++++++++
 15 files changed, 1748 insertions(+), 2 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 3e4f38174c6..264f5d29259 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
@@ -330,6 +330,7 @@ webhook
 websocket
 websocket-jsr356
 weka
+whatsapp
 wordpress
 workday
 xchange
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/whatsapp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/whatsapp.json
new file mode 100644
index 00000000000..08af37d058e
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/whatsapp.json
@@ -0,0 +1,69 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "whatsapp",
+    "title": "WhatsApp",
+    "description": "Send messages.",
+    "deprecated": false,
+    "firstVersion": "3.18.0",
+    "label": "cloud,api,chat",
+    "javaType": "org.apache.camel.component.whatsapp.WhatsAppComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-whatsapp",
+    "version": "3.19.0-SNAPSHOT",
+    "scheme": "whatsapp",
+    "extendsScheme": "",
+    "syntax": "whatsapp:type",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "phoneNumberId": { "kind": "property", "displayName": "Phone Number Id", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "Phone Number ID taken from WhatsApp Meta for Developers 
Dashboard" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "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 star [...]
+    "apiVersion": { "kind": "property", "displayName": "Api Version", "group": 
"advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "v13.0", "description": "WhatsApp Cloud API 
version" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired 
Enabled", "group": "advanced", "label": "advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "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 t [...]
+    "baseUri": { "kind": "property", "displayName": "Base Uri", "group": 
"advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "https:\/\/graph.facebook.com", "description": 
"Can be used to set an alternative base URI, e.g. when you want to test the 
component against a mock WhatsApp API" },
+    "client": { "kind": "property", "displayName": "Client", "group": 
"advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.net.http.HttpClient", "deprecated": false, "autowired": 
false, "secret": false, "description": "Java 11 HttpClient implementation" },
+    "webhookVerifyToken": { "kind": "property", "displayName": "Webhook Verify 
Token", "group": "advanced", "label": "advanced", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Webhook verify token" },
+    "authorizationToken": { "kind": "property", "displayName": "Authorization 
Token", "group": "security", "label": "security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Authorization Token taken from WhatsApp 
Meta for Developers Dashboard" }
+  },
+  "headers": {
+    "CamelWhatsAppPhoneNumberId": { "kind": "header", "displayName": "", 
"group": "producer", "label": "producer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Phone Number ID taken from WhatsApp Meta for 
Developers Dashboard", "constantName": 
"org.apache.camel.component.whatsapp.WhatsAppConstants#WHATSAPP_PHONE_NUMBER_ID"
 },
+    "CamelWhatsAppRecipientPhoneNumberId": { "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Recipient phone number associated with Phone 
Number ID", "constantName": 
"org.apache.camel.component.whatsapp.WhatsAppConstants#WHATSAPP_RECIPIENT_PHONE_NUMBER_ID"
 }
+  },
+  "properties": {
+    "phoneNumberId": { "kind": "path", "displayName": "Phone Number Id", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "The phone number ID 
taken from whatsapp-business dashboard." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": "If 
the polling consumer did not poll any files, you can enable this option to send 
an empty message (no body) instead." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "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 [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "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 
con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the exchange pattern when the consumer creates an 
exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"autowired": false, "secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer (advanced)", "label": "producer,advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "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 other [...]
+    "apiVersion": { "kind": "parameter", "displayName": "Api Version", 
"group": "advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "Facebook graph api 
version." },
+    "baseUri": { "kind": "parameter", "displayName": "Base Uri", "group": 
"advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "Can be used to set an 
alternative base URI, e.g. when you want to test the component against a mock 
WhatsApp API" },
+    "httpClient": { "kind": "parameter", "displayName": "Http Client", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.net.http.HttpClient", "deprecated": false, "autowired": 
false, "secret": false, "description": "HttpClient implementation" },
+    "webhookPath": { "kind": "parameter", "displayName": "Webhook Path", 
"group": "advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "webhook", "configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "Webhook path" },
+    "webhookVerifyToken": { "kind": "parameter", "displayName": "Webhook 
Verify Token", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "Webhook verify token" },
+    "whatsappService": { "kind": "parameter", "displayName": "Whatsapp 
Service", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "org.apache.camel.component.whatsapp.WhatsAppService", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"WhatsApp service implementation" },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff 
Error Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "The number of subsequent 
error polls (failed due some error) that should happen before the 
backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff 
Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "The number of subsequent 
idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff 
Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "description": "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 agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "description": "Milliseconds before the 
next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "If greedy is enabled, 
then the ScheduledPollConsumer will run immediately again, if the previous run 
polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 1000, "description": "Milliseconds before the 
first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "description": "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." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging 
Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ 
"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "TRACE", "description": 
"The consumer logs a start\/complete log line when it polls. This option allows 
you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": 
"Scheduled Executor Service", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "object", "javaType": 
"java.util.concurrent.ScheduledExecutorService", "deprecated": false, 
"autowired": false, "secret": false, "description": "Allows for configuring a 
custom\/shared thread pool to use for the consumer. By default each consumer 
has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.lang.Object", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "none", "description": "To use a cron 
scheduler from either camel-spring or camel-quartz component. Use value spring 
or quartz for built in scheduler" },
+    "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler 
Properties", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": 
false, "autowired": false, "secret": false, "description": "To configure 
additional properties when using a custom scheduler or any of the Quartz, 
Spring based scheduler." },
+    "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether the scheduler 
should be auto started." },
+    "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", 
"MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"MILLISECONDS", "description": "Time unit for initialDelay and delay options." 
},
+    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Controls if fixed delay 
or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "authorizationToken": { "kind": "parameter", "displayName": "Authorization 
Token", "group": "security", "label": "security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": 
"org.apache.camel.component.whatsapp.WhatsAppConfiguration", 
"configurationField": "configuration", "description": "The authorization access 
token taken from whatsapp-business dashboard." }
+  }
+}
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 3e4f38174c6..264f5d29259 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
@@ -330,6 +330,7 @@ webhook
 websocket
 websocket-jsr356
 weka
+whatsapp
 wordpress
 workday
 xchange
diff --git 
a/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java 
b/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
index 8e8953794d0..62849332d33 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
@@ -96,6 +96,7 @@ public final class SensitiveUtils {
                     "username",
                     "userpassword",
                     "verificationcode",
+                    "webhookverifytoken",
                     "zookeeperpassword"
             // SENSITIVE-KEYS: END
             )));
@@ -171,8 +172,9 @@ public final class SensitiveUtils {
                                                     + "|\\Qusername\\E"
                                                     + "|\\Quserpassword\\E"
                                                     + "|\\Qverificationcode\\E"
+                                                    + 
"|\\Qwebhookverifytoken\\E"
                                                     + 
"|\\Qzookeeperpassword\\E"
-    // SENSITIVE-PATTERN: END
+                                                    // SENSITIVE-PATTERN: END
     ;
 
     private SensitiveUtils() {
diff --git a/docs/components/modules/ROOT/examples/json/whatsapp.json 
b/docs/components/modules/ROOT/examples/json/whatsapp.json
new file mode 120000
index 00000000000..30bb7547b5d
--- /dev/null
+++ b/docs/components/modules/ROOT/examples/json/whatsapp.json
@@ -0,0 +1 @@
+../../../../../../components/camel-whatsapp/src/generated/resources/org/apache/camel/component/whatsapp/whatsapp.json
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/nav.adoc 
b/docs/components/modules/ROOT/nav.adoc
index d4169121e94..cf9fb7edfcb 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -331,6 +331,7 @@
 ** xref:web3j-component.adoc[Web3j Ethereum Blockchain]
 ** xref:webhook-component.adoc[Webhook]
 ** xref:weka-component.adoc[Weka]
+** xref:whatsapp-component.adoc[WhatsApp]
 ** xref:wordpress-component.adoc[Wordpress]
 ** xref:workday-component.adoc[Workday]
 ** xref:xchange-component.adoc[XChange]
diff --git a/docs/components/modules/ROOT/pages/whatsapp-component.adoc 
b/docs/components/modules/ROOT/pages/whatsapp-component.adoc
new file mode 120000
index 00000000000..345807a4ca7
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/whatsapp-component.adoc
@@ -0,0 +1 @@
+../../../../../components/camel-whatsapp/src/main/docs/whatsapp-component.adoc
\ No newline at end of file
diff --git a/docs/components/modules/others/examples/json/cxf-transport.json 
b/docs/components/modules/others/examples/json/cxf-transport.json
index d17681bff01..efeb3d1036e 120000
--- a/docs/components/modules/others/examples/json/cxf-transport.json
+++ b/docs/components/modules/others/examples/json/cxf-transport.json
@@ -1 +1 @@
-../../../../../../components/camel-cxf/camel-cxf-transport/src/generated/resources/cxf-transport.json
\ No newline at end of file
+../../../../../../components/camel-cxf/camel-cxf-spring-transport/src/generated/resources/cxf-transport.json
\ No newline at end of file
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 6e6135c4e14..5fdea16102b 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
@@ -4460,6 +4460,19 @@ public interface ComponentsBuilderFactory {
     static 
org.apache.camel.builder.component.dsl.WekaComponentBuilderFactory.WekaComponentBuilder
 weka() {
         return 
org.apache.camel.builder.component.dsl.WekaComponentBuilderFactory.weka();
     }
+    /**
+     * WhatsApp (camel-whatsapp)
+     * Send messages.
+     * 
+     * Category: cloud,api,chat
+     * Since: 3.18
+     * Maven coordinates: org.apache.camel:camel-whatsapp
+     * 
+     * @return the dsl builder
+     */
+    static 
org.apache.camel.builder.component.dsl.WhatsappComponentBuilderFactory.WhatsappComponentBuilder
 whatsapp() {
+        return 
org.apache.camel.builder.component.dsl.WhatsappComponentBuilderFactory.whatsapp();
+    }
     /**
      * Wordpress (camel-wordpress)
      * Manage posts and users using Wordpress API.
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/WhatsappComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/WhatsappComponentBuilderFactory.java
new file mode 100644
index 00000000000..52bd9db3700
--- /dev/null
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/WhatsappComponentBuilderFactory.java
@@ -0,0 +1,242 @@
+/*
+ * 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.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.whatsapp.WhatsAppComponent;
+
+/**
+ * Send messages.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface WhatsappComponentBuilderFactory {
+
+    /**
+     * WhatsApp (camel-whatsapp)
+     * Send messages.
+     * 
+     * Category: cloud,api,chat
+     * Since: 3.18
+     * Maven coordinates: org.apache.camel:camel-whatsapp
+     * 
+     * @return the dsl builder
+     */
+    static WhatsappComponentBuilder whatsapp() {
+        return new WhatsappComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the WhatsApp component.
+     */
+    interface WhatsappComponentBuilder
+            extends
+                ComponentBuilder<WhatsAppComponent> {
+        /**
+         * Phone Number ID taken from WhatsApp Meta for Developers Dashboard.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param phoneNumberId the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder phoneNumberId(
+                java.lang.String phoneNumberId) {
+            doSetProperty("phoneNumberId", phoneNumberId);
+            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 WhatsappComponentBuilder 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 WhatsappComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * WhatsApp Cloud API version.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: v13.0
+         * Group: advanced
+         * 
+         * @param apiVersion the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder apiVersion(java.lang.String 
apiVersion) {
+            doSetProperty("apiVersion", apiVersion);
+            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 WhatsappComponentBuilder autowiredEnabled(
+                boolean autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+        /**
+         * Can be used to set an alternative base URI, e.g. when you want to
+         * test the component against a mock WhatsApp API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: https://graph.facebook.com
+         * Group: advanced
+         * 
+         * @param baseUri the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder baseUri(java.lang.String baseUri) {
+            doSetProperty("baseUri", baseUri);
+            return this;
+        }
+        /**
+         * Java 11 HttpClient implementation.
+         * 
+         * The option is a: &lt;code&gt;java.net.http.HttpClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder client(java.net.http.HttpClient 
client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * Webhook verify token.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param webhookVerifyToken the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder webhookVerifyToken(
+                java.lang.String webhookVerifyToken) {
+            doSetProperty("webhookVerifyToken", webhookVerifyToken);
+            return this;
+        }
+        /**
+         * Authorization Token taken from WhatsApp Meta for Developers
+         * Dashboard.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param authorizationToken the value to set
+         * @return the dsl builder
+         */
+        default WhatsappComponentBuilder authorizationToken(
+                java.lang.String authorizationToken) {
+            doSetProperty("authorizationToken", authorizationToken);
+            return this;
+        }
+    }
+
+    class WhatsappComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<WhatsAppComponent>
+            implements
+                WhatsappComponentBuilder {
+        @Override
+        protected WhatsAppComponent buildConcreteComponent() {
+            return new WhatsAppComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "phoneNumberId": ((WhatsAppComponent) 
component).setPhoneNumberId((java.lang.String) value); return true;
+            case "bridgeErrorHandler": ((WhatsAppComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
+            case "lazyStartProducer": ((WhatsAppComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "apiVersion": ((WhatsAppComponent) 
component).setApiVersion((java.lang.String) value); return true;
+            case "autowiredEnabled": ((WhatsAppComponent) 
component).setAutowiredEnabled((boolean) value); return true;
+            case "baseUri": ((WhatsAppComponent) 
component).setBaseUri((java.lang.String) value); return true;
+            case "client": ((WhatsAppComponent) 
component).setClient((java.net.http.HttpClient) value); return true;
+            case "webhookVerifyToken": ((WhatsAppComponent) 
component).setWebhookVerifyToken((java.lang.String) value); return true;
+            case "authorizationToken": ((WhatsAppComponent) 
component).setAuthorizationToken((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 64e65835707..bfc8a066bb4 100644
--- a/dsl/camel-componentdsl/src/generated/resources/metadata.json
+++ b/dsl/camel-componentdsl/src/generated/resources/metadata.json
@@ -7363,6 +7363,28 @@
     "producerOnly": true,
     "lenientProperties": false
   },
+  "WhatsappComponentBuilderFactory": {
+    "kind": "component",
+    "name": "whatsapp",
+    "title": "WhatsApp",
+    "description": "Send messages.",
+    "deprecated": false,
+    "firstVersion": "3.18.0",
+    "label": "cloud,api,chat",
+    "javaType": "org.apache.camel.component.whatsapp.WhatsAppComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-whatsapp",
+    "version": "3.19.0-SNAPSHOT",
+    "scheme": "whatsapp",
+    "extendsScheme": "",
+    "syntax": "whatsapp:type",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
   "WordpressComponentBuilderFactory": {
     "kind": "component",
     "name": "wordpress",
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 0473525c33f..66edf833d7d 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
@@ -345,6 +345,7 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.WebhookEndpointBuilderFactory.WebhookBuilders,
             
org.apache.camel.builder.endpoint.dsl.WebsocketEndpointBuilderFactory.WebsocketBuilders,
             
org.apache.camel.builder.endpoint.dsl.WekaEndpointBuilderFactory.WekaBuilders,
+            
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory.WhatsAppBuilders,
             
org.apache.camel.builder.endpoint.dsl.WordpressEndpointBuilderFactory.WordpressBuilders,
             
org.apache.camel.builder.endpoint.dsl.WorkdayEndpointBuilderFactory.WorkdayBuilders,
             
org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory.WsBuilders,
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 218ac8604d5..c800363b5f8 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
@@ -342,6 +342,7 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.WebhookEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.WebsocketEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.WekaEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.WordpressEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.WorkdayEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory,
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 a55dcd90366..eb24ccf7c02 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
@@ -15433,6 +15433,49 @@ public class StaticEndpointBuilders {
             String path) {
         return 
org.apache.camel.builder.endpoint.dsl.WekaEndpointBuilderFactory.endpointBuilder(componentName,
 path);
     }
+    /**
+     * WhatsApp (camel-whatsapp)
+     * Send messages.
+     * 
+     * Category: cloud,api,chat
+     * Since: 3.18
+     * Maven coordinates: org.apache.camel:camel-whatsapp
+     * 
+     * Syntax: <code>whatsapp:type</code>
+     * 
+     * Path parameter: phoneNumberId (required)
+     * The phone number ID taken from whatsapp-business dashboard.
+     * 
+     * @param path type
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory.WhatsAppEndpointBuilder
 whatsapp(
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory.endpointBuilder("whatsapp",
 path);
+    }
+    /**
+     * WhatsApp (camel-whatsapp)
+     * Send messages.
+     * 
+     * Category: cloud,api,chat
+     * Since: 3.18
+     * Maven coordinates: org.apache.camel:camel-whatsapp
+     * 
+     * Syntax: <code>whatsapp:type</code>
+     * 
+     * Path parameter: phoneNumberId (required)
+     * The phone number ID taken from whatsapp-business dashboard.
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path type
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory.WhatsAppEndpointBuilder
 whatsapp(
+            String componentName,
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.WhatsAppEndpointBuilderFactory.endpointBuilder(componentName,
 path);
+    }
     /**
      * Wordpress (camel-wordpress)
      * Manage posts and users using Wordpress API.
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/WhatsAppEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/WhatsAppEndpointBuilderFactory.java
new file mode 100644
index 00000000000..abb6b091b71
--- /dev/null
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/WhatsAppEndpointBuilderFactory.java
@@ -0,0 +1,1348 @@
+/*
+ * 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.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Send messages.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface WhatsAppEndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint consumers for the WhatsApp component.
+     */
+    public interface WhatsAppEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default AdvancedWhatsAppEndpointConsumerBuilder advanced() {
+            return (AdvancedWhatsAppEndpointConsumerBuilder) 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder 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 WhatsAppEndpointConsumerBuilder useFixedDelay(
+                String useFixedDelay) {
+            doSetProperty("useFixedDelay", useFixedDelay);
+            return this;
+        }
+        /**
+         * The authorization access token taken from whatsapp-business
+         * dashboard.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Required: true
+         * Group: security
+         * 
+         * @param authorizationToken the value to set
+         * @return the dsl builder
+         */
+        default WhatsAppEndpointConsumerBuilder authorizationToken(
+                String authorizationToken) {
+            doSetProperty("authorizationToken", authorizationToken);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint consumers for the WhatsApp component.
+     */
+    public interface AdvancedWhatsAppEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        default WhatsAppEndpointConsumerBuilder basic() {
+            return (WhatsAppEndpointConsumerBuilder) 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder 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 AdvancedWhatsAppEndpointConsumerBuilder pollStrategy(
+                String pollStrategy) {
+            doSetProperty("pollStrategy", pollStrategy);
+            return this;
+        }
+        /**
+         * Facebook graph api version.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param apiVersion the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder apiVersion(
+                String apiVersion) {
+            doSetProperty("apiVersion", apiVersion);
+            return this;
+        }
+        /**
+         * Can be used to set an alternative base URI, e.g. when you want to
+         * test the component against a mock WhatsApp API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param baseUri the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder baseUri(String 
baseUri) {
+            doSetProperty("baseUri", baseUri);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option is a: &lt;code&gt;java.net.http.HttpClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder httpClient(
+                java.net.http.HttpClient httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;java.net.http.HttpClient&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder httpClient(
+                String httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * Webhook path.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: webhook
+         * Group: advanced
+         * 
+         * @param webhookPath the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder webhookPath(
+                String webhookPath) {
+            doSetProperty("webhookPath", webhookPath);
+            return this;
+        }
+        /**
+         * Webhook verify token.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param webhookVerifyToken the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder webhookVerifyToken(
+                String webhookVerifyToken) {
+            doSetProperty("webhookVerifyToken", webhookVerifyToken);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder whatsappService(
+                org.apache.camel.component.whatsapp.WhatsAppService 
whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointConsumerBuilder whatsappService(
+                String whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint producers for the WhatsApp component.
+     */
+    public interface WhatsAppEndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedWhatsAppEndpointProducerBuilder advanced() {
+            return (AdvancedWhatsAppEndpointProducerBuilder) this;
+        }
+        /**
+         * The authorization access token taken from whatsapp-business
+         * dashboard.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Required: true
+         * Group: security
+         * 
+         * @param authorizationToken the value to set
+         * @return the dsl builder
+         */
+        default WhatsAppEndpointProducerBuilder authorizationToken(
+                String authorizationToken) {
+            doSetProperty("authorizationToken", authorizationToken);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint producers for the WhatsApp component.
+     */
+    public interface AdvancedWhatsAppEndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        default WhatsAppEndpointProducerBuilder basic() {
+            return (WhatsAppEndpointProducerBuilder) 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 AdvancedWhatsAppEndpointProducerBuilder 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 AdvancedWhatsAppEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Facebook graph api version.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param apiVersion the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder apiVersion(
+                String apiVersion) {
+            doSetProperty("apiVersion", apiVersion);
+            return this;
+        }
+        /**
+         * Can be used to set an alternative base URI, e.g. when you want to
+         * test the component against a mock WhatsApp API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param baseUri the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder baseUri(String 
baseUri) {
+            doSetProperty("baseUri", baseUri);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option is a: &lt;code&gt;java.net.http.HttpClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder httpClient(
+                java.net.http.HttpClient httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;java.net.http.HttpClient&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder httpClient(
+                String httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * Webhook path.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: webhook
+         * Group: advanced
+         * 
+         * @param webhookPath the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder webhookPath(
+                String webhookPath) {
+            doSetProperty("webhookPath", webhookPath);
+            return this;
+        }
+        /**
+         * Webhook verify token.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param webhookVerifyToken the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder webhookVerifyToken(
+                String webhookVerifyToken) {
+            doSetProperty("webhookVerifyToken", webhookVerifyToken);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder whatsappService(
+                org.apache.camel.component.whatsapp.WhatsAppService 
whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointProducerBuilder whatsappService(
+                String whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint for the WhatsApp component.
+     */
+    public interface WhatsAppEndpointBuilder
+            extends
+                WhatsAppEndpointConsumerBuilder,
+                WhatsAppEndpointProducerBuilder {
+        default AdvancedWhatsAppEndpointBuilder advanced() {
+            return (AdvancedWhatsAppEndpointBuilder) this;
+        }
+        /**
+         * The authorization access token taken from whatsapp-business
+         * dashboard.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Required: true
+         * Group: security
+         * 
+         * @param authorizationToken the value to set
+         * @return the dsl builder
+         */
+        default WhatsAppEndpointBuilder authorizationToken(
+                String authorizationToken) {
+            doSetProperty("authorizationToken", authorizationToken);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the WhatsApp component.
+     */
+    public interface AdvancedWhatsAppEndpointBuilder
+            extends
+                AdvancedWhatsAppEndpointConsumerBuilder,
+                AdvancedWhatsAppEndpointProducerBuilder {
+        default WhatsAppEndpointBuilder basic() {
+            return (WhatsAppEndpointBuilder) this;
+        }
+        /**
+         * Facebook graph api version.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param apiVersion the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder apiVersion(String apiVersion) {
+            doSetProperty("apiVersion", apiVersion);
+            return this;
+        }
+        /**
+         * Can be used to set an alternative base URI, e.g. when you want to
+         * test the component against a mock WhatsApp API.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param baseUri the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder baseUri(String baseUri) {
+            doSetProperty("baseUri", baseUri);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option is a: &lt;code&gt;java.net.http.HttpClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder httpClient(
+                java.net.http.HttpClient httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * HttpClient implementation.
+         * 
+         * The option will be converted to a
+         * &lt;code&gt;java.net.http.HttpClient&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param httpClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder httpClient(String httpClient) {
+            doSetProperty("httpClient", httpClient);
+            return this;
+        }
+        /**
+         * Webhook path.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: webhook
+         * Group: advanced
+         * 
+         * @param webhookPath the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder webhookPath(String 
webhookPath) {
+            doSetProperty("webhookPath", webhookPath);
+            return this;
+        }
+        /**
+         * Webhook verify token.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param webhookVerifyToken the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder webhookVerifyToken(
+                String webhookVerifyToken) {
+            doSetProperty("webhookVerifyToken", webhookVerifyToken);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder whatsappService(
+                org.apache.camel.component.whatsapp.WhatsAppService 
whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+        /**
+         * WhatsApp service implementation.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.whatsapp.WhatsAppService&lt;/code&gt; 
type.
+         * 
+         * Group: advanced
+         * 
+         * @param whatsappService the value to set
+         * @return the dsl builder
+         */
+        default AdvancedWhatsAppEndpointBuilder whatsappService(
+                String whatsappService) {
+            doSetProperty("whatsappService", whatsappService);
+            return this;
+        }
+    }
+
+    public interface WhatsAppBuilders {
+        /**
+         * WhatsApp (camel-whatsapp)
+         * Send messages.
+         * 
+         * Category: cloud,api,chat
+         * Since: 3.18
+         * Maven coordinates: org.apache.camel:camel-whatsapp
+         * 
+         * @return the dsl builder for the headers' name.
+         */
+        default WhatsAppHeaderNameBuilder whatsapp() {
+            return WhatsAppHeaderNameBuilder.INSTANCE;
+        }
+        /**
+         * WhatsApp (camel-whatsapp)
+         * Send messages.
+         * 
+         * Category: cloud,api,chat
+         * Since: 3.18
+         * Maven coordinates: org.apache.camel:camel-whatsapp
+         * 
+         * Syntax: <code>whatsapp:type</code>
+         * 
+         * Path parameter: phoneNumberId (required)
+         * The phone number ID taken from whatsapp-business dashboard.
+         * 
+         * @param path type
+         * @return the dsl builder
+         */
+        default WhatsAppEndpointBuilder whatsapp(String path) {
+            return WhatsAppEndpointBuilderFactory.endpointBuilder("whatsapp", 
path);
+        }
+        /**
+         * WhatsApp (camel-whatsapp)
+         * Send messages.
+         * 
+         * Category: cloud,api,chat
+         * Since: 3.18
+         * Maven coordinates: org.apache.camel:camel-whatsapp
+         * 
+         * Syntax: <code>whatsapp:type</code>
+         * 
+         * Path parameter: phoneNumberId (required)
+         * The phone number ID taken from whatsapp-business dashboard.
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path type
+         * @return the dsl builder
+         */
+        default WhatsAppEndpointBuilder whatsapp(
+                String componentName,
+                String path) {
+            return 
WhatsAppEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+    }
+
+    /**
+     * The builder of headers' name for the WhatsApp component.
+     */
+    public static class WhatsAppHeaderNameBuilder {
+        /**
+         * The internal instance of the builder used to access to all the
+         * methods representing the name of headers.
+         */
+        private static final WhatsAppHeaderNameBuilder INSTANCE = new 
WhatsAppHeaderNameBuilder();
+
+        /**
+         * Phone Number ID taken from WhatsApp Meta for Developers Dashboard.
+         * 
+         * The option is a: {@code Object} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code WhatsAppPhoneNumberId}.
+         */
+        public String whatsAppPhoneNumberId() {
+            return "WhatsAppPhoneNumberId";
+        }
+
+        /**
+         * Recipient phone number associated with Phone Number ID.
+         * 
+         * The option is a: {@code Object} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * WhatsAppRecipientPhoneNumberId}.
+         */
+        public String whatsAppRecipientPhoneNumberId() {
+            return "WhatsAppRecipientPhoneNumberId";
+        }
+    }
+    static WhatsAppEndpointBuilder endpointBuilder(
+            String componentName,
+            String path) {
+        class WhatsAppEndpointBuilderImpl extends AbstractEndpointBuilder 
implements WhatsAppEndpointBuilder, AdvancedWhatsAppEndpointBuilder {
+            public WhatsAppEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new WhatsAppEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file

Reply via email to