You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/10/07 05:37:06 UTC

[camel-spring-boot] 03/03: CAMEL-15624: Regen

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 1a210d5eb0e5e35368bdc0e0764aa453ef0f3fa8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Oct 7 07:21:05 2020 +0200

    CAMEL-15624: Regen
---
 .../src/main/docs/activemq-starter.adoc            |  34 +++---
 .../springboot/ActiveMQComponentConfiguration.java | 117 +++++++++++---------
 .../src/main/docs/ahc-starter.adoc                 |  10 +-
 .../ahc/springboot/AhcComponentConfiguration.java  |  37 ++++---
 .../src/main/docs/ahc-ws-starter.adoc              |  10 +-
 .../ws/springboot/WsComponentConfiguration.java    |  37 ++++---
 .../src/main/docs/amqp-starter.adoc                |  34 +++---
 .../springboot/AMQPComponentConfiguration.java     | 117 +++++++++++---------
 .../src/main/docs/apns-starter.adoc                |   2 +-
 .../springboot/ApnsComponentConfiguration.java     |   7 +-
 .../src/main/docs/arangodb-starter.adoc            |   2 +-
 .../springboot/ArangoDbComponentConfiguration.java |   7 +-
 .../src/main/docs/as2-starter.adoc                 |   2 +-
 .../as2/springboot/AS2ComponentConfiguration.java  |   7 +-
 .../main/docs/atmosphere-websocket-starter.adoc    |   8 +-
 .../WebsocketComponentConfiguration.java           |  29 ++---
 .../src/main/docs/atomix-starter.adoc              |  60 +++++------
 .../AtomixMapComponentConfiguration.java           |  38 +++----
 .../AtomixMessagingComponentConfiguration.java     |  26 ++---
 .../AtomixMultiMapComponentConfiguration.java      |  38 +++----
 .../AtomixQueueComponentConfiguration.java         |  26 ++---
 .../AtomixSetComponentConfiguration.java           |  32 +++---
 .../AtomixValueComponentConfiguration.java         |  32 +++---
 .../src/main/docs/avro-rpc-starter.adoc            |   4 +-
 .../springboot/AvroComponentConfiguration.java     |  14 +--
 .../src/main/docs/aws-cw-starter.adoc              |   4 +-
 .../cw/springboot/CwComponentConfiguration.java    |  14 +--
 .../src/main/docs/aws-ddb-starter.adoc             |  10 +-
 .../ddb/springboot/DdbComponentConfiguration.java  |  14 +--
 .../DdbStreamComponentConfiguration.java           |  22 ++--
 .../src/main/docs/aws-ec2-starter.adoc             |   4 +-
 .../ec2/springboot/EC2ComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-ecs-starter.adoc             |   4 +-
 .../ecs/springboot/ECSComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-eks-starter.adoc             |   4 +-
 .../eks/springboot/EKSComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-iam-starter.adoc             |   4 +-
 .../iam/springboot/IAMComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-kinesis-starter.adoc         |   8 +-
 .../KinesisFirehoseComponentConfiguration.java     |  14 +--
 .../springboot/KinesisComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-kms-starter.adoc             |   4 +-
 .../kms/springboot/KMSComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-lambda-starter.adoc          |   4 +-
 .../springboot/LambdaComponentConfiguration.java   |  14 +--
 .../src/main/docs/aws-mq-starter.adoc              |   4 +-
 .../mq/springboot/MQComponentConfiguration.java    |  14 +--
 .../src/main/docs/aws-msk-starter.adoc             |   4 +-
 .../msk/springboot/MSKComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-s3-starter.adoc              |   8 +-
 .../s3/springboot/S3ComponentConfiguration.java    |  29 ++---
 .../src/main/docs/aws-ses-starter.adoc             |   4 +-
 .../ses/springboot/SesComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-sns-starter.adoc             |   6 +-
 .../sns/springboot/SnsComponentConfiguration.java  |  21 ++--
 .../src/main/docs/aws-sqs-starter.adoc             |   4 +-
 .../sqs/springboot/SqsComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws-swf-starter.adoc             |  14 +--
 .../swf/springboot/SWFComponentConfiguration.java  |  50 +++++----
 .../src/main/docs/aws-translate-starter.adoc       |   4 +-
 .../TranslateComponentConfiguration.java           |  14 +--
 .../src/main/docs/aws2-athena-starter.adoc         |   4 +-
 .../springboot/Athena2ComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws2-cw-starter.adoc             |   6 +-
 .../cw/springboot/Cw2ComponentConfiguration.java   |  21 ++--
 .../src/main/docs/aws2-ddb-starter.adoc            |  10 +-
 .../ddb/springboot/Ddb2ComponentConfiguration.java |  14 +--
 .../Ddb2StreamComponentConfiguration.java          |  22 ++--
 .../src/main/docs/aws2-ec2-starter.adoc            |   4 +-
 .../springboot/AWS2EC2ComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws2-ecs-starter.adoc            |   4 +-
 .../ecs/springboot/ECS2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-eks-starter.adoc            |   4 +-
 .../eks/springboot/EKS2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-eventbridge-starter.adoc    |   4 +-
 .../EventbridgeComponentConfiguration.java         |  14 +--
 .../src/main/docs/aws2-iam-starter.adoc            |   4 +-
 .../iam/springboot/IAM2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-kinesis-starter.adoc        |   8 +-
 .../KinesisFirehose2ComponentConfiguration.java    |  14 +--
 .../springboot/Kinesis2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-kms-starter.adoc            |   4 +-
 .../kms/springboot/KMS2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-lambda-starter.adoc         |   4 +-
 .../springboot/Lambda2ComponentConfiguration.java  |  14 +--
 .../src/main/docs/aws2-mq-starter.adoc             |   4 +-
 .../mq/springboot/MQ2ComponentConfiguration.java   |  14 +--
 .../src/main/docs/aws2-msk-starter.adoc            |   4 +-
 .../msk/springboot/MSK2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-s3-starter.adoc             |   4 +-
 .../springboot/AWS2S3ComponentConfiguration.java   |  14 +--
 .../src/main/docs/aws2-ses-starter.adoc            |   4 +-
 .../ses/springboot/Ses2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-sns-starter.adoc            |   4 +-
 .../sns/springboot/Sns2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-sqs-starter.adoc            |   4 +-
 .../sqs/springboot/Sqs2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-sts-starter.adoc            |   4 +-
 .../sts/springboot/STS2ComponentConfiguration.java |  14 +--
 .../src/main/docs/aws2-translate-starter.adoc      |   4 +-
 .../Translate2ComponentConfiguration.java          |  14 +--
 .../src/main/docs/azure-eventhubs-starter.adoc     |  10 +-
 .../EventHubsComponentConfiguration.java           |  36 ++++---
 .../src/main/docs/azure-starter.adoc               |  12 +--
 .../BlobServiceComponentConfiguration.java         |  21 ++--
 .../QueueServiceComponentConfiguration.java        |  21 ++--
 .../src/main/docs/azure-storage-blob-starter.adoc  |   8 +-
 .../springboot/BlobComponentConfiguration.java     |  28 ++---
 .../src/main/docs/azure-storage-queue-starter.adoc |  12 +--
 .../springboot/QueueComponentConfiguration.java    |  40 +++----
 .../src/main/docs/bean-validator-starter.adoc      |  10 +-
 .../BeanValidatorComponentConfiguration.java       |  37 ++++---
 .../src/main/docs/beanstalk-starter.adoc           |   2 +-
 .../BeanstalkComponentConfiguration.java           |   8 +-
 .../src/main/docs/box-starter.adoc                 |   6 +-
 .../box/springboot/BoxComponentConfiguration.java  |  22 ++--
 .../src/main/docs/braintree-starter.adoc           |   2 +-
 .../BraintreeComponentConfiguration.java           |   7 +-
 .../src/main/docs/caffeine-starter.adoc            |  20 ++--
 .../CaffeineCacheComponentConfiguration.java       |  34 +++---
 .../CaffeineLoadCacheComponentConfiguration.java   |  34 +++---
 .../src/main/docs/cmis-starter.adoc                |   2 +-
 .../springboot/CMISComponentConfiguration.java     |   8 +-
 .../src/main/docs/cometd-starter.adoc              |   4 +-
 .../springboot/CometdComponentConfiguration.java   |  15 +--
 .../src/main/docs/consul-starter.adoc              |  16 +--
 .../springboot/ConsulComponentConfiguration.java   |  54 +++++-----
 .../src/main/docs/corda-starter.adoc               |   6 +-
 .../springboot/CordaComponentConfiguration.java    |  21 ++--
 .../src/main/docs/crypto-cms-starter.adoc          |   4 +-
 .../CryptoCmsComponentConfiguration.java           |  14 +--
 .../src/main/docs/crypto-starter.adoc              |  14 +--
 .../DigitalSignatureComponentConfiguration.java    |  49 +++++----
 .../src/main/docs/cxf-starter.adoc                 |   4 +-
 .../springboot/CxfRsComponentConfiguration.java    |   8 +-
 .../cxf/springboot/CxfComponentConfiguration.java  |   8 +-
 .../src/main/docs/debezium-mongodb-starter.adoc    |  26 ++---
 .../DebeziumMongodbComponentConfiguration.java     |  80 +++++++-------
 .../src/main/docs/debezium-mysql-starter.adoc      |  18 ++--
 .../DebeziumMySqlComponentConfiguration.java       |  56 +++++-----
 .../src/main/docs/debezium-postgres-starter.adoc   |  22 ++--
 .../DebeziumPostgresComponentConfiguration.java    |  68 ++++++------
 .../src/main/docs/debezium-sqlserver-starter.adoc  |  18 ++--
 .../DebeziumSqlserverComponentConfiguration.java   |  56 +++++-----
 .../src/main/docs/directvm-starter.adoc            |   2 +-
 .../springboot/DirectVmComponentConfiguration.java |   8 +-
 .../src/main/docs/docker-starter.adoc              |   2 +-
 .../springboot/DockerComponentConfiguration.java   |   7 +-
 .../src/main/docs/ehcache-starter.adoc             |   8 +-
 .../springboot/EhcacheComponentConfiguration.java  |  27 ++---
 .../src/main/docs/elasticsearch-rest-starter.adoc  |   2 +-
 .../ElasticsearchComponentConfiguration.java       |   7 +-
 .../src/main/docs/elsql-starter.adoc               |   5 +-
 .../springboot/ElsqlComponentConfiguration.java    |  14 +--
 .../src/main/docs/etcd-starter.adoc                |  18 ++--
 .../springboot/EtcdKeysComponentConfiguration.java |  21 ++--
 .../EtcdStatsComponentConfiguration.java           |  21 ++--
 .../EtcdWatchComponentConfiguration.java           |  21 ++--
 .../src/main/docs/facebook-starter.adoc            |   2 +-
 .../springboot/FacebookComponentConfiguration.java |   7 +-
 .../src/main/docs/fhir-starter.adoc                |   8 +-
 .../springboot/FhirComponentConfiguration.java     |  28 ++---
 .../src/main/docs/file-watch-starter.adoc          |   2 +-
 .../FileWatchComponentConfiguration.java           |   7 +-
 .../src/main/docs/flink-starter.adoc               |   6 +-
 .../springboot/FlinkComponentConfiguration.java    |  21 ++--
 .../src/main/docs/freemarker-starter.adoc          |   2 +-
 .../FreemarkerComponentConfiguration.java          |   7 +-
 .../src/main/docs/ganglia-starter.adoc             |   2 +-
 .../springboot/GangliaComponentConfiguration.java  |   7 +-
 .../src/main/docs/google-bigquery-starter.adoc     |   4 +-
 .../GoogleBigQueryComponentConfiguration.java      |   8 +-
 .../GoogleBigQuerySQLComponentConfiguration.java   |   8 +-
 .../src/main/docs/google-calendar-starter.adoc     |   8 +-
 .../GoogleCalendarComponentConfiguration.java      |  14 +--
 ...GoogleCalendarStreamComponentConfiguration.java |  14 +--
 .../src/main/docs/google-drive-starter.adoc        |   4 +-
 .../GoogleDriveComponentConfiguration.java         |  14 +--
 .../src/main/docs/google-mail-starter.adoc         |   8 +-
 .../GoogleMailComponentConfiguration.java          |  14 +--
 .../GoogleMailStreamComponentConfiguration.java    |  14 +--
 .../src/main/docs/google-sheets-starter.adoc       |   8 +-
 .../GoogleSheetsComponentConfiguration.java        |  14 +--
 .../GoogleSheetsStreamComponentConfiguration.java  |  14 +--
 .../src/main/docs/grape-starter.adoc               |   2 +-
 .../springboot/GrapeComponentConfiguration.java    |   7 +-
 .../src/main/docs/guava-eventbus-starter.adoc      |   2 +-
 .../GuavaEventBusComponentConfiguration.java       |   7 +-
 .../src/main/docs/hazelcast-starter.adoc           |  22 ++--
 ...azelcastAtomicnumberComponentConfiguration.java |   7 +-
 .../HazelcastInstanceComponentConfiguration.java   |   7 +-
 .../HazelcastListComponentConfiguration.java       |   7 +-
 .../HazelcastMapComponentConfiguration.java        |   7 +-
 .../HazelcastMultimapComponentConfiguration.java   |   7 +-
 .../HazelcastQueueComponentConfiguration.java      |   7 +-
 ...zelcastReplicatedmapComponentConfiguration.java |   7 +-
 .../HazelcastRingbufferComponentConfiguration.java |   7 +-
 .../HazelcastSedaComponentConfiguration.java       |   7 +-
 .../HazelcastSetComponentConfiguration.java        |   7 +-
 .../HazelcastTopicComponentConfiguration.java      |   7 +-
 .../src/main/docs/hbase-starter.adoc               |   2 +-
 .../springboot/HBaseComponentConfiguration.java    |   7 +-
 .../src/main/docs/hdfs-starter.adoc                |   2 +-
 .../springboot/HdfsComponentConfiguration.java     |   7 +-
 .../src/main/docs/http-starter.adoc                |  18 ++--
 .../springboot/HttpComponentConfiguration.java     |  67 +++++++-----
 .../src/main/docs/iec60870-starter.adoc            |   4 +-
 .../springboot/ClientComponentConfiguration.java   |   8 +-
 .../springboot/ServerComponentConfiguration.java   |   8 +-
 .../src/main/docs/ignite-starter.adoc              |  42 ++++----
 .../IgniteCacheComponentConfiguration.java         |  20 ++--
 .../IgniteComputeComponentConfiguration.java       |  20 ++--
 .../IgniteEventsComponentConfiguration.java        |  20 ++--
 .../IgniteIdGenComponentConfiguration.java         |  20 ++--
 .../IgniteMessagingComponentConfiguration.java     |  20 ++--
 .../IgniteQueueComponentConfiguration.java         |  20 ++--
 .../IgniteSetComponentConfiguration.java           |  20 ++--
 .../src/main/docs/infinispan-starter.adoc          |  22 ++--
 .../InfinispanComponentConfiguration.java          |  71 ++++++------
 .../src/main/docs/influxdb-starter.adoc            |   2 +-
 .../springboot/InfluxDbComponentConfiguration.java |   7 +-
 .../src/main/docs/jcache-starter.adoc              |   2 +-
 .../springboot/JCacheComponentConfiguration.java   |   7 +-
 .../src/main/docs/jdbc-starter.adoc                |   3 +-
 .../springboot/JdbcComponentConfiguration.java     |   7 +-
 .../src/main/docs/jetty-starter.adoc               |  16 +--
 .../JettyHttpComponentConfiguration9.java          |  58 +++++-----
 .../src/main/docs/jgroups-raft-starter.adoc        |   4 +-
 .../JGroupsRaftComponentConfiguration.java         |  14 +--
 .../src/main/docs/jgroups-starter.adoc             |   2 +-
 .../springboot/JGroupsComponentConfiguration.java  |   7 +-
 .../src/main/docs/jira-starter.adoc                |   2 +-
 .../springboot/JiraComponentConfiguration.java     |   7 +-
 .../src/main/docs/jms-starter.adoc                 |  34 +++---
 .../jms/springboot/JmsComponentConfiguration.java  | 120 +++++++++++----------
 .../src/main/docs/jolt-starter.adoc                |   2 +-
 .../springboot/JoltComponentConfiguration.java     |   7 +-
 .../src/main/docs/jooq-starter.adoc                |   4 +-
 .../springboot/JooqComponentConfiguration.java     |  14 +--
 .../src/main/docs/jpa-starter.adoc                 |   4 +-
 .../jpa/springboot/JpaComponentConfiguration.java  |  16 +--
 .../src/main/docs/jslt-starter.adoc                |   2 +-
 .../springboot/JsltComponentConfiguration.java     |   7 +-
 .../src/main/docs/jt400-starter.adoc               |   2 +-
 .../springboot/Jt400ComponentConfiguration.java    |   7 +-
 .../src/main/docs/kafka-starter.adoc               |  20 ++--
 .../springboot/KafkaComponentConfiguration.java    |  74 +++++++------
 .../src/main/docs/log-starter.adoc                 |   2 +-
 .../log/springboot/LogComponentConfiguration.java  |   7 +-
 .../src/main/docs/lucene-starter.adoc              |   4 +-
 .../springboot/LuceneComponentConfiguration.java   |  14 +--
 .../src/main/docs/lumberjack-starter.adoc          |   2 +-
 .../LumberjackComponentConfiguration.java          |   8 +-
 .../src/main/docs/mail-starter.adoc                |  20 ++--
 .../springboot/MailComponentConfiguration.java     |  71 ++++++------
 .../src/main/docs/master-starter.adoc              |   4 +-
 .../springboot/MasterComponentConfiguration.java   |  14 +--
 .../src/main/docs/metrics-starter.adoc             |   2 +-
 .../springboot/MetricsComponentConfiguration.java  |   7 +-
 .../src/main/docs/micrometer-starter.adoc          |   2 +-
 .../MicrometerComponentConfiguration.java          |   7 +-
 .../src/main/docs/milo-starter.adoc                |  10 +-
 .../MiloClientComponentConfiguration.java          |   7 +-
 .../MiloServerComponentConfiguration.java          |  29 ++---
 .../src/main/docs/mina-starter.adoc                |   6 +-
 .../springboot/MinaComponentConfiguration.java     |  22 ++--
 .../src/main/docs/minio-starter.adoc               |  14 +--
 .../springboot/MinioComponentConfiguration.java    |  49 +++++----
 .../src/main/docs/mllp-starter.adoc                |   2 +-
 .../springboot/MllpComponentConfiguration.java     |   7 +-
 .../src/main/docs/mongodb-starter.adoc             |   2 +-
 .../springboot/MongoDbComponentConfiguration.java  |   7 +-
 .../src/main/docs/msv-starter.adoc                 |   4 +-
 .../msv/springboot/MsvComponentConfiguration.java  |  15 +--
 .../src/main/docs/mustache-starter.adoc            |   2 +-
 .../springboot/MustacheComponentConfiguration.java |   7 +-
 .../src/main/docs/mybatis-starter.adoc             |   4 +-
 .../MyBatisBeanComponentConfiguration.java         |   7 +-
 .../springboot/MyBatisComponentConfiguration.java  |   7 +-
 .../src/main/docs/nagios-starter.adoc              |   2 +-
 .../springboot/NagiosComponentConfiguration.java   |   7 +-
 .../src/main/docs/netty-http-starter.adoc          |  28 ++---
 .../NettyHttpComponentConfiguration.java           | 103 ++++++++++--------
 .../src/main/docs/netty-starter.adoc               |  22 ++--
 .../springboot/NettyComponentConfiguration.java    |  80 ++++++++------
 .../src/main/docs/olingo2-starter.adoc             |  14 +--
 .../springboot/Olingo2ComponentConfiguration.java  |  51 +++++----
 .../src/main/docs/olingo4-starter.adoc             |  10 +-
 .../springboot/Olingo4ComponentConfiguration.java  |  37 ++++---
 .../src/main/docs/paho-starter.adoc                |  12 +--
 .../springboot/PahoComponentConfiguration.java     |  41 +++----
 .../src/main/docs/platform-http-starter.adoc       |   2 +-
 .../PlatformHttpComponentConfiguration.java        |   7 +-
 .../src/main/docs/pulsar-starter.adoc              |  12 +--
 .../springboot/PulsarComponentConfiguration.java   |  42 ++++----
 .../src/main/docs/quartz-starter.adoc              |   4 +-
 .../springboot/QuartzComponentConfiguration.java   |  14 +--
 .../src/main/docs/quickfix-starter.adoc            |   6 +-
 .../QuickfixjComponentConfiguration.java           |  21 ++--
 .../src/main/docs/rabbitmq-starter.adoc            |   6 +-
 .../springboot/RabbitMQComponentConfiguration.java |  21 ++--
 .../src/main/docs/reactive-streams-starter.adoc    |   2 +-
 .../ReactiveStreamsComponentConfiguration.java     |   7 +-
 .../src/main/docs/rest-openapi-starter.adoc        |   2 +-
 .../RestOpenApiComponentConfiguration.java         |   8 +-
 .../src/main/docs/rest-swagger-starter.adoc        |   2 +-
 .../RestSwaggerComponentConfiguration.java         |   8 +-
 .../src/main/docs/resteasy-starter.adoc            |   2 +-
 .../springboot/ResteasyComponentConfiguration.java |   8 +-
 .../src/main/docs/robotframework-starter.adoc      |   2 +-
 .../RobotFrameworkComponentConfiguration.java      |   7 +-
 .../src/main/docs/salesforce-starter.adoc          |  18 ++--
 .../SalesforceComponentConfiguration.java          |  62 ++++++-----
 .../src/main/docs/saxon-starter.adoc               |   4 +-
 .../springboot/XQueryComponentConfiguration.java   |  14 +--
 .../src/main/docs/seda-starter.adoc                |   2 +-
 .../springboot/SedaComponentConfiguration.java     |   9 +-
 .../src/main/docs/service-starter.adoc             |   4 +-
 .../springboot/ServiceComponentConfiguration.java  |  14 +--
 .../src/main/docs/servicenow-starter.adoc          |  10 +-
 .../ServiceNowComponentConfiguration.java          |  37 ++++---
 .../src/main/docs/servlet-starter.adoc             |   8 +-
 .../springboot/ServletComponentConfiguration.java  |  29 ++---
 .../src/main/docs/sjms-starter.adoc                |  20 ++--
 .../SjmsBatchComponentConfiguration.java           |  15 +--
 .../springboot/SjmsComponentConfiguration.java     |  60 ++++++-----
 .../src/main/docs/sjms2-starter.adoc               |  16 +--
 .../springboot/Sjms2ComponentConfiguration.java    |  60 ++++++-----
 .../src/main/docs/smpp-starter.adoc                |   4 +-
 .../springboot/SmppComponentConfiguration.java     |  15 +--
 .../src/main/docs/spark-starter.adoc               |   4 +-
 .../springboot/SparkComponentConfiguration.java    |  14 +--
 .../src/main/docs/splunk-starter.adoc              |   2 +-
 .../springboot/SplunkComponentConfiguration.java   |   8 +-
 .../src/main/docs/spring-batch-starter.adoc        |   4 +-
 .../SpringBatchComponentConfiguration.java         |  14 +--
 .../src/main/docs/sql-starter.adoc                 |   4 +-
 .../sql/springboot/SqlComponentConfiguration.java  |   7 +-
 .../SqlStoredComponentConfiguration.java           |   7 +-
 .../src/main/docs/ssh-starter.adoc                 |   4 +-
 .../ssh/springboot/SshComponentConfiguration.java  |  14 +--
 .../src/main/docs/stomp-starter.adoc               |   8 +-
 .../springboot/StompComponentConfiguration.java    |  30 +++---
 .../src/main/docs/stub-starter.adoc                |   2 +-
 .../springboot/StubComponentConfiguration.java     |   9 +-
 .../src/main/docs/telegram-starter.adoc            |   4 +-
 .../springboot/TelegramComponentConfiguration.java |  14 +--
 .../src/main/docs/twilio-starter.adoc              |   4 +-
 .../springboot/TwilioComponentConfiguration.java   |  14 +--
 .../src/main/docs/undertow-starter.adoc            |  10 +-
 .../springboot/UndertowComponentConfiguration.java |  35 +++---
 .../src/main/docs/validator-starter.adoc           |   2 +-
 .../ValidatorComponentConfiguration.java           |   8 +-
 .../src/main/docs/velocity-starter.adoc            |   2 +-
 .../springboot/VelocityComponentConfiguration.java |   7 +-
 .../src/main/docs/vertx-http-starter.adoc          |  10 +-
 .../VertxHttpComponentConfiguration.java           |  37 ++++---
 .../src/main/docs/vertx-starter.adoc               |   6 +-
 .../springboot/VertxComponentConfiguration.java    |  21 ++--
 .../src/main/docs/vertx-websocket-starter.adoc     |   6 +-
 .../VertxWebsocketComponentConfiguration.java      |  21 ++--
 .../camel-vm-starter/src/main/docs/vm-starter.adoc |   2 +-
 .../vm/springboot/VmComponentConfiguration.java    |   9 +-
 .../src/main/docs/web3j-starter.adoc               |  20 ++--
 .../springboot/Web3jComponentConfiguration.java    |  63 +++++------
 .../src/main/docs/webhook-starter.adoc             |   2 +-
 .../springboot/WebhookComponentConfiguration.java  |   7 +-
 .../src/main/docs/websocket-jsr356-starter.adoc    |   2 +-
 .../JSR356WebSocketComponentConfiguration.java     |   7 +-
 .../src/main/docs/websocket-starter.adoc           |   4 +-
 .../WebsocketComponentConfiguration.java           |  15 +--
 .../src/main/docs/wordpress-starter.adoc           |   4 +-
 .../WordpressComponentConfiguration.java           |  14 +--
 .../camel-xj-starter/src/main/docs/xj-starter.adoc |   8 +-
 .../xj/springboot/XJComponentConfiguration.java    |  28 ++---
 .../src/main/docs/xmlsecurity-starter.adoc         |  26 ++---
 .../XmlSignerComponentConfiguration.java           |  41 +++----
 .../XmlVerifierComponentConfiguration.java         |  51 +++++----
 .../src/main/docs/xslt-saxon-starter.adoc          |   8 +-
 .../XsltSaxonComponentConfiguration.java           |  28 ++---
 .../src/main/docs/xslt-starter.adoc                |   6 +-
 .../springboot/XsltComponentConfiguration.java     |  21 ++--
 .../src/main/docs/yammer-starter.adoc              |   6 +-
 .../springboot/YammerComponentConfiguration.java   |  20 ++--
 .../src/main/docs/zendesk-starter.adoc             |   4 +-
 .../springboot/ZendeskComponentConfiguration.java  |  14 +--
 .../src/main/docs/zookeeper-master-starter.adoc    |   4 +-
 .../springboot/MasterComponentConfiguration.java   |  14 +--
 .../src/main/docs/zookeeper-starter.adoc           |   2 +-
 .../ZooKeeperComponentConfiguration.java           |   7 +-
 docs/modules/ROOT/pages/activemq-starter.adoc      |  34 +++---
 docs/modules/ROOT/pages/ahc-starter.adoc           |  10 +-
 docs/modules/ROOT/pages/ahc-ws-starter.adoc        |  10 +-
 docs/modules/ROOT/pages/amqp-starter.adoc          |  34 +++---
 docs/modules/ROOT/pages/apns-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/arangodb-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/as2-starter.adoc           |   2 +-
 .../ROOT/pages/atmosphere-websocket-starter.adoc   |   8 +-
 docs/modules/ROOT/pages/atomix-starter.adoc        |  60 +++++------
 docs/modules/ROOT/pages/avro-rpc-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws-cw-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/aws-ddb-starter.adoc       |  10 +-
 docs/modules/ROOT/pages/aws-ec2-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-ecs-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-eks-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-iam-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-kinesis-starter.adoc   |   8 +-
 docs/modules/ROOT/pages/aws-kms-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-lambda-starter.adoc    |   4 +-
 docs/modules/ROOT/pages/aws-mq-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/aws-msk-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-s3-starter.adoc        |   8 +-
 docs/modules/ROOT/pages/aws-ses-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-sns-starter.adoc       |   6 +-
 docs/modules/ROOT/pages/aws-sqs-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws-swf-starter.adoc       |  14 +--
 docs/modules/ROOT/pages/aws-translate-starter.adoc |   4 +-
 docs/modules/ROOT/pages/aws2-athena-starter.adoc   |   4 +-
 docs/modules/ROOT/pages/aws2-cw-starter.adoc       |   6 +-
 docs/modules/ROOT/pages/aws2-ddb-starter.adoc      |  10 +-
 docs/modules/ROOT/pages/aws2-ec2-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-ecs-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-eks-starter.adoc      |   4 +-
 .../ROOT/pages/aws2-eventbridge-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws2-iam-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-kinesis-starter.adoc  |   8 +-
 docs/modules/ROOT/pages/aws2-kms-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-lambda-starter.adoc   |   4 +-
 docs/modules/ROOT/pages/aws2-mq-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws2-msk-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-s3-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/aws2-ses-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-sns-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-sqs-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/aws2-sts-starter.adoc      |   4 +-
 .../modules/ROOT/pages/aws2-translate-starter.adoc |   4 +-
 .../ROOT/pages/azure-eventhubs-starter.adoc        |  10 +-
 docs/modules/ROOT/pages/azure-starter.adoc         |  12 +--
 .../ROOT/pages/azure-storage-blob-starter.adoc     |   8 +-
 .../ROOT/pages/azure-storage-queue-starter.adoc    |  12 +--
 .../modules/ROOT/pages/bean-validator-starter.adoc |  10 +-
 docs/modules/ROOT/pages/beanstalk-starter.adoc     |   2 +-
 docs/modules/ROOT/pages/box-starter.adoc           |   6 +-
 docs/modules/ROOT/pages/braintree-starter.adoc     |   2 +-
 docs/modules/ROOT/pages/caffeine-starter.adoc      |  20 ++--
 docs/modules/ROOT/pages/cmis-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/cometd-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/consul-starter.adoc        |  16 +--
 docs/modules/ROOT/pages/corda-starter.adoc         |   6 +-
 docs/modules/ROOT/pages/crypto-cms-starter.adoc    |   4 +-
 docs/modules/ROOT/pages/crypto-starter.adoc        |  14 +--
 docs/modules/ROOT/pages/cxf-starter.adoc           |   4 +-
 .../ROOT/pages/debezium-mongodb-starter.adoc       |  26 ++---
 .../modules/ROOT/pages/debezium-mysql-starter.adoc |  18 ++--
 .../ROOT/pages/debezium-postgres-starter.adoc      |  22 ++--
 .../ROOT/pages/debezium-sqlserver-starter.adoc     |  18 ++--
 docs/modules/ROOT/pages/directvm-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/docker-starter.adoc        |   2 +-
 docs/modules/ROOT/pages/ehcache-starter.adoc       |   8 +-
 .../ROOT/pages/elasticsearch-rest-starter.adoc     |   2 +-
 docs/modules/ROOT/pages/elsql-starter.adoc         |   5 +-
 docs/modules/ROOT/pages/etcd-starter.adoc          |  18 ++--
 docs/modules/ROOT/pages/facebook-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/fhir-starter.adoc          |   8 +-
 docs/modules/ROOT/pages/file-watch-starter.adoc    |   2 +-
 docs/modules/ROOT/pages/flink-starter.adoc         |   6 +-
 docs/modules/ROOT/pages/freemarker-starter.adoc    |   2 +-
 docs/modules/ROOT/pages/ganglia-starter.adoc       |   2 +-
 .../ROOT/pages/google-bigquery-starter.adoc        |   4 +-
 .../ROOT/pages/google-calendar-starter.adoc        |   8 +-
 docs/modules/ROOT/pages/google-drive-starter.adoc  |   4 +-
 docs/modules/ROOT/pages/google-mail-starter.adoc   |   8 +-
 docs/modules/ROOT/pages/google-sheets-starter.adoc |   8 +-
 docs/modules/ROOT/pages/grape-starter.adoc         |   2 +-
 .../modules/ROOT/pages/guava-eventbus-starter.adoc |   2 +-
 docs/modules/ROOT/pages/hazelcast-starter.adoc     |  22 ++--
 docs/modules/ROOT/pages/hbase-starter.adoc         |   2 +-
 docs/modules/ROOT/pages/hdfs-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/http-starter.adoc          |  18 ++--
 docs/modules/ROOT/pages/iec60870-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/ignite-starter.adoc        |  42 ++++----
 docs/modules/ROOT/pages/infinispan-starter.adoc    |  22 ++--
 docs/modules/ROOT/pages/influxdb-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/jcache-starter.adoc        |   2 +-
 docs/modules/ROOT/pages/jdbc-starter.adoc          |   3 +-
 docs/modules/ROOT/pages/jetty-starter.adoc         |  16 +--
 docs/modules/ROOT/pages/jgroups-raft-starter.adoc  |   4 +-
 docs/modules/ROOT/pages/jgroups-starter.adoc       |   2 +-
 docs/modules/ROOT/pages/jira-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/jms-starter.adoc           |  34 +++---
 docs/modules/ROOT/pages/jolt-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/jooq-starter.adoc          |   4 +-
 docs/modules/ROOT/pages/jpa-starter.adoc           |   4 +-
 docs/modules/ROOT/pages/jslt-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/jt400-starter.adoc         |   2 +-
 docs/modules/ROOT/pages/kafka-starter.adoc         |  20 ++--
 docs/modules/ROOT/pages/log-starter.adoc           |   2 +-
 docs/modules/ROOT/pages/lucene-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/lumberjack-starter.adoc    |   2 +-
 docs/modules/ROOT/pages/mail-starter.adoc          |  20 ++--
 docs/modules/ROOT/pages/master-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/metrics-starter.adoc       |   2 +-
 docs/modules/ROOT/pages/micrometer-starter.adoc    |   2 +-
 docs/modules/ROOT/pages/milo-starter.adoc          |  10 +-
 docs/modules/ROOT/pages/mina-starter.adoc          |   6 +-
 docs/modules/ROOT/pages/minio-starter.adoc         |  14 +--
 docs/modules/ROOT/pages/mllp-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/mongodb-starter.adoc       |   2 +-
 docs/modules/ROOT/pages/msv-starter.adoc           |   4 +-
 docs/modules/ROOT/pages/mustache-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/mybatis-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/nagios-starter.adoc        |   2 +-
 docs/modules/ROOT/pages/netty-http-starter.adoc    |  28 ++---
 docs/modules/ROOT/pages/netty-starter.adoc         |  22 ++--
 docs/modules/ROOT/pages/olingo2-starter.adoc       |  14 +--
 docs/modules/ROOT/pages/olingo4-starter.adoc       |  10 +-
 docs/modules/ROOT/pages/paho-starter.adoc          |  12 +--
 docs/modules/ROOT/pages/platform-http-starter.adoc |   2 +-
 docs/modules/ROOT/pages/pulsar-starter.adoc        |  12 +--
 docs/modules/ROOT/pages/quartz-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/quickfix-starter.adoc      |   6 +-
 docs/modules/ROOT/pages/rabbitmq-starter.adoc      |   6 +-
 .../ROOT/pages/reactive-streams-starter.adoc       |   2 +-
 docs/modules/ROOT/pages/rest-openapi-starter.adoc  |   2 +-
 docs/modules/ROOT/pages/rest-swagger-starter.adoc  |   2 +-
 docs/modules/ROOT/pages/resteasy-starter.adoc      |   2 +-
 .../modules/ROOT/pages/robotframework-starter.adoc |   2 +-
 docs/modules/ROOT/pages/salesforce-starter.adoc    |  18 ++--
 docs/modules/ROOT/pages/saxon-starter.adoc         |   4 +-
 docs/modules/ROOT/pages/seda-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/service-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/servicenow-starter.adoc    |  10 +-
 docs/modules/ROOT/pages/servlet-starter.adoc       |   8 +-
 docs/modules/ROOT/pages/sjms-starter.adoc          |  20 ++--
 docs/modules/ROOT/pages/sjms2-starter.adoc         |  16 +--
 docs/modules/ROOT/pages/smpp-starter.adoc          |   4 +-
 docs/modules/ROOT/pages/spark-starter.adoc         |   4 +-
 docs/modules/ROOT/pages/splunk-starter.adoc        |   2 +-
 docs/modules/ROOT/pages/spring-batch-starter.adoc  |   4 +-
 docs/modules/ROOT/pages/sql-starter.adoc           |   4 +-
 docs/modules/ROOT/pages/ssh-starter.adoc           |   4 +-
 docs/modules/ROOT/pages/stomp-starter.adoc         |   8 +-
 docs/modules/ROOT/pages/stub-starter.adoc          |   2 +-
 docs/modules/ROOT/pages/telegram-starter.adoc      |   4 +-
 docs/modules/ROOT/pages/twilio-starter.adoc        |   4 +-
 docs/modules/ROOT/pages/undertow-starter.adoc      |  10 +-
 docs/modules/ROOT/pages/validator-starter.adoc     |   2 +-
 docs/modules/ROOT/pages/velocity-starter.adoc      |   2 +-
 docs/modules/ROOT/pages/vertx-http-starter.adoc    |  10 +-
 docs/modules/ROOT/pages/vertx-starter.adoc         |   6 +-
 .../ROOT/pages/vertx-websocket-starter.adoc        |   6 +-
 docs/modules/ROOT/pages/vm-starter.adoc            |   2 +-
 docs/modules/ROOT/pages/web3j-starter.adoc         |  20 ++--
 docs/modules/ROOT/pages/webhook-starter.adoc       |   2 +-
 .../ROOT/pages/websocket-jsr356-starter.adoc       |   2 +-
 docs/modules/ROOT/pages/websocket-starter.adoc     |   4 +-
 docs/modules/ROOT/pages/wordpress-starter.adoc     |   4 +-
 docs/modules/ROOT/pages/xj-starter.adoc            |   8 +-
 docs/modules/ROOT/pages/xmlsecurity-starter.adoc   |  26 ++---
 docs/modules/ROOT/pages/xslt-saxon-starter.adoc    |   8 +-
 docs/modules/ROOT/pages/xslt-starter.adoc          |   6 +-
 docs/modules/ROOT/pages/yammer-starter.adoc        |   6 +-
 docs/modules/ROOT/pages/zendesk-starter.adoc       |   4 +-
 .../ROOT/pages/zookeeper-master-starter.adoc       |   4 +-
 docs/modules/ROOT/pages/zookeeper-starter.adoc     |   2 +-
 565 files changed, 3985 insertions(+), 3342 deletions(-)

diff --git a/components-starter/camel-activemq-starter/src/main/docs/activemq-starter.adoc b/components-starter/camel-activemq-starter/src/main/docs/activemq-starter.adoc
index 0d0e4e8..6a5b34c 100644
--- a/components-starter/camel-activemq-starter/src/main/docs/activemq-starter.adoc
+++ b/components-starter/camel-activemq-starter/src/main/docs/activemq-starter.adoc
@@ -43,30 +43,30 @@ The component supports 101 options, which are listed below.
 | *camel.component.activemq.cache-level-name* | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. | CACHE_AUTO | String
 | *camel.component.activemq.client-id* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
 | *camel.component.activemq.concurrent-consumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | Integer
-| *camel.component.activemq.configuration* | To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type. |  | String
-| *camel.component.activemq.connection-factory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type. |  | String
+| *camel.component.activemq.configuration* | To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type. |  | JmsConfiguration
+| *camel.component.activemq.connection-factory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type. |  | ConnectionFactory
 | *camel.component.activemq.consumer-type* | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.sprin [...]
 | *camel.component.activemq.correlation-property* | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
 | *camel.component.activemq.default-task-executor-type* | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoi [...]
 | *camel.component.activemq.delivery-delay* | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | Long
 | *camel.component.activemq.delivery-mode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. |  | Integer
 | *camel.component.activemq.delivery-persistent* | Specifies whether persistent delivery is used by default. | true | Boolean
-| *camel.component.activemq.destination-resolver* | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type. |  | String
+| *camel.component.activemq.destination-resolver* | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type. |  | DestinationResolver
 | *camel.component.activemq.disable-reply-to* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between differ [...]
 | *camel.component.activemq.disable-time-to-live* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. T [...]
 | *camel.component.activemq.durable-subscription-name* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
 | *camel.component.activemq.eager-loading-of-properties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | Boolean
 | *camel.component.activemq.eager-poison-body* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
 | *camel.component.activemq.enabled* | Whether to enable auto configuration of the activemq component. This is enabled by default. |  | Boolean
-| *camel.component.activemq.error-handler* | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custo [...]
+| *camel.component.activemq.error-handler* | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custo [...]
 | *camel.component.activemq.error-handler-log-stack-trace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | Boolean
 | *camel.component.activemq.error-handler-logging-level* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. |  | LoggingLevel
-| *camel.component.activemq.exception-listener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type. |  | String
+| *camel.component.activemq.exception-listener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type. |  | ExceptionListener
 | *camel.component.activemq.explicit-qos-enabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
 | *camel.component.activemq.expose-listener-session* | Specifies whether the listener session should be exposed when consuming messages. | false | Boolean
 | *camel.component.activemq.force-send-original-message* | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | Boolean
 | *camel.component.activemq.format-date-headers-to-iso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | Boolean
-| *camel.component.activemq.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.activemq.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.activemq.idle-consumer-limit* | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | Integer
 | *camel.component.activemq.idle-task-execution-limit* | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | Integer
 | *camel.component.activemq.include-all-jmsx-properties* | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | Boolean
@@ -78,18 +78,18 @@ The component supports 101 options, which are listed below.
 | *camel.component.activemq.map-jms-message* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | Boolean
 | *camel.component.activemq.max-concurrent-consumers* | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | Integer
 | *camel.component.activemq.max-messages-per-task* | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | Integer
-| *camel.component.activemq.message-converter* | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type. |  | String
-| *camel.component.activemq.message-created-strategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type. |  | String
+| *camel.component.activemq.message-converter* | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type. |  | MessageConverter
+| *camel.component.activemq.message-created-strategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type. |  | MessageCreatedStrategy
 | *camel.component.activemq.message-id-enabled* | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | Boolean
-| *camel.component.activemq.message-listener-container-factory* | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type. |  | String
+| *camel.component.activemq.message-listener-container-factory* | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type. |  | MessageListenerContainerFactory
 | *camel.component.activemq.message-timestamp-enabled* | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | Boolean
 | *camel.component.activemq.password* | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *camel.component.activemq.preserve-message-qos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The e [...]
 | *camel.component.activemq.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. | 4 | Integer
 | *camel.component.activemq.pub-sub-no-local* | Specifies whether to inhibit the delivery of messages published by its own connection. | false | Boolean
-| *camel.component.activemq.queue-browse-strategy* | To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type. |  | String
-| *camel.component.activemq.receive-timeout* | The timeout for receiving messages (in milliseconds). The option is a long type. | 1000 | String
-| *camel.component.activemq.recovery-interval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type. | 5000 | String
+| *camel.component.activemq.queue-browse-strategy* | To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type. |  | QueueBrowseStrategy
+| *camel.component.activemq.receive-timeout* | The timeout for receiving messages (in milliseconds). The option is a long type. | 1000 | Long
+| *camel.component.activemq.recovery-interval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type. | 5000 | Long
 | *camel.component.activemq.reply-to* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *camel.component.activemq.reply-to-cache-level-name* | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary [...]
 | *camel.component.activemq.reply-to-concurrent-consumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | Integer
@@ -100,19 +100,19 @@ The component supports 101 options, which are listed below.
 | *camel.component.activemq.reply-to-override* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
 | *camel.component.activemq.reply-to-same-destination-allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | Boolean
 | *camel.component.activemq.reply-to-type* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implicat [...]
-| *camel.component.activemq.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type. | 20000 | String
-| *camel.component.activemq.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type. | 1000 | String
+| *camel.component.activemq.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type. | 20000 | Long
+| *camel.component.activemq.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type. | 1000 | Long
 | *camel.component.activemq.selector* | Sets the JMS selector to use |  | String
 | *camel.component.activemq.stream-message-type-enabled* | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the Strea [...]
 | *camel.component.activemq.subscription-durable* | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches  [...]
 | *camel.component.activemq.subscription-name* | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires  [...]
 | *camel.component.activemq.subscription-shared* | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combine [...]
-| *camel.component.activemq.task-executor* | Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type. |  | String
+| *camel.component.activemq.task-executor* | Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type. |  | TaskExecutor
 | *camel.component.activemq.test-connection-on-startup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | Boolean
 | *camel.component.activemq.time-to-live* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | Long
 | *camel.component.activemq.transacted* | Specifies whether to use transacted mode | false | Boolean
 | *camel.component.activemq.transacted-in-out* | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction conte [...]
-| *camel.component.activemq.transaction-manager* | The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type. |  | String
+| *camel.component.activemq.transaction-manager* | The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type. |  | PlatformTransactionManager
 | *camel.component.activemq.transaction-name* | The name of the transaction to use. |  | String
 | *camel.component.activemq.transaction-timeout* | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | Integer
 | *camel.component.activemq.transfer-exception* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this opti [...]
@@ -123,7 +123,7 @@ The component supports 101 options, which are listed below.
 | *camel.component.activemq.use-single-connection* | Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default. | false | Boolean
 | *camel.component.activemq.username* | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *camel.component.activemq.wait-for-provision-correlation-to-be-updated-counter* | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | Integer
-| *camel.component.activemq.wait-for-provision-correlation-to-be-updated-thread-sleeping-time* | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type. | 100 | String
+| *camel.component.activemq.wait-for-provision-correlation-to-be-updated-thread-sleeping-time* | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type. | 100 | Long
 | *camel.component.activemq.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
index 7a140d1..47e4c8f 100644
--- a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
+++ b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConfiguration.java
@@ -17,16 +17,28 @@
 package org.apache.camel.component.activemq.springboot;
 
 import javax.annotation.Generated;
+import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.component.activemq.ActiveMQComponent;
 import org.apache.camel.component.jms.ConsumerType;
 import org.apache.camel.component.jms.DefaultTaskExecutorType;
+import org.apache.camel.component.jms.JmsConfiguration;
 import org.apache.camel.component.jms.JmsKeyFormatStrategy;
 import org.apache.camel.component.jms.JmsMessageType;
+import org.apache.camel.component.jms.MessageCreatedStrategy;
+import org.apache.camel.component.jms.MessageListenerContainerFactory;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
 import org.apache.camel.component.jms.ReplyToType;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.jms.support.converter.MessageConverter;
+import org.springframework.jms.support.destination.DestinationResolver;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.util.ErrorHandler;
 
 /**
  * Send messages to (or consume from) Apache ActiveMQ. This component extends
@@ -63,7 +75,7 @@ public class ActiveMQComponentConfiguration
      * either on the component or endpoint. The option is a
      * javax.jms.ConnectionFactory type.
      */
-    private String connectionFactory;
+    private ConnectionFactory connectionFactory;
     /**
      * Specifies whether Camel ignores the JMSReplyTo header in messages. If
      * true, Camel does not send a reply back to the destination specified in
@@ -286,7 +298,7 @@ public class ActiveMQComponentConfiguration
      * Allows you to specify a custom task executor for consuming messages. The
      * option is a org.springframework.core.task.TaskExecutor type.
      */
-    private String taskExecutor;
+    private TaskExecutor taskExecutor;
     /**
      * Sets delivery delay to use for send calls for JMS. This option requires
      * JMS 2.0 compliant broker.
@@ -386,7 +398,7 @@ public class ActiveMQComponentConfiguration
      * value, and thus have per message individual timeout values. See also the
      * requestTimeoutCheckerInterval option. The option is a long type.
      */
-    private String requestTimeout = "20000";
+    private Long requestTimeout = 20000L;
     /**
      * When sending messages, specifies the time-to-live of the message (in
      * milliseconds).
@@ -526,7 +538,7 @@ public class ActiveMQComponentConfiguration
      * To use a shared JMS configuration. The option is a
      * org.apache.camel.component.jms.JmsConfiguration type.
      */
-    private String configuration;
+    private JmsConfiguration configuration;
     /**
      * A pluggable
      * org.springframework.jms.support.destination.DestinationResolver that
@@ -534,7 +546,7 @@ public class ActiveMQComponentConfiguration
      * destination in a JNDI registry). The option is a
      * org.springframework.jms.support.destination.DestinationResolver type.
      */
-    private String destinationResolver;
+    private DestinationResolver destinationResolver;
     /**
      * Specifies a org.springframework.util.ErrorHandler to be invoked in case
      * of any uncaught exceptions thrown while processing a Message. By default
@@ -545,13 +557,13 @@ public class ActiveMQComponentConfiguration
      * configure, than having to code a custom errorHandler. The option is a
      * org.springframework.util.ErrorHandler type.
      */
-    private String errorHandler;
+    private ErrorHandler errorHandler;
     /**
      * Specifies the JMS Exception Listener that is to be notified of any
      * underlying JMS exceptions. The option is a javax.jms.ExceptionListener
      * type.
      */
-    private String exceptionListener;
+    private ExceptionListener exceptionListener;
     /**
      * Specify the limit for the number of consumers that are allowed to be idle
      * at any given time.
@@ -601,14 +613,14 @@ public class ActiveMQComponentConfiguration
      * in control how to map to/from a javax.jms.Message. The option is a
      * org.springframework.jms.support.converter.MessageConverter type.
      */
-    private String messageConverter;
+    private MessageConverter messageConverter;
     /**
      * To use the given MessageCreatedStrategy which are invoked when Camel
      * creates new instances of javax.jms.Message objects when Camel is sending
      * a JMS message. The option is a
      * org.apache.camel.component.jms.MessageCreatedStrategy type.
      */
-    private String messageCreatedStrategy;
+    private MessageCreatedStrategy messageCreatedStrategy;
     /**
      * When sending, specifies whether message IDs should be added. This is just
      * an hint to the JMS broker. If the JMS provider accepts this hint, these
@@ -623,7 +635,7 @@ public class ActiveMQComponentConfiguration
      * Custom. The option is a
      * org.apache.camel.component.jms.MessageListenerContainerFactory type.
      */
-    private String messageListenerContainerFactory;
+    private MessageListenerContainerFactory messageListenerContainerFactory;
     /**
      * Specifies whether timestamps should be enabled by default on sending
      * messages. This is just an hint to the JMS broker. If the JMS provider
@@ -641,18 +653,18 @@ public class ActiveMQComponentConfiguration
      * To use a custom QueueBrowseStrategy when browsing queues. The option is a
      * org.apache.camel.component.jms.QueueBrowseStrategy type.
      */
-    private String queueBrowseStrategy;
+    private QueueBrowseStrategy queueBrowseStrategy;
     /**
      * The timeout for receiving messages (in milliseconds). The option is a
      * long type.
      */
-    private String receiveTimeout = "1000";
+    private Long receiveTimeout = 1000L;
     /**
      * Specifies the interval between recovery attempts, i.e. when a connection
      * is being refreshed, in milliseconds. The default is 5000 ms, that is, 5
      * seconds. The option is a long type.
      */
-    private String recoveryInterval = "5000";
+    private Long recoveryInterval = 5000L;
     /**
      * Configures how often Camel should check for timed out Exchanges when
      * doing request/reply over JMS. By default Camel checks once per second.
@@ -660,7 +672,7 @@ public class ActiveMQComponentConfiguration
      * this interval, to check more frequently. The timeout is determined by the
      * option requestTimeout. The option is a long type.
      */
-    private String requestTimeoutCheckerInterval = "1000";
+    private Long requestTimeoutCheckerInterval = 1000L;
     /**
      * If enabled and you are using Request Reply messaging (InOut) and an
      * Exchange failed on the consumer side, then the caused Exception will be
@@ -713,13 +725,13 @@ public class ActiveMQComponentConfiguration
      * Interval in millis to sleep each time while waiting for provisional
      * correlation id to be updated. The option is a long type.
      */
-    private String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = "100";
+    private Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = 100L;
     /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Allows to configure the default errorHandler logging level for logging
      * uncaught exceptions.
@@ -772,7 +784,7 @@ public class ActiveMQComponentConfiguration
      * The Spring transaction manager to use. The option is a
      * org.springframework.transaction.PlatformTransactionManager type.
      */
-    private String transactionManager;
+    private PlatformTransactionManager transactionManager;
     /**
      * The name of the transaction to use.
      */
@@ -799,11 +811,11 @@ public class ActiveMQComponentConfiguration
         this.clientId = clientId;
     }
 
-    public String getConnectionFactory() {
+    public ConnectionFactory getConnectionFactory() {
         return connectionFactory;
     }
 
-    public void setConnectionFactory(String connectionFactory) {
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
         this.connectionFactory = connectionFactory;
     }
 
@@ -1026,11 +1038,11 @@ public class ActiveMQComponentConfiguration
         this.replyToSameDestinationAllowed = replyToSameDestinationAllowed;
     }
 
-    public String getTaskExecutor() {
+    public TaskExecutor getTaskExecutor() {
         return taskExecutor;
     }
 
-    public void setTaskExecutor(String taskExecutor) {
+    public void setTaskExecutor(TaskExecutor taskExecutor) {
         this.taskExecutor = taskExecutor;
     }
 
@@ -1140,11 +1152,11 @@ public class ActiveMQComponentConfiguration
         this.replyToType = replyToType;
     }
 
-    public String getRequestTimeout() {
+    public Long getRequestTimeout() {
         return requestTimeout;
     }
 
-    public void setRequestTimeout(String requestTimeout) {
+    public void setRequestTimeout(Long requestTimeout) {
         this.requestTimeout = requestTimeout;
     }
 
@@ -1298,35 +1310,35 @@ public class ActiveMQComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public JmsConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(JmsConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getDestinationResolver() {
+    public DestinationResolver getDestinationResolver() {
         return destinationResolver;
     }
 
-    public void setDestinationResolver(String destinationResolver) {
+    public void setDestinationResolver(DestinationResolver destinationResolver) {
         this.destinationResolver = destinationResolver;
     }
 
-    public String getErrorHandler() {
+    public ErrorHandler getErrorHandler() {
         return errorHandler;
     }
 
-    public void setErrorHandler(String errorHandler) {
+    public void setErrorHandler(ErrorHandler errorHandler) {
         this.errorHandler = errorHandler;
     }
 
-    public String getExceptionListener() {
+    public ExceptionListener getExceptionListener() {
         return exceptionListener;
     }
 
-    public void setExceptionListener(String exceptionListener) {
+    public void setExceptionListener(ExceptionListener exceptionListener) {
         this.exceptionListener = exceptionListener;
     }
 
@@ -1379,19 +1391,20 @@ public class ActiveMQComponentConfiguration
         this.maxMessagesPerTask = maxMessagesPerTask;
     }
 
-    public String getMessageConverter() {
+    public MessageConverter getMessageConverter() {
         return messageConverter;
     }
 
-    public void setMessageConverter(String messageConverter) {
+    public void setMessageConverter(MessageConverter messageConverter) {
         this.messageConverter = messageConverter;
     }
 
-    public String getMessageCreatedStrategy() {
+    public MessageCreatedStrategy getMessageCreatedStrategy() {
         return messageCreatedStrategy;
     }
 
-    public void setMessageCreatedStrategy(String messageCreatedStrategy) {
+    public void setMessageCreatedStrategy(
+            MessageCreatedStrategy messageCreatedStrategy) {
         this.messageCreatedStrategy = messageCreatedStrategy;
     }
 
@@ -1403,12 +1416,12 @@ public class ActiveMQComponentConfiguration
         this.messageIdEnabled = messageIdEnabled;
     }
 
-    public String getMessageListenerContainerFactory() {
+    public MessageListenerContainerFactory getMessageListenerContainerFactory() {
         return messageListenerContainerFactory;
     }
 
     public void setMessageListenerContainerFactory(
-            String messageListenerContainerFactory) {
+            MessageListenerContainerFactory messageListenerContainerFactory) {
         this.messageListenerContainerFactory = messageListenerContainerFactory;
     }
 
@@ -1428,36 +1441,36 @@ public class ActiveMQComponentConfiguration
         this.pubSubNoLocal = pubSubNoLocal;
     }
 
-    public String getQueueBrowseStrategy() {
+    public QueueBrowseStrategy getQueueBrowseStrategy() {
         return queueBrowseStrategy;
     }
 
-    public void setQueueBrowseStrategy(String queueBrowseStrategy) {
+    public void setQueueBrowseStrategy(QueueBrowseStrategy queueBrowseStrategy) {
         this.queueBrowseStrategy = queueBrowseStrategy;
     }
 
-    public String getReceiveTimeout() {
+    public Long getReceiveTimeout() {
         return receiveTimeout;
     }
 
-    public void setReceiveTimeout(String receiveTimeout) {
+    public void setReceiveTimeout(Long receiveTimeout) {
         this.receiveTimeout = receiveTimeout;
     }
 
-    public String getRecoveryInterval() {
+    public Long getRecoveryInterval() {
         return recoveryInterval;
     }
 
-    public void setRecoveryInterval(String recoveryInterval) {
+    public void setRecoveryInterval(Long recoveryInterval) {
         this.recoveryInterval = recoveryInterval;
     }
 
-    public String getRequestTimeoutCheckerInterval() {
+    public Long getRequestTimeoutCheckerInterval() {
         return requestTimeoutCheckerInterval;
     }
 
     public void setRequestTimeoutCheckerInterval(
-            String requestTimeoutCheckerInterval) {
+            Long requestTimeoutCheckerInterval) {
         this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval;
     }
 
@@ -1503,20 +1516,21 @@ public class ActiveMQComponentConfiguration
         this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter;
     }
 
-    public String getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
+    public Long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
         return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
     }
 
     public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
-            String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
         this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
@@ -1578,11 +1592,12 @@ public class ActiveMQComponentConfiguration
         this.lazyCreateTransactionManager = lazyCreateTransactionManager;
     }
 
-    public String getTransactionManager() {
+    public PlatformTransactionManager getTransactionManager() {
         return transactionManager;
     }
 
-    public void setTransactionManager(String transactionManager) {
+    public void setTransactionManager(
+            PlatformTransactionManager transactionManager) {
         this.transactionManager = transactionManager;
     }
 
diff --git a/components-starter/camel-ahc-starter/src/main/docs/ahc-starter.adoc b/components-starter/camel-ahc-starter/src/main/docs/ahc-starter.adoc
index 45d3abb..b8a4695 100644
--- a/components-starter/camel-ahc-starter/src/main/docs/ahc-starter.adoc
+++ b/components-starter/camel-ahc-starter/src/main/docs/ahc-starter.adoc
@@ -25,13 +25,13 @@ The component supports 10 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.ahc.allow-java-serialized-object* | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | Boolean
-| *camel.component.ahc.binding* | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type. |  | String
-| *camel.component.ahc.client* | To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type. |  | String
-| *camel.component.ahc.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | String
+| *camel.component.ahc.binding* | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type. |  | AhcBinding
+| *camel.component.ahc.client* | To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type. |  | AsyncHttpClient
+| *camel.component.ahc.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | AsyncHttpClientConfig
 | *camel.component.ahc.enabled* | Whether to enable auto configuration of the ahc component. This is enabled by default. |  | Boolean
-| *camel.component.ahc.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.ahc.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.ahc.lazy-start-producer* | 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 c [...]
-| *camel.component.ahc.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
+| *camel.component.ahc.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | SSLContextParameters
 | *camel.component.ahc.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 | *camel.component.ahc.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
diff --git a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
index 2db6546..a124936 100644
--- a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
+++ b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java
@@ -17,7 +17,12 @@
 package org.apache.camel.component.ahc.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.ahc.AhcBinding;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.SSLContextParameters;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -67,24 +72,24 @@ public class AhcComponentConfiguration
      * AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding
      * type.
      */
-    private String binding;
+    private AhcBinding binding;
     /**
      * To use a custom AsyncHttpClient. The option is a
      * org.asynchttpclient.AsyncHttpClient type.
      */
-    private String client;
+    private AsyncHttpClient client;
     /**
      * To configure the AsyncHttpClient to use a custom
      * com.ning.http.client.AsyncHttpClientConfig instance. The option is a
      * org.asynchttpclient.AsyncHttpClientConfig type.
      */
-    private String clientConfig;
+    private AsyncHttpClientConfig clientConfig;
     /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Reference to a org.apache.camel.support.jsse.SSLContextParameters in the
      * Registry. Note that configuring this option will override any SSL/TLS
@@ -92,7 +97,7 @@ public class AhcComponentConfiguration
      * endpoint or component level. The option is a
      * org.apache.camel.support.jsse.SSLContextParameters type.
      */
-    private String sslContextParameters;
+    private SSLContextParameters sslContextParameters;
     /**
      * Enable usage of global SSL context parameters.
      */
@@ -125,43 +130,45 @@ public class AhcComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getBinding() {
+    public AhcBinding getBinding() {
         return binding;
     }
 
-    public void setBinding(String binding) {
+    public void setBinding(AhcBinding binding) {
         this.binding = binding;
     }
 
-    public String getClient() {
+    public AsyncHttpClient getClient() {
         return client;
     }
 
-    public void setClient(String client) {
+    public void setClient(AsyncHttpClient client) {
         this.client = client;
     }
 
-    public String getClientConfig() {
+    public AsyncHttpClientConfig getClientConfig() {
         return clientConfig;
     }
 
-    public void setClientConfig(String clientConfig) {
+    public void setClientConfig(AsyncHttpClientConfig clientConfig) {
         this.clientConfig = clientConfig;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
-    public String getSslContextParameters() {
+    public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
 
-    public void setSslContextParameters(String sslContextParameters) {
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
 
diff --git a/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws-starter.adoc b/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws-starter.adoc
index 852ffed..ff4a8df 100644
--- a/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws-starter.adoc
+++ b/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws-starter.adoc
@@ -25,14 +25,14 @@ The component supports 11 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.ahc-ws.allow-java-serialized-object* | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | Boolean
-| *camel.component.ahc-ws.binding* | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type. |  | String
+| *camel.component.ahc-ws.binding* | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type. |  | AhcBinding
 | *camel.component.ahc-ws.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.ahc-ws.client* | To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type. |  | String
-| *camel.component.ahc-ws.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | String
+| *camel.component.ahc-ws.client* | To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type. |  | AsyncHttpClient
+| *camel.component.ahc-ws.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | AsyncHttpClientConfig
 | *camel.component.ahc-ws.enabled* | Whether to enable auto configuration of the ahc-ws component. This is enabled by default. |  | Boolean
-| *camel.component.ahc-ws.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.ahc-ws.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.ahc-ws.lazy-start-producer* | 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 the [...]
-| *camel.component.ahc-ws.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
+| *camel.component.ahc-ws.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | SSLContextParameters
 | *camel.component.ahc-ws.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 | *camel.component.ahc-ws.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
diff --git a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
index bd7cea5..1be9f11 100644
--- a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
+++ b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
@@ -17,7 +17,12 @@
 package org.apache.camel.component.ahc.ws.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.ahc.AhcBinding;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.SSLContextParameters;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -76,24 +81,24 @@ public class WsComponentConfiguration
      * AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding
      * type.
      */
-    private String binding;
+    private AhcBinding binding;
     /**
      * To use a custom AsyncHttpClient. The option is a
      * org.asynchttpclient.AsyncHttpClient type.
      */
-    private String client;
+    private AsyncHttpClient client;
     /**
      * To configure the AsyncHttpClient to use a custom
      * com.ning.http.client.AsyncHttpClientConfig instance. The option is a
      * org.asynchttpclient.AsyncHttpClientConfig type.
      */
-    private String clientConfig;
+    private AsyncHttpClientConfig clientConfig;
     /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Reference to a org.apache.camel.support.jsse.SSLContextParameters in the
      * Registry. Note that configuring this option will override any SSL/TLS
@@ -101,7 +106,7 @@ public class WsComponentConfiguration
      * endpoint or component level. The option is a
      * org.apache.camel.support.jsse.SSLContextParameters type.
      */
-    private String sslContextParameters;
+    private SSLContextParameters sslContextParameters;
     /**
      * Enable usage of global SSL context parameters.
      */
@@ -142,43 +147,45 @@ public class WsComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getBinding() {
+    public AhcBinding getBinding() {
         return binding;
     }
 
-    public void setBinding(String binding) {
+    public void setBinding(AhcBinding binding) {
         this.binding = binding;
     }
 
-    public String getClient() {
+    public AsyncHttpClient getClient() {
         return client;
     }
 
-    public void setClient(String client) {
+    public void setClient(AsyncHttpClient client) {
         this.client = client;
     }
 
-    public String getClientConfig() {
+    public AsyncHttpClientConfig getClientConfig() {
         return clientConfig;
     }
 
-    public void setClientConfig(String clientConfig) {
+    public void setClientConfig(AsyncHttpClientConfig clientConfig) {
         this.clientConfig = clientConfig;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
-    public String getSslContextParameters() {
+    public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
 
-    public void setSslContextParameters(String sslContextParameters) {
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
 
diff --git a/components-starter/camel-amqp-starter/src/main/docs/amqp-starter.adoc b/components-starter/camel-amqp-starter/src/main/docs/amqp-starter.adoc
index 50e4e9a..ede4a86 100644
--- a/components-starter/camel-amqp-starter/src/main/docs/amqp-starter.adoc
+++ b/components-starter/camel-amqp-starter/src/main/docs/amqp-starter.adoc
@@ -42,30 +42,30 @@ The component supports 98 options, which are listed below.
 | *camel.component.amqp.cache-level-name* | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. | CACHE_AUTO | String
 | *camel.component.amqp.client-id* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
 | *camel.component.amqp.concurrent-consumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | Integer
-| *camel.component.amqp.configuration* | To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type. |  | String
-| *camel.component.amqp.connection-factory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type. |  | String
+| *camel.component.amqp.configuration* | To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type. |  | JmsConfiguration
+| *camel.component.amqp.connection-factory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type. |  | ConnectionFactory
 | *camel.component.amqp.consumer-type* | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springfra [...]
 | *camel.component.amqp.correlation-property* | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
 | *camel.component.amqp.default-task-executor-type* | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints  [...]
 | *camel.component.amqp.delivery-delay* | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | Long
 | *camel.component.amqp.delivery-mode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. |  | Integer
 | *camel.component.amqp.delivery-persistent* | Specifies whether persistent delivery is used by default. | true | Boolean
-| *camel.component.amqp.destination-resolver* | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type. |  | String
+| *camel.component.amqp.destination-resolver* | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type. |  | DestinationResolver
 | *camel.component.amqp.disable-reply-to* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different  [...]
 | *camel.component.amqp.disable-time-to-live* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then  [...]
 | *camel.component.amqp.durable-subscription-name* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
 | *camel.component.amqp.eager-loading-of-properties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | Boolean
 | *camel.component.amqp.eager-poison-body* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
 | *camel.component.amqp.enabled* | Whether to enable auto configuration of the amqp component. This is enabled by default. |  | Boolean
-| *camel.component.amqp.error-handler* | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom er [...]
+| *camel.component.amqp.error-handler* | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom er [...]
 | *camel.component.amqp.error-handler-log-stack-trace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | Boolean
 | *camel.component.amqp.error-handler-logging-level* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. |  | LoggingLevel
-| *camel.component.amqp.exception-listener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type. |  | String
+| *camel.component.amqp.exception-listener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type. |  | ExceptionListener
 | *camel.component.amqp.explicit-qos-enabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
 | *camel.component.amqp.expose-listener-session* | Specifies whether the listener session should be exposed when consuming messages. | false | Boolean
 | *camel.component.amqp.force-send-original-message* | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | Boolean
 | *camel.component.amqp.format-date-headers-to-iso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | Boolean
-| *camel.component.amqp.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.amqp.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.amqp.idle-consumer-limit* | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | Integer
 | *camel.component.amqp.idle-task-execution-limit* | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | Integer
 | *camel.component.amqp.include-all-jmsx-properties* | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | Boolean
@@ -78,18 +78,18 @@ The component supports 98 options, which are listed below.
 | *camel.component.amqp.map-jms-message* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | Boolean
 | *camel.component.amqp.max-concurrent-consumers* | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | Integer
 | *camel.component.amqp.max-messages-per-task* | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | Integer
-| *camel.component.amqp.message-converter* | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type. |  | String
-| *camel.component.amqp.message-created-strategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type. |  | String
+| *camel.component.amqp.message-converter* | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type. |  | MessageConverter
+| *camel.component.amqp.message-created-strategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type. |  | MessageCreatedStrategy
 | *camel.component.amqp.message-id-enabled* | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | Boolean
-| *camel.component.amqp.message-listener-container-factory* | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type. |  | String
+| *camel.component.amqp.message-listener-container-factory* | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type. |  | MessageListenerContainerFactory
 | *camel.component.amqp.message-timestamp-enabled* | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | Boolean
 | *camel.component.amqp.password* | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *camel.component.amqp.preserve-message-qos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The expli [...]
 | *camel.component.amqp.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. | 4 | Integer
 | *camel.component.amqp.pub-sub-no-local* | Specifies whether to inhibit the delivery of messages published by its own connection. | false | Boolean
-| *camel.component.amqp.queue-browse-strategy* | To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type. |  | String
-| *camel.component.amqp.receive-timeout* | The timeout for receiving messages (in milliseconds). The option is a long type. | 1000 | String
-| *camel.component.amqp.recovery-interval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type. | 5000 | String
+| *camel.component.amqp.queue-browse-strategy* | To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type. |  | QueueBrowseStrategy
+| *camel.component.amqp.receive-timeout* | The timeout for receiving messages (in milliseconds). The option is a long type. | 1000 | Long
+| *camel.component.amqp.recovery-interval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type. | 5000 | Long
 | *camel.component.amqp.reply-to* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *camel.component.amqp.reply-to-cache-level-name* | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary que [...]
 | *camel.component.amqp.reply-to-concurrent-consumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | Integer
@@ -100,19 +100,19 @@ The component supports 98 options, which are listed below.
 | *camel.component.amqp.reply-to-override* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
 | *camel.component.amqp.reply-to-same-destination-allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | Boolean
 | *camel.component.amqp.reply-to-type* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications [...]
-| *camel.component.amqp.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type. | 20000 | String
-| *camel.component.amqp.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type. | 1000 | String
+| *camel.component.amqp.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type. | 20000 | Long
+| *camel.component.amqp.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type. | 1000 | Long
 | *camel.component.amqp.selector* | Sets the JMS selector to use |  | String
 | *camel.component.amqp.stream-message-type-enabled* | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMes [...]
 | *camel.component.amqp.subscription-durable* | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the  [...]
 | *camel.component.amqp.subscription-name* | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS  [...]
 | *camel.component.amqp.subscription-shared* | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined wi [...]
-| *camel.component.amqp.task-executor* | Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type. |  | String
+| *camel.component.amqp.task-executor* | Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type. |  | TaskExecutor
 | *camel.component.amqp.test-connection-on-startup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | Boolean
 | *camel.component.amqp.time-to-live* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | Long
 | *camel.component.amqp.transacted* | Specifies whether to use transacted mode | false | Boolean
 | *camel.component.amqp.transacted-in-out* | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context,  [...]
-| *camel.component.amqp.transaction-manager* | The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type. |  | String
+| *camel.component.amqp.transaction-manager* | The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type. |  | PlatformTransactionManager
 | *camel.component.amqp.transaction-name* | The name of the transaction to use. |  | String
 | *camel.component.amqp.transaction-timeout* | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | Integer
 | *camel.component.amqp.transfer-exception* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option t [...]
@@ -120,7 +120,7 @@ The component supports 98 options, which are listed below.
 | *camel.component.amqp.use-message-id-as-correlation-id* | Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages. | false | Boolean
 | *camel.component.amqp.username* | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
 | *camel.component.amqp.wait-for-provision-correlation-to-be-updated-counter* | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | Integer
-| *camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time* | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type. | 100 | String
+| *camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time* | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type. | 100 | Long
 | *camel.component.amqp.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
index 8396771..565860a 100644
--- a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
+++ b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java
@@ -17,16 +17,28 @@
 package org.apache.camel.component.amqp.springboot;
 
 import javax.annotation.Generated;
+import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.component.amqp.AMQPComponent;
 import org.apache.camel.component.jms.ConsumerType;
 import org.apache.camel.component.jms.DefaultTaskExecutorType;
+import org.apache.camel.component.jms.JmsConfiguration;
 import org.apache.camel.component.jms.JmsKeyFormatStrategy;
 import org.apache.camel.component.jms.JmsMessageType;
+import org.apache.camel.component.jms.MessageCreatedStrategy;
+import org.apache.camel.component.jms.MessageListenerContainerFactory;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
 import org.apache.camel.component.jms.ReplyToType;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.jms.support.converter.MessageConverter;
+import org.springframework.jms.support.destination.DestinationResolver;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.util.ErrorHandler;
 
 /**
  * Messaging with AMQP protocol using Apache QPid Client.
@@ -56,7 +68,7 @@ public class AMQPComponentConfiguration
      * either on the component or endpoint. The option is a
      * javax.jms.ConnectionFactory type.
      */
-    private String connectionFactory;
+    private ConnectionFactory connectionFactory;
     /**
      * Specifies whether Camel ignores the JMSReplyTo header in messages. If
      * true, Camel does not send a reply back to the destination specified in
@@ -268,7 +280,7 @@ public class AMQPComponentConfiguration
      * Allows you to specify a custom task executor for consuming messages. The
      * option is a org.springframework.core.task.TaskExecutor type.
      */
-    private String taskExecutor;
+    private TaskExecutor taskExecutor;
     /**
      * Sets delivery delay to use for send calls for JMS. This option requires
      * JMS 2.0 compliant broker.
@@ -368,7 +380,7 @@ public class AMQPComponentConfiguration
      * value, and thus have per message individual timeout values. See also the
      * requestTimeoutCheckerInterval option. The option is a long type.
      */
-    private String requestTimeout = "20000";
+    private Long requestTimeout = 20000L;
     /**
      * When sending messages, specifies the time-to-live of the message (in
      * milliseconds).
@@ -508,7 +520,7 @@ public class AMQPComponentConfiguration
      * To use a shared JMS configuration. The option is a
      * org.apache.camel.component.jms.JmsConfiguration type.
      */
-    private String configuration;
+    private JmsConfiguration configuration;
     /**
      * A pluggable
      * org.springframework.jms.support.destination.DestinationResolver that
@@ -516,7 +528,7 @@ public class AMQPComponentConfiguration
      * destination in a JNDI registry). The option is a
      * org.springframework.jms.support.destination.DestinationResolver type.
      */
-    private String destinationResolver;
+    private DestinationResolver destinationResolver;
     /**
      * Specifies a org.springframework.util.ErrorHandler to be invoked in case
      * of any uncaught exceptions thrown while processing a Message. By default
@@ -527,13 +539,13 @@ public class AMQPComponentConfiguration
      * configure, than having to code a custom errorHandler. The option is a
      * org.springframework.util.ErrorHandler type.
      */
-    private String errorHandler;
+    private ErrorHandler errorHandler;
     /**
      * Specifies the JMS Exception Listener that is to be notified of any
      * underlying JMS exceptions. The option is a javax.jms.ExceptionListener
      * type.
      */
-    private String exceptionListener;
+    private ExceptionListener exceptionListener;
     /**
      * Specify the limit for the number of consumers that are allowed to be idle
      * at any given time.
@@ -583,14 +595,14 @@ public class AMQPComponentConfiguration
      * in control how to map to/from a javax.jms.Message. The option is a
      * org.springframework.jms.support.converter.MessageConverter type.
      */
-    private String messageConverter;
+    private MessageConverter messageConverter;
     /**
      * To use the given MessageCreatedStrategy which are invoked when Camel
      * creates new instances of javax.jms.Message objects when Camel is sending
      * a JMS message. The option is a
      * org.apache.camel.component.jms.MessageCreatedStrategy type.
      */
-    private String messageCreatedStrategy;
+    private MessageCreatedStrategy messageCreatedStrategy;
     /**
      * When sending, specifies whether message IDs should be added. This is just
      * an hint to the JMS broker. If the JMS provider accepts this hint, these
@@ -605,7 +617,7 @@ public class AMQPComponentConfiguration
      * Custom. The option is a
      * org.apache.camel.component.jms.MessageListenerContainerFactory type.
      */
-    private String messageListenerContainerFactory;
+    private MessageListenerContainerFactory messageListenerContainerFactory;
     /**
      * Specifies whether timestamps should be enabled by default on sending
      * messages. This is just an hint to the JMS broker. If the JMS provider
@@ -623,18 +635,18 @@ public class AMQPComponentConfiguration
      * To use a custom QueueBrowseStrategy when browsing queues. The option is a
      * org.apache.camel.component.jms.QueueBrowseStrategy type.
      */
-    private String queueBrowseStrategy;
+    private QueueBrowseStrategy queueBrowseStrategy;
     /**
      * The timeout for receiving messages (in milliseconds). The option is a
      * long type.
      */
-    private String receiveTimeout = "1000";
+    private Long receiveTimeout = 1000L;
     /**
      * Specifies the interval between recovery attempts, i.e. when a connection
      * is being refreshed, in milliseconds. The default is 5000 ms, that is, 5
      * seconds. The option is a long type.
      */
-    private String recoveryInterval = "5000";
+    private Long recoveryInterval = 5000L;
     /**
      * Configures how often Camel should check for timed out Exchanges when
      * doing request/reply over JMS. By default Camel checks once per second.
@@ -642,7 +654,7 @@ public class AMQPComponentConfiguration
      * this interval, to check more frequently. The timeout is determined by the
      * option requestTimeout. The option is a long type.
      */
-    private String requestTimeoutCheckerInterval = "1000";
+    private Long requestTimeoutCheckerInterval = 1000L;
     /**
      * If enabled and you are using Request Reply messaging (InOut) and an
      * Exchange failed on the consumer side, then the caused Exception will be
@@ -688,13 +700,13 @@ public class AMQPComponentConfiguration
      * Interval in millis to sleep each time while waiting for provisional
      * correlation id to be updated. The option is a long type.
      */
-    private String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = "100";
+    private Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = 100L;
     /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Allows to configure the default errorHandler logging level for logging
      * uncaught exceptions.
@@ -747,7 +759,7 @@ public class AMQPComponentConfiguration
      * The Spring transaction manager to use. The option is a
      * org.springframework.transaction.PlatformTransactionManager type.
      */
-    private String transactionManager;
+    private PlatformTransactionManager transactionManager;
     /**
      * The name of the transaction to use.
      */
@@ -766,11 +778,11 @@ public class AMQPComponentConfiguration
         this.clientId = clientId;
     }
 
-    public String getConnectionFactory() {
+    public ConnectionFactory getConnectionFactory() {
         return connectionFactory;
     }
 
-    public void setConnectionFactory(String connectionFactory) {
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
         this.connectionFactory = connectionFactory;
     }
 
@@ -985,11 +997,11 @@ public class AMQPComponentConfiguration
         this.replyToSameDestinationAllowed = replyToSameDestinationAllowed;
     }
 
-    public String getTaskExecutor() {
+    public TaskExecutor getTaskExecutor() {
         return taskExecutor;
     }
 
-    public void setTaskExecutor(String taskExecutor) {
+    public void setTaskExecutor(TaskExecutor taskExecutor) {
         this.taskExecutor = taskExecutor;
     }
 
@@ -1099,11 +1111,11 @@ public class AMQPComponentConfiguration
         this.replyToType = replyToType;
     }
 
-    public String getRequestTimeout() {
+    public Long getRequestTimeout() {
         return requestTimeout;
     }
 
-    public void setRequestTimeout(String requestTimeout) {
+    public void setRequestTimeout(Long requestTimeout) {
         this.requestTimeout = requestTimeout;
     }
 
@@ -1257,35 +1269,35 @@ public class AMQPComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public JmsConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(JmsConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getDestinationResolver() {
+    public DestinationResolver getDestinationResolver() {
         return destinationResolver;
     }
 
-    public void setDestinationResolver(String destinationResolver) {
+    public void setDestinationResolver(DestinationResolver destinationResolver) {
         this.destinationResolver = destinationResolver;
     }
 
-    public String getErrorHandler() {
+    public ErrorHandler getErrorHandler() {
         return errorHandler;
     }
 
-    public void setErrorHandler(String errorHandler) {
+    public void setErrorHandler(ErrorHandler errorHandler) {
         this.errorHandler = errorHandler;
     }
 
-    public String getExceptionListener() {
+    public ExceptionListener getExceptionListener() {
         return exceptionListener;
     }
 
-    public void setExceptionListener(String exceptionListener) {
+    public void setExceptionListener(ExceptionListener exceptionListener) {
         this.exceptionListener = exceptionListener;
     }
 
@@ -1338,19 +1350,20 @@ public class AMQPComponentConfiguration
         this.maxMessagesPerTask = maxMessagesPerTask;
     }
 
-    public String getMessageConverter() {
+    public MessageConverter getMessageConverter() {
         return messageConverter;
     }
 
-    public void setMessageConverter(String messageConverter) {
+    public void setMessageConverter(MessageConverter messageConverter) {
         this.messageConverter = messageConverter;
     }
 
-    public String getMessageCreatedStrategy() {
+    public MessageCreatedStrategy getMessageCreatedStrategy() {
         return messageCreatedStrategy;
     }
 
-    public void setMessageCreatedStrategy(String messageCreatedStrategy) {
+    public void setMessageCreatedStrategy(
+            MessageCreatedStrategy messageCreatedStrategy) {
         this.messageCreatedStrategy = messageCreatedStrategy;
     }
 
@@ -1362,12 +1375,12 @@ public class AMQPComponentConfiguration
         this.messageIdEnabled = messageIdEnabled;
     }
 
-    public String getMessageListenerContainerFactory() {
+    public MessageListenerContainerFactory getMessageListenerContainerFactory() {
         return messageListenerContainerFactory;
     }
 
     public void setMessageListenerContainerFactory(
-            String messageListenerContainerFactory) {
+            MessageListenerContainerFactory messageListenerContainerFactory) {
         this.messageListenerContainerFactory = messageListenerContainerFactory;
     }
 
@@ -1387,36 +1400,36 @@ public class AMQPComponentConfiguration
         this.pubSubNoLocal = pubSubNoLocal;
     }
 
-    public String getQueueBrowseStrategy() {
+    public QueueBrowseStrategy getQueueBrowseStrategy() {
         return queueBrowseStrategy;
     }
 
-    public void setQueueBrowseStrategy(String queueBrowseStrategy) {
+    public void setQueueBrowseStrategy(QueueBrowseStrategy queueBrowseStrategy) {
         this.queueBrowseStrategy = queueBrowseStrategy;
     }
 
-    public String getReceiveTimeout() {
+    public Long getReceiveTimeout() {
         return receiveTimeout;
     }
 
-    public void setReceiveTimeout(String receiveTimeout) {
+    public void setReceiveTimeout(Long receiveTimeout) {
         this.receiveTimeout = receiveTimeout;
     }
 
-    public String getRecoveryInterval() {
+    public Long getRecoveryInterval() {
         return recoveryInterval;
     }
 
-    public void setRecoveryInterval(String recoveryInterval) {
+    public void setRecoveryInterval(Long recoveryInterval) {
         this.recoveryInterval = recoveryInterval;
     }
 
-    public String getRequestTimeoutCheckerInterval() {
+    public Long getRequestTimeoutCheckerInterval() {
         return requestTimeoutCheckerInterval;
     }
 
     public void setRequestTimeoutCheckerInterval(
-            String requestTimeoutCheckerInterval) {
+            Long requestTimeoutCheckerInterval) {
         this.requestTimeoutCheckerInterval = requestTimeoutCheckerInterval;
     }
 
@@ -1454,20 +1467,21 @@ public class AMQPComponentConfiguration
         this.waitForProvisionCorrelationToBeUpdatedCounter = waitForProvisionCorrelationToBeUpdatedCounter;
     }
 
-    public String getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
+    public Long getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime() {
         return waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
     }
 
     public void setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
-            String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            Long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
         this.waitForProvisionCorrelationToBeUpdatedThreadSleepingTime = waitForProvisionCorrelationToBeUpdatedThreadSleepingTime;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
@@ -1529,11 +1543,12 @@ public class AMQPComponentConfiguration
         this.lazyCreateTransactionManager = lazyCreateTransactionManager;
     }
 
-    public String getTransactionManager() {
+    public PlatformTransactionManager getTransactionManager() {
         return transactionManager;
     }
 
-    public void setTransactionManager(String transactionManager) {
+    public void setTransactionManager(
+            PlatformTransactionManager transactionManager) {
         this.transactionManager = transactionManager;
     }
 
diff --git a/components-starter/camel-apns-starter/src/main/docs/apns-starter.adoc b/components-starter/camel-apns-starter/src/main/docs/apns-starter.adoc
index c8f8bba..4bb8080 100644
--- a/components-starter/camel-apns-starter/src/main/docs/apns-starter.adoc
+++ b/components-starter/camel-apns-starter/src/main/docs/apns-starter.adoc
@@ -24,7 +24,7 @@ The component supports 5 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.apns.apns-service* | The ApnsService to use. The org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to build a ApnsService. The option is a com.notnoop.apns.ApnsService type. |  | String
+| *camel.component.apns.apns-service* | The ApnsService to use. The org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to build a ApnsService. The option is a com.notnoop.apns.ApnsService type. |  | ApnsService
 | *camel.component.apns.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.apns.enabled* | Whether to enable auto configuration of the apns component. This is enabled by default. |  | Boolean
 | *camel.component.apns.lazy-start-producer* | 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  [...]
diff --git a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
index 3a75cdf..38aaa84 100644
--- a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
+++ b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.apns.springboot;
 
 import javax.annotation.Generated;
+import com.notnoop.apns.ApnsService;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -42,7 +43,7 @@ public class ApnsComponentConfiguration
      * org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to
      * build a ApnsService. The option is a com.notnoop.apns.ApnsService type.
      */
-    private String apnsService;
+    private ApnsService apnsService;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -70,11 +71,11 @@ public class ApnsComponentConfiguration
     @Deprecated
     private Boolean basicPropertyBinding = false;
 
-    public String getApnsService() {
+    public ApnsService getApnsService() {
         return apnsService;
     }
 
-    public void setApnsService(String apnsService) {
+    public void setApnsService(ApnsService apnsService) {
         this.apnsService = apnsService;
     }
 
diff --git a/components-starter/camel-arangodb-starter/src/main/docs/arangodb-starter.adoc b/components-starter/camel-arangodb-starter/src/main/docs/arangodb-starter.adoc
index f017a3e..53d72f5 100644
--- a/components-starter/camel-arangodb-starter/src/main/docs/arangodb-starter.adoc
+++ b/components-starter/camel-arangodb-starter/src/main/docs/arangodb-starter.adoc
@@ -24,7 +24,7 @@ The component supports 13 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.arangodb.configuration* | Component configuration. The option is a org.apache.camel.component.arangodb.ArangoDbConfiguration type. |  | String
+| *camel.component.arangodb.configuration* | Component configuration. The option is a org.apache.camel.component.arangodb.ArangoDbConfiguration type. |  | ArangoDbConfiguration
 | *camel.component.arangodb.document-collection* | Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when using the CRUD operation on the document database collections (SAVE_DOCUMENT , FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT). |  | String
 | *camel.component.arangodb.edge-collection* | Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perform CRUD operation on edges using these operations : SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX. The graph attribute is mandatory. |  | String
 | *camel.component.arangodb.enabled* | Whether to enable auto configuration of the arangodb component. This is enabled by default. |  | Boolean
diff --git a/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConfiguration.java b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConfiguration.java
index e9118e2..fab5214 100644
--- a/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConfiguration.java
+++ b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.arangodb.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.arangodb.ArangoDbConfiguration;
 import org.apache.camel.component.arangodb.ArangoDbOperation;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -43,7 +44,7 @@ public class ArangoDbComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.arangodb.ArangoDbConfiguration type.
      */
-    private String configuration;
+    private ArangoDbConfiguration configuration;
     /**
      * Collection name, when using ArangoDb as a Document Database. Set the
      * documentCollection name when using the CRUD operation on the document
@@ -112,11 +113,11 @@ public class ArangoDbComponentConfiguration
      */
     private String user;
 
-    public String getConfiguration() {
+    public ArangoDbConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(ArangoDbConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-as2-starter/src/main/docs/as2-starter.adoc b/components-starter/camel-as2-starter/src/main/docs/as2-starter.adoc
index 338d49b..19b5572 100644
--- a/components-starter/camel-as2-starter/src/main/docs/as2-starter.adoc
+++ b/components-starter/camel-as2-starter/src/main/docs/as2-starter.adoc
@@ -25,7 +25,7 @@ The component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.as2.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.as2.configuration* | Component configuration. The option is a org.apache.camel.component.as2.AS2Configuration type. |  | String
+| *camel.component.as2.configuration* | Component configuration. The option is a org.apache.camel.component.as2.AS2Configuration type. |  | AS2Configuration
 | *camel.component.as2.enabled* | Whether to enable auto configuration of the as2 component. This is enabled by default. |  | Boolean
 | *camel.component.as2.lazy-start-producer* | 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 c [...]
 | *camel.component.as2.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConfiguration.java b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConfiguration.java
index 436c147..f71a4c2 100644
--- a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConfiguration.java
+++ b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.as2.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.as2.AS2Configuration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -67,7 +68,7 @@ public class AS2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.as2.AS2Configuration type.
      */
-    private String configuration;
+    private AS2Configuration configuration;
 
     public Boolean getBridgeErrorHandler() {
         return bridgeErrorHandler;
@@ -96,11 +97,11 @@ public class AS2ComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public AS2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AS2Configuration configuration) {
         this.configuration = configuration;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket-starter.adoc b/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket-starter.adoc
index 05c382e..09d019d 100644
--- a/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket-starter.adoc
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket-starter.adoc
@@ -29,10 +29,10 @@ The component supports 12 options, which are listed below.
 | *camel.component.atmosphere-websocket.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.atmosphere-websocket.enabled* | Whether to enable auto configuration of the atmosphere-websocket component. This is enabled by default. |  | Boolean
 | *camel.component.atmosphere-websocket.file-name-ext-whitelist* | Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml. |  | String
-| *camel.component.atmosphere-websocket.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
-| *camel.component.atmosphere-websocket.http-binding* | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type. |  | String
-| *camel.component.atmosphere-websocket.http-configuration* | To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type. |  | String
-| *camel.component.atmosphere-websocket.http-registry* | To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type. |  | String
+| *camel.component.atmosphere-websocket.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
+| *camel.component.atmosphere-websocket.http-binding* | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type. |  | HttpBinding
+| *camel.component.atmosphere-websocket.http-configuration* | To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type. |  | HttpConfiguration
+| *camel.component.atmosphere-websocket.http-registry* | To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type. |  | HttpRegistry
 | *camel.component.atmosphere-websocket.lazy-start-producer* | 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 [...]
 | *camel.component.atmosphere-websocket.servlet-name* | Default name of servlet to use. The default name is CamelServlet. | CamelServlet | String
 | *camel.component.atmosphere-websocket.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
index 6656855..407ee1f 100644
--- a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConfiguration.java
@@ -17,6 +17,10 @@
 package org.apache.camel.component.atmosphere.websocket.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.http.common.HttpBinding;
+import org.apache.camel.http.common.HttpConfiguration;
+import org.apache.camel.http.common.HttpRegistry;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -68,7 +72,7 @@ public class WebsocketComponentConfiguration
      * To use a custom org.apache.camel.component.servlet.HttpRegistry. The
      * option is a org.apache.camel.http.common.HttpRegistry type.
      */
-    private String httpRegistry;
+    private HttpRegistry httpRegistry;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -99,18 +103,18 @@ public class WebsocketComponentConfiguration
      * and HttpClient. The option is a org.apache.camel.http.common.HttpBinding
      * type.
      */
-    private String httpBinding;
+    private HttpBinding httpBinding;
     /**
      * To use the shared HttpConfiguration as base configuration. The option is
      * a org.apache.camel.http.common.HttpConfiguration type.
      */
-    private String httpConfiguration;
+    private HttpConfiguration httpConfiguration;
     /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
 
     public Boolean getBridgeErrorHandler() {
         return bridgeErrorHandler;
@@ -144,11 +148,11 @@ public class WebsocketComponentConfiguration
         this.fileNameExtWhitelist = fileNameExtWhitelist;
     }
 
-    public String getHttpRegistry() {
+    public HttpRegistry getHttpRegistry() {
         return httpRegistry;
     }
 
-    public void setHttpRegistry(String httpRegistry) {
+    public void setHttpRegistry(HttpRegistry httpRegistry) {
         this.httpRegistry = httpRegistry;
     }
 
@@ -179,27 +183,28 @@ public class WebsocketComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getHttpBinding() {
+    public HttpBinding getHttpBinding() {
         return httpBinding;
     }
 
-    public void setHttpBinding(String httpBinding) {
+    public void setHttpBinding(HttpBinding httpBinding) {
         this.httpBinding = httpBinding;
     }
 
-    public String getHttpConfiguration() {
+    public HttpConfiguration getHttpConfiguration() {
         return httpConfiguration;
     }
 
-    public void setHttpConfiguration(String httpConfiguration) {
+    public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
         this.httpConfiguration = httpConfiguration;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/docs/atomix-starter.adoc b/components-starter/camel-atomix-starter/src/main/docs/atomix-starter.adoc
index bf71d69..7310243 100644
--- a/components-starter/camel-atomix-starter/src/main/docs/atomix-starter.adoc
+++ b/components-starter/camel-atomix-starter/src/main/docs/atomix-starter.adoc
@@ -24,16 +24,16 @@ The component supports 121 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.atomix-map.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
+| *camel.component.atomix-map.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
 | *camel.component.atomix-map.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.atomix-map.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type. |  | String
+| *camel.component.atomix-map.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type. |  | AtomixMapConfiguration
 | *camel.component.atomix-map.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-map.default-action* | The default action. |  | AtomixMap$Action
-| *camel.component.atomix-map.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-map.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-map.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-map.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-map.enabled* | Whether to enable auto configuration of the atomix-map component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-map.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
-| *camel.component.atomix-map.key* | The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type. |  | String
+| *camel.component.atomix-map.key* | The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type. |  | Object
 | *camel.component.atomix-map.lazy-start-producer* | 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 [...]
 | *camel.component.atomix-map.nodes* | The nodes the AtomixClient should connect to |  | List
 | *camel.component.atomix-map.read-consistency* | The read consistency level. |  | ReadConsistency
@@ -41,16 +41,16 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-map.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-map.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-map.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-map.ttl* | The resource ttl. The option is a long type. |  | String
-| *camel.component.atomix-messaging.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
+| *camel.component.atomix-map.ttl* | The resource ttl. The option is a long type. |  | Long
+| *camel.component.atomix-messaging.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
 | *camel.component.atomix-messaging.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.atomix-messaging.broadcast-type* | The broadcast type. |  | AtomixMessaging$BroadcastType
 | *camel.component.atomix-messaging.channel-name* | The messaging channel name |  | String
-| *camel.component.atomix-messaging.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type. |  | String
+| *camel.component.atomix-messaging.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type. |  | AtomixMessagingConfiguration
 | *camel.component.atomix-messaging.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-messaging.default-action* | The default action. |  | AtomixMessaging$Action
-| *camel.component.atomix-messaging.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-messaging.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-messaging.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-messaging.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-messaging.enabled* | Whether to enable auto configuration of the atomix-messaging component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-messaging.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
 | *camel.component.atomix-messaging.lazy-start-producer* | 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 pro [...]
@@ -61,15 +61,15 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-messaging.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-messaging.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-messaging.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-multimap.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
-| *camel.component.atomix-multimap.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type. |  | String
+| *camel.component.atomix-multimap.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
+| *camel.component.atomix-multimap.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type. |  | AtomixMultiMapConfiguration
 | *camel.component.atomix-multimap.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-multimap.default-action* | The default action. |  | AtomixMultiMap$Action
-| *camel.component.atomix-multimap.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-multimap.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-multimap.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-multimap.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-multimap.enabled* | Whether to enable auto configuration of the atomix-multimap component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-multimap.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
-| *camel.component.atomix-multimap.key* | The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type. |  | String
+| *camel.component.atomix-multimap.key* | The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type. |  | Object
 | *camel.component.atomix-multimap.lazy-start-producer* | 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 proc [...]
 | *camel.component.atomix-multimap.nodes* | The nodes the AtomixClient should connect to |  | List
 | *camel.component.atomix-multimap.read-consistency* | The read consistency level. |  | ReadConsistency
@@ -77,14 +77,14 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-multimap.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-multimap.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-multimap.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-multimap.ttl* | The resource ttl. The option is a long type. |  | String
-| *camel.component.atomix-queue.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
+| *camel.component.atomix-multimap.ttl* | The resource ttl. The option is a long type. |  | Long
+| *camel.component.atomix-queue.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
 | *camel.component.atomix-queue.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.atomix-queue.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration type. |  | String
+| *camel.component.atomix-queue.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration type. |  | AtomixQueueConfiguration
 | *camel.component.atomix-queue.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-queue.default-action* | The default action. |  | AtomixQueue$Action
-| *camel.component.atomix-queue.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-queue.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-queue.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-queue.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-queue.enabled* | Whether to enable auto configuration of the atomix-queue component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-queue.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
 | *camel.component.atomix-queue.lazy-start-producer* | 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 process [...]
@@ -94,13 +94,13 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-queue.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-queue.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-queue.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-set.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
+| *camel.component.atomix-set.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
 | *camel.component.atomix-set.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.atomix-set.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type. |  | String
+| *camel.component.atomix-set.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type. |  | AtomixSetConfiguration
 | *camel.component.atomix-set.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-set.default-action* | The default action. |  | AtomixSet$Action
-| *camel.component.atomix-set.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-set.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-set.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-set.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-set.enabled* | Whether to enable auto configuration of the atomix-set component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-set.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
 | *camel.component.atomix-set.lazy-start-producer* | 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 [...]
@@ -110,14 +110,14 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-set.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-set.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-set.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-set.ttl* | The resource ttl. The option is a long type. |  | String
-| *camel.component.atomix-value.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
+| *camel.component.atomix-set.ttl* | The resource ttl. The option is a long type. |  | Long
+| *camel.component.atomix-value.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | Atomix
 | *camel.component.atomix-value.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.atomix-value.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.value.AtomixValueConfiguration type. |  | String
+| *camel.component.atomix-value.configuration* | The shared component configuration. The option is a org.apache.camel.component.atomix.client.value.AtomixValueConfiguration type. |  | AtomixValueConfiguration
 | *camel.component.atomix-value.configuration-uri* | The path to the AtomixClient configuration |  | String
 | *camel.component.atomix-value.default-action* | The default action. |  | AtomixValue$Action
-| *camel.component.atomix-value.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | String
-| *camel.component.atomix-value.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | String
+| *camel.component.atomix-value.default-resource-config* | The cluster wide default resource configuration. The option is a java.util.Properties type. |  | Properties
+| *camel.component.atomix-value.default-resource-options* | The local default resource options. The option is a java.util.Properties type. |  | Properties
 | *camel.component.atomix-value.enabled* | Whether to enable auto configuration of the atomix-value component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-value.ephemeral* | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | Boolean
 | *camel.component.atomix-value.lazy-start-producer* | 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 process [...]
@@ -127,7 +127,7 @@ The component supports 121 options, which are listed below.
 | *camel.component.atomix-value.resource-options* | Local resources configurations |  | Map
 | *camel.component.atomix-value.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-value.transport-class-name* | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
-| *camel.component.atomix-value.ttl* | The resource ttl. The option is a long type. |  | String
+| *camel.component.atomix-value.ttl* | The resource ttl. The option is a long type. |  | Long
 | *camel.component.atomix.cluster.service.address* | The address of the node - node only. |  | String
 | *camel.component.atomix.cluster.service.attributes* | Custom service attributes. |  | Map
 | *camel.component.atomix.cluster.service.configuration-uri* | The Atomix configuration uri. |  | String
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConfiguration.java
index 12aaa70..5479eec 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConfiguration.java
@@ -20,10 +20,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.map.AtomixMap.Action;
 import org.apache.camel.component.atomix.client.map.AtomixMapComponent;
+import org.apache.camel.component.atomix.client.map.AtomixMapConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -47,12 +49,12 @@ public class AtomixMapComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type.
      */
-    private String configuration;
+    private AtomixMapConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -65,7 +67,7 @@ public class AtomixMapComponentConfiguration
      * The key to use if none is set in the header or to listen for events for a
      * specific key. The option is a java.lang.Object type.
      */
-    private String key;
+    private Object key;
     /**
      * The nodes the AtomixClient should connect to
      */
@@ -81,7 +83,7 @@ public class AtomixMapComponentConfiguration
     /**
      * The resource ttl. The option is a long type.
      */
-    private String ttl;
+    private Long ttl;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -112,12 +114,12 @@ public class AtomixMapComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -137,19 +139,19 @@ public class AtomixMapComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
-    public String getConfiguration() {
+    public AtomixMapConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixMapConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -169,11 +171,11 @@ public class AtomixMapComponentConfiguration
         this.defaultAction = defaultAction;
     }
 
-    public String getKey() {
+    public Object getKey() {
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(Object key) {
         this.key = key;
     }
 
@@ -201,11 +203,11 @@ public class AtomixMapComponentConfiguration
         this.transportClassName = transportClassName;
     }
 
-    public String getTtl() {
+    public Long getTtl() {
         return ttl;
     }
 
-    public void setTtl(String ttl) {
+    public void setTtl(Long ttl) {
         this.ttl = ttl;
     }
 
@@ -236,19 +238,19 @@ public class AtomixMapComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConfiguration.java
index 2902bc4..61102f9 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConfiguration.java
@@ -20,11 +20,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action;
 import org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType;
 import org.apache.camel.component.atomix.client.messaging.AtomixMessagingComponent;
+import org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -48,7 +50,7 @@ public class AtomixMessagingComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The broadcast type.
      */
@@ -61,7 +63,7 @@ public class AtomixMessagingComponentConfiguration
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type.
      */
-    private String configuration;
+    private AtomixMessagingConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -116,12 +118,12 @@ public class AtomixMessagingComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -141,11 +143,11 @@ public class AtomixMessagingComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
@@ -165,11 +167,11 @@ public class AtomixMessagingComponentConfiguration
         this.channelName = channelName;
     }
 
-    public String getConfiguration() {
+    public AtomixMessagingConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixMessagingConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -248,19 +250,19 @@ public class AtomixMessagingComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConfiguration.java
index 9405ca0..4654aad 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConfiguration.java
@@ -20,10 +20,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action;
 import org.apache.camel.component.atomix.client.multimap.AtomixMultiMapComponent;
+import org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -47,12 +49,12 @@ public class AtomixMultiMapComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type.
      */
-    private String configuration;
+    private AtomixMultiMapConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -65,7 +67,7 @@ public class AtomixMultiMapComponentConfiguration
      * The key to use if none is set in the header or to listen for events for a
      * specific key. The option is a java.lang.Object type.
      */
-    private String key;
+    private Object key;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -92,7 +94,7 @@ public class AtomixMultiMapComponentConfiguration
     /**
      * The resource ttl. The option is a long type.
      */
-    private String ttl;
+    private Long ttl;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -103,12 +105,12 @@ public class AtomixMultiMapComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -128,19 +130,19 @@ public class AtomixMultiMapComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
-    public String getConfiguration() {
+    public AtomixMultiMapConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixMultiMapConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -160,11 +162,11 @@ public class AtomixMultiMapComponentConfiguration
         this.defaultAction = defaultAction;
     }
 
-    public String getKey() {
+    public Object getKey() {
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(Object key) {
         this.key = key;
     }
 
@@ -200,11 +202,11 @@ public class AtomixMultiMapComponentConfiguration
         this.transportClassName = transportClassName;
     }
 
-    public String getTtl() {
+    public Long getTtl() {
         return ttl;
     }
 
-    public void setTtl(String ttl) {
+    public void setTtl(Long ttl) {
         this.ttl = ttl;
     }
 
@@ -219,19 +221,19 @@ public class AtomixMultiMapComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConfiguration.java
index 93d1225..67d3183 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConfiguration.java
@@ -20,10 +20,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.queue.AtomixQueue.Action;
 import org.apache.camel.component.atomix.client.queue.AtomixQueueComponent;
+import org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -47,13 +49,13 @@ public class AtomixQueueComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration
      * type.
      */
-    private String configuration;
+    private AtomixQueueConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -104,12 +106,12 @@ public class AtomixQueueComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -129,19 +131,19 @@ public class AtomixQueueComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
-    public String getConfiguration() {
+    public AtomixQueueConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixQueueConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -212,19 +214,19 @@ public class AtomixQueueComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConfiguration.java
index 2d4a81e..0f20226 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConfiguration.java
@@ -20,10 +20,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.set.AtomixSet.Action;
 import org.apache.camel.component.atomix.client.set.AtomixSetComponent;
+import org.apache.camel.component.atomix.client.set.AtomixSetConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -47,12 +49,12 @@ public class AtomixSetComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type.
      */
-    private String configuration;
+    private AtomixSetConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -76,7 +78,7 @@ public class AtomixSetComponentConfiguration
     /**
      * The resource ttl. The option is a long type.
      */
-    private String ttl;
+    private Long ttl;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -107,12 +109,12 @@ public class AtomixSetComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -132,19 +134,19 @@ public class AtomixSetComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
-    public String getConfiguration() {
+    public AtomixSetConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixSetConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -188,11 +190,11 @@ public class AtomixSetComponentConfiguration
         this.transportClassName = transportClassName;
     }
 
-    public String getTtl() {
+    public Long getTtl() {
         return ttl;
     }
 
-    public void setTtl(String ttl) {
+    public void setTtl(Long ttl) {
         this.ttl = ttl;
     }
 
@@ -223,19 +225,19 @@ public class AtomixSetComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConfiguration.java
index 2ad710a..fa85a07 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConfiguration.java
@@ -20,10 +20,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import javax.annotation.Generated;
+import io.atomix.Atomix;
 import io.atomix.catalyst.transport.Address;
 import io.atomix.resource.ReadConsistency;
 import org.apache.camel.component.atomix.client.value.AtomixValue.Action;
 import org.apache.camel.component.atomix.client.value.AtomixValueComponent;
+import org.apache.camel.component.atomix.client.value.AtomixValueConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -47,13 +49,13 @@ public class AtomixValueComponentConfiguration
     /**
      * The Atomix instance to use. The option is a io.atomix.Atomix type.
      */
-    private String atomix;
+    private Atomix atomix;
     /**
      * The shared component configuration. The option is a
      * org.apache.camel.component.atomix.client.value.AtomixValueConfiguration
      * type.
      */
-    private String configuration;
+    private AtomixValueConfiguration configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -77,7 +79,7 @@ public class AtomixValueComponentConfiguration
     /**
      * The resource ttl. The option is a long type.
      */
-    private String ttl;
+    private Long ttl;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -108,12 +110,12 @@ public class AtomixValueComponentConfiguration
      * The cluster wide default resource configuration. The option is a
      * java.util.Properties type.
      */
-    private String defaultResourceConfig;
+    private Properties defaultResourceConfig;
     /**
      * The local default resource options. The option is a java.util.Properties
      * type.
      */
-    private String defaultResourceOptions;
+    private Properties defaultResourceOptions;
     /**
      * Sets if the local member should join groups as PersistentMember or not.
      * If set to ephemeral the local member will receive an auto generated ID
@@ -133,19 +135,19 @@ public class AtomixValueComponentConfiguration
      */
     private Map<String, Properties> resourceOptions;
 
-    public String getAtomix() {
+    public Atomix getAtomix() {
         return atomix;
     }
 
-    public void setAtomix(String atomix) {
+    public void setAtomix(Atomix atomix) {
         this.atomix = atomix;
     }
 
-    public String getConfiguration() {
+    public AtomixValueConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AtomixValueConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -189,11 +191,11 @@ public class AtomixValueComponentConfiguration
         this.transportClassName = transportClassName;
     }
 
-    public String getTtl() {
+    public Long getTtl() {
         return ttl;
     }
 
-    public void setTtl(String ttl) {
+    public void setTtl(Long ttl) {
         this.ttl = ttl;
     }
 
@@ -224,19 +226,19 @@ public class AtomixValueComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getDefaultResourceConfig() {
+    public Properties getDefaultResourceConfig() {
         return defaultResourceConfig;
     }
 
-    public void setDefaultResourceConfig(String defaultResourceConfig) {
+    public void setDefaultResourceConfig(Properties defaultResourceConfig) {
         this.defaultResourceConfig = defaultResourceConfig;
     }
 
-    public String getDefaultResourceOptions() {
+    public Properties getDefaultResourceOptions() {
         return defaultResourceOptions;
     }
 
-    public void setDefaultResourceOptions(String defaultResourceOptions) {
+    public void setDefaultResourceOptions(Properties defaultResourceOptions) {
         this.defaultResourceOptions = defaultResourceOptions;
     }
 
diff --git a/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc-starter.adoc b/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc-starter.adoc
index 6e4c43a..472718f 100644
--- a/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc-starter.adoc
+++ b/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc-starter.adoc
@@ -25,10 +25,10 @@ The component supports 11 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.avro.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.avro.configuration* | To use a shared AvroConfiguration to configure options once. The option is a org.apache.camel.component.avro.AvroConfiguration type. |  | String
+| *camel.component.avro.configuration* | To use a shared AvroConfiguration to configure options once. The option is a org.apache.camel.component.avro.AvroConfiguration type. |  | AvroConfiguration
 | *camel.component.avro.enabled* | Whether to enable auto configuration of the avro component. This is enabled by default. |  | Boolean
 | *camel.component.avro.lazy-start-producer* | 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  [...]
-| *camel.component.avro.protocol* | Avro protocol to use. The option is a org.apache.avro.Protocol type. |  | String
+| *camel.component.avro.protocol* | Avro protocol to use. The option is a org.apache.avro.Protocol type. |  | Protocol
 | *camel.component.avro.protocol-class-name* | Avro protocol to use defined by the FQN class name |  | String
 | *camel.component.avro.protocol-location* | Avro protocol location |  | String
 | *camel.component.avro.reflection-protocol* | If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected | false | Boolean
diff --git a/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
index f86989f..2e01daf 100644
--- a/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
+++ b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
@@ -17,6 +17,8 @@
 package org.apache.camel.component.avro.springboot;
 
 import javax.annotation.Generated;
+import org.apache.avro.Protocol;
+import org.apache.camel.component.avro.AvroConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -40,7 +42,7 @@ public class AvroComponentConfiguration
     /**
      * Avro protocol to use. The option is a org.apache.avro.Protocol type.
      */
-    private String protocol;
+    private Protocol protocol;
     /**
      * Avro protocol to use defined by the FQN class name
      */
@@ -94,13 +96,13 @@ public class AvroComponentConfiguration
      * To use a shared AvroConfiguration to configure options once. The option
      * is a org.apache.camel.component.avro.AvroConfiguration type.
      */
-    private String configuration;
+    private AvroConfiguration configuration;
 
-    public String getProtocol() {
+    public Protocol getProtocol() {
         return protocol;
     }
 
-    public void setProtocol(String protocol) {
+    public void setProtocol(Protocol protocol) {
         this.protocol = protocol;
     }
 
@@ -171,11 +173,11 @@ public class AvroComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public AvroConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AvroConfiguration configuration) {
         this.configuration = configuration;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws-cw-starter/src/main/docs/aws-cw-starter.adoc b/components-starter/camel-aws-cw-starter/src/main/docs/aws-cw-starter.adoc
index d835f8f..0774477 100644
--- a/components-starter/camel-aws-cw-starter/src/main/docs/aws-cw-starter.adoc
+++ b/components-starter/camel-aws-cw-starter/src/main/docs/aws-cw-starter.adoc
@@ -25,9 +25,9 @@ The component supports 16 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-cw.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-cw.amazon-cw-client* | To use the AmazonCloudWatch as the client. The option is a com.amazonaws.services.cloudwatch.AmazonCloudWatch type. |  | String
+| *camel.component.aws-cw.amazon-cw-client* | To use the AmazonCloudWatch as the client. The option is a com.amazonaws.services.cloudwatch.AmazonCloudWatch type. |  | AmazonCloudWatch
 | *camel.component.aws-cw.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-cw.configuration* | The component configuration. The option is a org.apache.camel.component.aws.cw.CwConfiguration type. |  | String
+| *camel.component.aws-cw.configuration* | The component configuration. The option is a org.apache.camel.component.aws.cw.CwConfiguration type. |  | CwConfiguration
 | *camel.component.aws-cw.enabled* | Whether to enable auto configuration of the aws-cw component. This is enabled by default. |  | Boolean
 | *camel.component.aws-cw.lazy-start-producer* | 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 the [...]
 | *camel.component.aws-cw.name* | The metric name |  | String
diff --git a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConfiguration.java b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConfiguration.java
index bcfb2b9..5556e7b 100644
--- a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConfiguration.java
+++ b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConfiguration.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.aws.cw.springboot;
 import java.util.Date;
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
 import org.apache.camel.component.aws.cw.CwComponent;
+import org.apache.camel.component.aws.cw.CwConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -44,7 +46,7 @@ public class CwComponentConfiguration
      * To use the AmazonCloudWatch as the client. The option is a
      * com.amazonaws.services.cloudwatch.AmazonCloudWatch type.
      */
-    private String amazonCwClient;
+    private AmazonCloudWatch amazonCwClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class CwComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.cw.CwConfiguration type.
      */
-    private String configuration;
+    private CwConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -116,11 +118,11 @@ public class CwComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonCwClient() {
+    public AmazonCloudWatch getAmazonCwClient() {
         return amazonCwClient;
     }
 
-    public void setAmazonCwClient(String amazonCwClient) {
+    public void setAmazonCwClient(AmazonCloudWatch amazonCwClient) {
         this.amazonCwClient = amazonCwClient;
     }
 
@@ -132,11 +134,11 @@ public class CwComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public CwConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(CwConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-ddb-starter/src/main/docs/aws-ddb-starter.adoc b/components-starter/camel-aws-ddb-starter/src/main/docs/aws-ddb-starter.adoc
index 339e570..8dfecd1 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/docs/aws-ddb-starter.adoc
+++ b/components-starter/camel-aws-ddb-starter/src/main/docs/aws-ddb-starter.adoc
@@ -25,9 +25,9 @@ The component supports 33 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-ddb.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ddb.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client. The option is a com.amazonaws.services.dynamodbv2.AmazonDynamoDB type. |  | String
+| *camel.component.aws-ddb.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client. The option is a com.amazonaws.services.dynamodbv2.AmazonDynamoDB type. |  | AmazonDynamoDB
 | *camel.component.aws-ddb.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-ddb.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ddb.DdbConfiguration type. |  | String
+| *camel.component.aws-ddb.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ddb.DdbConfiguration type. |  | DdbConfiguration
 | *camel.component.aws-ddb.consistent-read* | Determines whether or not strong consistency should be enforced when data is read. | false | Boolean
 | *camel.component.aws-ddb.enabled* | Whether to enable auto configuration of the aws-ddb component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ddb.key-attribute-name* | Attribute name when creating table |  | String
@@ -42,10 +42,10 @@ The component supports 33 options, which are listed below.
 | *camel.component.aws-ddb.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-ddb.write-capacity* | The provisioned throughput to reserved for writing resources to your table |  | Long
 | *camel.component.aws-ddbstream.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ddbstream.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint. The option is a com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams type. |  | String
+| *camel.component.aws-ddbstream.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint. The option is a com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams type. |  | AmazonDynamoDBStreams
 | *camel.component.aws-ddbstream.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
 | *camel.component.aws-ddbstream.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.aws-ddbstream.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration type. |  | String
+| *camel.component.aws-ddbstream.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration type. |  | DdbStreamConfiguration
 | *camel.component.aws-ddbstream.enabled* | Whether to enable auto configuration of the aws-ddbstream component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ddbstream.iterator-type* | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. |  | ShardIteratorType
 | *camel.component.aws-ddbstream.max-results-per-request* | Maximum number of records that will be fetched in each poll |  | Integer
@@ -54,7 +54,7 @@ The component supports 33 options, which are listed below.
 | *camel.component.aws-ddbstream.proxy-protocol* | To define a proxy protocol when instantiating the DDBStreams client |  | Protocol
 | *camel.component.aws-ddbstream.region* | The region in which DDBStreams client needs to work |  | String
 | *camel.component.aws-ddbstream.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-ddbstream.sequence-number-provider* | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. The option is a org.apache.camel.component.aws.ddbstream.SequenceNumberProvider type. |  | String
+| *camel.component.aws-ddbstream.sequence-number-provider* | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. The option is a org.apache.camel.component.aws.ddbstream.SequenceNumberProvider type. |  | SequenceNumberProvider
 | *camel.component.aws-ddb.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.aws-ddbstream.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConfiguration.java
index 7207063..1f3e2e7 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.ddb.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
 import org.apache.camel.component.aws.ddb.DdbComponent;
+import org.apache.camel.component.aws.ddb.DdbConfiguration;
 import org.apache.camel.component.aws.ddb.DdbOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -44,7 +46,7 @@ public class DdbComponentConfiguration
      * To use the AmazonDynamoDB as the client. The option is a
      * com.amazonaws.services.dynamodbv2.AmazonDynamoDB type.
      */
-    private String amazonDDBClient;
+    private AmazonDynamoDB amazonDDBClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class DdbComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.ddb.DdbConfiguration type.
      */
-    private String configuration;
+    private DdbConfiguration configuration;
     /**
      * Determines whether or not strong consistency should be enforced when data
      * is read.
@@ -128,11 +130,11 @@ public class DdbComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonDDBClient() {
+    public AmazonDynamoDB getAmazonDDBClient() {
         return amazonDDBClient;
     }
 
-    public void setAmazonDDBClient(String amazonDDBClient) {
+    public void setAmazonDDBClient(AmazonDynamoDB amazonDDBClient) {
         this.amazonDDBClient = amazonDDBClient;
     }
 
@@ -144,11 +146,11 @@ public class DdbComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public DdbConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(DdbConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConfiguration.java
index 72bc22d..49aaec6 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConfiguration.java
@@ -18,8 +18,11 @@ package org.apache.camel.component.aws.ddbstream.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
 import com.amazonaws.services.dynamodbv2.model.ShardIteratorType;
 import org.apache.camel.component.aws.ddbstream.DdbStreamComponent;
+import org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration;
+import org.apache.camel.component.aws.ddbstream.SequenceNumberProvider;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -50,7 +53,7 @@ public class DdbStreamComponentConfiguration
      * Amazon DynamoDB client to use for all requests for this endpoint. The
      * option is a com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams type.
      */
-    private String amazonDynamoDbStreamsClient;
+    private AmazonDynamoDBStreams amazonDynamoDbStreamsClient;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -64,7 +67,7 @@ public class DdbStreamComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration type.
      */
-    private String configuration;
+    private DdbStreamConfiguration configuration;
     /**
      * Defines where in the DynaboDB stream to start getting records. Note that
      * using TRIM_HORIZON can cause a significant delay before the stream has
@@ -98,7 +101,7 @@ public class DdbStreamComponentConfiguration
      * registry reference or a literal sequence number. The option is a
      * org.apache.camel.component.aws.ddbstream.SequenceNumberProvider type.
      */
-    private String sequenceNumberProvider;
+    private SequenceNumberProvider sequenceNumberProvider;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -122,12 +125,12 @@ public class DdbStreamComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getAmazonDynamoDbStreamsClient() {
+    public AmazonDynamoDBStreams getAmazonDynamoDbStreamsClient() {
         return amazonDynamoDbStreamsClient;
     }
 
     public void setAmazonDynamoDbStreamsClient(
-            String amazonDynamoDbStreamsClient) {
+            AmazonDynamoDBStreams amazonDynamoDbStreamsClient) {
         this.amazonDynamoDbStreamsClient = amazonDynamoDbStreamsClient;
     }
 
@@ -139,11 +142,11 @@ public class DdbStreamComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public DdbStreamConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(DdbStreamConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -195,11 +198,12 @@ public class DdbStreamComponentConfiguration
         this.region = region;
     }
 
-    public String getSequenceNumberProvider() {
+    public SequenceNumberProvider getSequenceNumberProvider() {
         return sequenceNumberProvider;
     }
 
-    public void setSequenceNumberProvider(String sequenceNumberProvider) {
+    public void setSequenceNumberProvider(
+            SequenceNumberProvider sequenceNumberProvider) {
         this.sequenceNumberProvider = sequenceNumberProvider;
     }
 
diff --git a/components-starter/camel-aws-ec2-starter/src/main/docs/aws-ec2-starter.adoc b/components-starter/camel-aws-ec2-starter/src/main/docs/aws-ec2-starter.adoc
index 5a6bc9a..deb38e0 100644
--- a/components-starter/camel-aws-ec2-starter/src/main/docs/aws-ec2-starter.adoc
+++ b/components-starter/camel-aws-ec2-starter/src/main/docs/aws-ec2-starter.adoc
@@ -25,9 +25,9 @@ The component supports 13 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-ec2.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ec2.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client. The option is a com.amazonaws.services.ec2.AmazonEC2 type. |  | String
+| *camel.component.aws-ec2.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client. The option is a com.amazonaws.services.ec2.AmazonEC2 type. |  | AmazonEC2
 | *camel.component.aws-ec2.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-ec2.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ec2.EC2Configuration type. |  | String
+| *camel.component.aws-ec2.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ec2.EC2Configuration type. |  | EC2Configuration
 | *camel.component.aws-ec2.enabled* | Whether to enable auto configuration of the aws-ec2 component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ec2.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-ec2.operation* | The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags |  | EC2Operations
diff --git a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConfiguration.java b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConfiguration.java
index 6bc9ceb..5008770 100644
--- a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConfiguration.java
+++ b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.ec2.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.ec2.AmazonEC2;
 import org.apache.camel.component.aws.ec2.EC2Component;
+import org.apache.camel.component.aws.ec2.EC2Configuration;
 import org.apache.camel.component.aws.ec2.EC2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class EC2ComponentConfiguration
      * To use a existing configured AmazonEC2Client as client. The option is a
      * com.amazonaws.services.ec2.AmazonEC2 type.
      */
-    private String amazonEc2Client;
+    private AmazonEC2 amazonEc2Client;
     /**
      * The component configuration. The option is a
      * org.apache.camel.component.aws.ec2.EC2Configuration type.
      */
-    private String configuration;
+    private EC2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -123,19 +125,19 @@ public class EC2ComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getAmazonEc2Client() {
+    public AmazonEC2 getAmazonEc2Client() {
         return amazonEc2Client;
     }
 
-    public void setAmazonEc2Client(String amazonEc2Client) {
+    public void setAmazonEc2Client(AmazonEC2 amazonEc2Client) {
         this.amazonEc2Client = amazonEc2Client;
     }
 
-    public String getConfiguration() {
+    public EC2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(EC2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-ecs-starter/src/main/docs/aws-ecs-starter.adoc b/components-starter/camel-aws-ecs-starter/src/main/docs/aws-ecs-starter.adoc
index 3dd8bdc..2d935dd 100644
--- a/components-starter/camel-aws-ecs-starter/src/main/docs/aws-ecs-starter.adoc
+++ b/components-starter/camel-aws-ecs-starter/src/main/docs/aws-ecs-starter.adoc
@@ -26,8 +26,8 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-ecs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-ecs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-ecs.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ecs.ECSConfiguration type. |  | String
-| *camel.component.aws-ecs.ecs-client* | To use a existing configured AWS ECS as client. The option is a com.amazonaws.services.ecs.AmazonECS type. |  | String
+| *camel.component.aws-ecs.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ecs.ECSConfiguration type. |  | ECSConfiguration
+| *camel.component.aws-ecs.ecs-client* | To use a existing configured AWS ECS as client. The option is a com.amazonaws.services.ecs.AmazonECS type. |  | AmazonECS
 | *camel.component.aws-ecs.enabled* | Whether to enable auto configuration of the aws-ecs component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ecs.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-ecs.operation* | The operation to perform |  | ECSOperations
diff --git a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConfiguration.java b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConfiguration.java
index e13addc..d64fb7a 100644
--- a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConfiguration.java
+++ b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.ecs.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.ecs.AmazonECS;
 import org.apache.camel.component.aws.ecs.ECSComponent;
+import org.apache.camel.component.aws.ecs.ECSConfiguration;
 import org.apache.camel.component.aws.ecs.ECSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class ECSComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.ecs.ECSConfiguration type.
      */
-    private String configuration;
+    private ECSConfiguration configuration;
     /**
      * To use a existing configured AWS ECS as client. The option is a
      * com.amazonaws.services.ecs.AmazonECS type.
      */
-    private String ecsClient;
+    private AmazonECS ecsClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class ECSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getConfiguration() {
+    public ECSConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(ECSConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEcsClient() {
+    public AmazonECS getEcsClient() {
         return ecsClient;
     }
 
-    public void setEcsClient(String ecsClient) {
+    public void setEcsClient(AmazonECS ecsClient) {
         this.ecsClient = ecsClient;
     }
 
diff --git a/components-starter/camel-aws-eks-starter/src/main/docs/aws-eks-starter.adoc b/components-starter/camel-aws-eks-starter/src/main/docs/aws-eks-starter.adoc
index 143044d..9eb5157 100644
--- a/components-starter/camel-aws-eks-starter/src/main/docs/aws-eks-starter.adoc
+++ b/components-starter/camel-aws-eks-starter/src/main/docs/aws-eks-starter.adoc
@@ -26,8 +26,8 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-eks.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-eks.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-eks.configuration* | The component configuration. The option is a org.apache.camel.component.aws.eks.EKSConfiguration type. |  | String
-| *camel.component.aws-eks.eks-client* | To use a existing configured AWS EKS as client. The option is a com.amazonaws.services.eks.AmazonEKS type. |  | String
+| *camel.component.aws-eks.configuration* | The component configuration. The option is a org.apache.camel.component.aws.eks.EKSConfiguration type. |  | EKSConfiguration
+| *camel.component.aws-eks.eks-client* | To use a existing configured AWS EKS as client. The option is a com.amazonaws.services.eks.AmazonEKS type. |  | AmazonEKS
 | *camel.component.aws-eks.enabled* | Whether to enable auto configuration of the aws-eks component. This is enabled by default. |  | Boolean
 | *camel.component.aws-eks.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-eks.operation* | The operation to perform |  | EKSOperations
diff --git a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConfiguration.java b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConfiguration.java
index db7f993..c867c3c 100644
--- a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConfiguration.java
+++ b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.eks.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.eks.AmazonEKS;
 import org.apache.camel.component.aws.eks.EKSComponent;
+import org.apache.camel.component.aws.eks.EKSConfiguration;
 import org.apache.camel.component.aws.eks.EKSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class EKSComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.eks.EKSConfiguration type.
      */
-    private String configuration;
+    private EKSConfiguration configuration;
     /**
      * To use a existing configured AWS EKS as client. The option is a
      * com.amazonaws.services.eks.AmazonEKS type.
      */
-    private String eksClient;
+    private AmazonEKS eksClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class EKSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getConfiguration() {
+    public EKSConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(EKSConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEksClient() {
+    public AmazonEKS getEksClient() {
         return eksClient;
     }
 
-    public void setEksClient(String eksClient) {
+    public void setEksClient(AmazonEKS eksClient) {
         this.eksClient = eksClient;
     }
 
diff --git a/components-starter/camel-aws-iam-starter/src/main/docs/aws-iam-starter.adoc b/components-starter/camel-aws-iam-starter/src/main/docs/aws-iam-starter.adoc
index bdf5171..3f7d0b0 100644
--- a/components-starter/camel-aws-iam-starter/src/main/docs/aws-iam-starter.adoc
+++ b/components-starter/camel-aws-iam-starter/src/main/docs/aws-iam-starter.adoc
@@ -26,9 +26,9 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-iam.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-iam.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-iam.configuration* | The component configuration. The option is a org.apache.camel.component.aws.iam.IAMConfiguration type. |  | String
+| *camel.component.aws-iam.configuration* | The component configuration. The option is a org.apache.camel.component.aws.iam.IAMConfiguration type. |  | IAMConfiguration
 | *camel.component.aws-iam.enabled* | Whether to enable auto configuration of the aws-iam component. This is enabled by default. |  | Boolean
-| *camel.component.aws-iam.iam-client* | To use a existing configured AWS IAM as client. The option is a com.amazonaws.services.identitymanagement.AmazonIdentityManagement type. |  | String
+| *camel.component.aws-iam.iam-client* | To use a existing configured AWS IAM as client. The option is a com.amazonaws.services.identitymanagement.AmazonIdentityManagement type. |  | AmazonIdentityManagement
 | *camel.component.aws-iam.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-iam.operation* | The operation to perform |  | IAMOperations
 | *camel.component.aws-iam.proxy-host* | To define a proxy host when instantiating the IAM client |  | String
diff --git a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConfiguration.java b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConfiguration.java
index 7fce9aa..7293f50 100644
--- a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConfiguration.java
+++ b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.iam.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.identitymanagement.AmazonIdentityManagement;
 import org.apache.camel.component.aws.iam.IAMComponent;
+import org.apache.camel.component.aws.iam.IAMConfiguration;
 import org.apache.camel.component.aws.iam.IAMOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class IAMComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.iam.IAMConfiguration type.
      */
-    private String configuration;
+    private IAMConfiguration configuration;
     /**
      * To use a existing configured AWS IAM as client. The option is a
      * com.amazonaws.services.identitymanagement.AmazonIdentityManagement type.
      */
-    private String iamClient;
+    private AmazonIdentityManagement iamClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class IAMComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getConfiguration() {
+    public IAMConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(IAMConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getIamClient() {
+    public AmazonIdentityManagement getIamClient() {
         return iamClient;
     }
 
-    public void setIamClient(String iamClient) {
+    public void setIamClient(AmazonIdentityManagement iamClient) {
         this.iamClient = iamClient;
     }
 
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/docs/aws-kinesis-starter.adoc b/components-starter/camel-aws-kinesis-starter/src/main/docs/aws-kinesis-starter.adoc
index c91e446..83cce74 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/docs/aws-kinesis-starter.adoc
+++ b/components-starter/camel-aws-kinesis-starter/src/main/docs/aws-kinesis-starter.adoc
@@ -25,9 +25,9 @@ The component supports 30 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-kinesis-firehose.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-kinesis-firehose.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose type. |  | String
+| *camel.component.aws-kinesis-firehose.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose type. |  | AmazonKinesisFirehose
 | *camel.component.aws-kinesis-firehose.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
-| *camel.component.aws-kinesis-firehose.configuration* | The component configuration. The option is a org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration type. |  | String
+| *camel.component.aws-kinesis-firehose.configuration* | The component configuration. The option is a org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration type. |  | KinesisFirehoseConfiguration
 | *camel.component.aws-kinesis-firehose.enabled* | Whether to enable auto configuration of the aws-kinesis-firehose component. This is enabled by default. |  | Boolean
 | *camel.component.aws-kinesis-firehose.lazy-start-producer* | 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 [...]
 | *camel.component.aws-kinesis-firehose.proxy-host* | To define a proxy host when instantiating the Kinesis Firehose client |  | String
@@ -36,10 +36,10 @@ The component supports 30 options, which are listed below.
 | *camel.component.aws-kinesis-firehose.region* | The region in which Kinesis client needs to work. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1)You'll need to use the name Regions.EU_WEST_1.name() |  | String
 | *camel.component.aws-kinesis-firehose.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-kinesis.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-kinesis.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint. The option is a com.amazonaws.services.kinesis.AmazonKinesis type. |  | String
+| *camel.component.aws-kinesis.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint. The option is a com.amazonaws.services.kinesis.AmazonKinesis type. |  | AmazonKinesis
 | *camel.component.aws-kinesis.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
 | *camel.component.aws-kinesis.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.aws-kinesis.configuration* | The component configuration. The option is a org.apache.camel.component.aws.kinesis.KinesisConfiguration type. |  | String
+| *camel.component.aws-kinesis.configuration* | The component configuration. The option is a org.apache.camel.component.aws.kinesis.KinesisConfiguration type. |  | KinesisConfiguration
 | *camel.component.aws-kinesis.enabled* | Whether to enable auto configuration of the aws-kinesis component. This is enabled by default. |  | Boolean
 | *camel.component.aws-kinesis.iterator-type* | Defines where in the Kinesis stream to start getting records |  | ShardIteratorType
 | *camel.component.aws-kinesis.lazy-start-producer* | 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 processe [...]
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConfiguration.java
index bc83754..aaa61c1 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.firehose.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose;
 import org.apache.camel.component.aws.firehose.KinesisFirehoseComponent;
+import org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -44,7 +46,7 @@ public class KinesisFirehoseComponentConfiguration
      * The option is a
      * com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose type.
      */
-    private String amazonKinesisFirehoseClient;
+    private AmazonKinesisFirehose amazonKinesisFirehoseClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -56,7 +58,7 @@ public class KinesisFirehoseComponentConfiguration
      * org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration
      * type.
      */
-    private String configuration;
+    private KinesisFirehoseConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -102,12 +104,12 @@ public class KinesisFirehoseComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonKinesisFirehoseClient() {
+    public AmazonKinesisFirehose getAmazonKinesisFirehoseClient() {
         return amazonKinesisFirehoseClient;
     }
 
     public void setAmazonKinesisFirehoseClient(
-            String amazonKinesisFirehoseClient) {
+            AmazonKinesisFirehose amazonKinesisFirehoseClient) {
         this.amazonKinesisFirehoseClient = amazonKinesisFirehoseClient;
     }
 
@@ -119,11 +121,11 @@ public class KinesisFirehoseComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public KinesisFirehoseConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(KinesisFirehoseConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConfiguration.java
index ce2a07a..38b3d2a 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConfiguration.java
@@ -18,8 +18,10 @@ package org.apache.camel.component.aws.kinesis.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.kinesis.AmazonKinesis;
 import com.amazonaws.services.kinesis.model.ShardIteratorType;
 import org.apache.camel.component.aws.kinesis.KinesisComponent;
+import org.apache.camel.component.aws.kinesis.KinesisConfiguration;
 import org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -45,7 +47,7 @@ public class KinesisComponentConfiguration
      * Amazon Kinesis client to use for all requests for this endpoint. The
      * option is a com.amazonaws.services.kinesis.AmazonKinesis type.
      */
-    private String amazonKinesisClient;
+    private AmazonKinesis amazonKinesisClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -56,7 +58,7 @@ public class KinesisComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.kinesis.KinesisConfiguration type.
      */
-    private String configuration;
+    private KinesisConfiguration configuration;
     /**
      * To define a proxy host when instantiating the Kinesis client
      */
@@ -136,11 +138,11 @@ public class KinesisComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonKinesisClient() {
+    public AmazonKinesis getAmazonKinesisClient() {
         return amazonKinesisClient;
     }
 
-    public void setAmazonKinesisClient(String amazonKinesisClient) {
+    public void setAmazonKinesisClient(AmazonKinesis amazonKinesisClient) {
         this.amazonKinesisClient = amazonKinesisClient;
     }
 
@@ -152,11 +154,11 @@ public class KinesisComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public KinesisConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(KinesisConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-kms-starter/src/main/docs/aws-kms-starter.adoc b/components-starter/camel-aws-kms-starter/src/main/docs/aws-kms-starter.adoc
index c3f8612..9a0a2bc 100644
--- a/components-starter/camel-aws-kms-starter/src/main/docs/aws-kms-starter.adoc
+++ b/components-starter/camel-aws-kms-starter/src/main/docs/aws-kms-starter.adoc
@@ -26,9 +26,9 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-kms.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-kms.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-kms.configuration* | The Component configuration. The option is a org.apache.camel.component.aws.kms.KMSConfiguration type. |  | String
+| *camel.component.aws-kms.configuration* | The Component configuration. The option is a org.apache.camel.component.aws.kms.KMSConfiguration type. |  | KMSConfiguration
 | *camel.component.aws-kms.enabled* | Whether to enable auto configuration of the aws-kms component. This is enabled by default. |  | Boolean
-| *camel.component.aws-kms.kms-client* | To use a existing configured AWS KMS as client. The option is a com.amazonaws.services.kms.AWSKMS type. |  | String
+| *camel.component.aws-kms.kms-client* | To use a existing configured AWS KMS as client. The option is a com.amazonaws.services.kms.AWSKMS type. |  | AWSKMS
 | *camel.component.aws-kms.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-kms.operation* | The operation to perform |  | KMSOperations
 | *camel.component.aws-kms.proxy-host* | To define a proxy host when instantiating the KMS client |  | String
diff --git a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConfiguration.java b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConfiguration.java
index 74947dc..09bbc3b 100644
--- a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConfiguration.java
+++ b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.kms.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.kms.AWSKMS;
 import org.apache.camel.component.aws.kms.KMSComponent;
+import org.apache.camel.component.aws.kms.KMSConfiguration;
 import org.apache.camel.component.aws.kms.KMSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class KMSComponentConfiguration
      * The Component configuration. The option is a
      * org.apache.camel.component.aws.kms.KMSConfiguration type.
      */
-    private String configuration;
+    private KMSConfiguration configuration;
     /**
      * To use a existing configured AWS KMS as client. The option is a
      * com.amazonaws.services.kms.AWSKMS type.
      */
-    private String kmsClient;
+    private AWSKMS kmsClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class KMSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getConfiguration() {
+    public KMSConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(KMSConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getKmsClient() {
+    public AWSKMS getKmsClient() {
         return kmsClient;
     }
 
-    public void setKmsClient(String kmsClient) {
+    public void setKmsClient(AWSKMS kmsClient) {
         this.kmsClient = kmsClient;
     }
 
diff --git a/components-starter/camel-aws-lambda-starter/src/main/docs/aws-lambda-starter.adoc b/components-starter/camel-aws-lambda-starter/src/main/docs/aws-lambda-starter.adoc
index 8bba3bd..72b0117 100644
--- a/components-starter/camel-aws-lambda-starter/src/main/docs/aws-lambda-starter.adoc
+++ b/components-starter/camel-aws-lambda-starter/src/main/docs/aws-lambda-starter.adoc
@@ -26,8 +26,8 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-lambda.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-lambda.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-lambda.aws-lambda-client* | To use a existing configured AwsLambdaClient as client. The option is a com.amazonaws.services.lambda.AWSLambda type. |  | String
-| *camel.component.aws-lambda.configuration* | The AWS Lambda default configuration. The option is a org.apache.camel.component.aws.lambda.LambdaConfiguration type. |  | String
+| *camel.component.aws-lambda.aws-lambda-client* | To use a existing configured AwsLambdaClient as client. The option is a com.amazonaws.services.lambda.AWSLambda type. |  | AWSLambda
+| *camel.component.aws-lambda.configuration* | The AWS Lambda default configuration. The option is a org.apache.camel.component.aws.lambda.LambdaConfiguration type. |  | LambdaConfiguration
 | *camel.component.aws-lambda.enabled* | Whether to enable auto configuration of the aws-lambda component. This is enabled by default. |  | Boolean
 | *camel.component.aws-lambda.lazy-start-producer* | 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 [...]
 | *camel.component.aws-lambda.operation* | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction |  | LambdaOperations
diff --git a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
index 56065d6..c6c1f3e 100644
--- a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
+++ b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.lambda.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.lambda.AWSLambda;
 import org.apache.camel.component.aws.lambda.LambdaComponent;
+import org.apache.camel.component.aws.lambda.LambdaConfiguration;
 import org.apache.camel.component.aws.lambda.LambdaOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -50,7 +52,7 @@ public class LambdaComponentConfiguration
      * The AWS Lambda default configuration. The option is a
      * org.apache.camel.component.aws.lambda.LambdaConfiguration type.
      */
-    private String configuration;
+    private LambdaConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -77,7 +79,7 @@ public class LambdaComponentConfiguration
      * To use a existing configured AwsLambdaClient as client. The option is a
      * com.amazonaws.services.lambda.AWSLambda type.
      */
-    private String awsLambdaClient;
+    private AWSLambda awsLambdaClient;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -113,11 +115,11 @@ public class LambdaComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public LambdaConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(LambdaConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -145,11 +147,11 @@ public class LambdaComponentConfiguration
         this.region = region;
     }
 
-    public String getAwsLambdaClient() {
+    public AWSLambda getAwsLambdaClient() {
         return awsLambdaClient;
     }
 
-    public void setAwsLambdaClient(String awsLambdaClient) {
+    public void setAwsLambdaClient(AWSLambda awsLambdaClient) {
         this.awsLambdaClient = awsLambdaClient;
     }
 
diff --git a/components-starter/camel-aws-mq-starter/src/main/docs/aws-mq-starter.adoc b/components-starter/camel-aws-mq-starter/src/main/docs/aws-mq-starter.adoc
index 7d818dc..08f97aa 100644
--- a/components-starter/camel-aws-mq-starter/src/main/docs/aws-mq-starter.adoc
+++ b/components-starter/camel-aws-mq-starter/src/main/docs/aws-mq-starter.adoc
@@ -25,9 +25,9 @@ The component supports 13 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-mq.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-mq.amazon-mq-client* | To use a existing configured AmazonMQClient as client. The option is a com.amazonaws.services.mq.AmazonMQ type. |  | String
+| *camel.component.aws-mq.amazon-mq-client* | To use a existing configured AmazonMQClient as client. The option is a com.amazonaws.services.mq.AmazonMQ type. |  | AmazonMQ
 | *camel.component.aws-mq.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-mq.configuration* | The Component configuration. The option is a org.apache.camel.component.aws.mq.MQConfiguration type. |  | String
+| *camel.component.aws-mq.configuration* | The Component configuration. The option is a org.apache.camel.component.aws.mq.MQConfiguration type. |  | MQConfiguration
 | *camel.component.aws-mq.enabled* | Whether to enable auto configuration of the aws-mq component. This is enabled by default. |  | Boolean
 | *camel.component.aws-mq.lazy-start-producer* | 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 the [...]
 | *camel.component.aws-mq.operation* | The operation to perform. It can be listBrokers,createBroker,deleteBroker |  | MQOperations
diff --git a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConfiguration.java b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConfiguration.java
index 4024938..79794f6 100644
--- a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConfiguration.java
+++ b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.mq.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.mq.AmazonMQ;
 import org.apache.camel.component.aws.mq.MQComponent;
+import org.apache.camel.component.aws.mq.MQConfiguration;
 import org.apache.camel.component.aws.mq.MQOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,12 +56,12 @@ public class MQComponentConfiguration
      * To use a existing configured AmazonMQClient as client. The option is a
      * com.amazonaws.services.mq.AmazonMQ type.
      */
-    private String amazonMqClient;
+    private AmazonMQ amazonMqClient;
     /**
      * The Component configuration. The option is a
      * org.apache.camel.component.aws.mq.MQConfiguration type.
      */
-    private String configuration;
+    private MQConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class MQComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getAmazonMqClient() {
+    public AmazonMQ getAmazonMqClient() {
         return amazonMqClient;
     }
 
-    public void setAmazonMqClient(String amazonMqClient) {
+    public void setAmazonMqClient(AmazonMQ amazonMqClient) {
         this.amazonMqClient = amazonMqClient;
     }
 
-    public String getConfiguration() {
+    public MQConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(MQConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-msk-starter/src/main/docs/aws-msk-starter.adoc b/components-starter/camel-aws-msk-starter/src/main/docs/aws-msk-starter.adoc
index 8a99509..f123058 100644
--- a/components-starter/camel-aws-msk-starter/src/main/docs/aws-msk-starter.adoc
+++ b/components-starter/camel-aws-msk-starter/src/main/docs/aws-msk-starter.adoc
@@ -26,10 +26,10 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-msk.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-msk.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-msk.configuration* | The component configuration. The option is a org.apache.camel.component.aws.msk.MSKConfiguration type. |  | String
+| *camel.component.aws-msk.configuration* | The component configuration. The option is a org.apache.camel.component.aws.msk.MSKConfiguration type. |  | MSKConfiguration
 | *camel.component.aws-msk.enabled* | Whether to enable auto configuration of the aws-msk component. This is enabled by default. |  | Boolean
 | *camel.component.aws-msk.lazy-start-producer* | 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 th [...]
-| *camel.component.aws-msk.msk-client* | To use a existing configured AWS MSK as client. The option is a com.amazonaws.services.kafka.AWSKafka type. |  | String
+| *camel.component.aws-msk.msk-client* | To use a existing configured AWS MSK as client. The option is a com.amazonaws.services.kafka.AWSKafka type. |  | AWSKafka
 | *camel.component.aws-msk.operation* | The operation to perform |  | MSKOperations
 | *camel.component.aws-msk.proxy-host* | To define a proxy host when instantiating the MSK client |  | String
 | *camel.component.aws-msk.proxy-port* | To define a proxy port when instantiating the MSK client |  | Integer
diff --git a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConfiguration.java b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConfiguration.java
index 98b5e88..3795026 100644
--- a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConfiguration.java
+++ b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.msk.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.kafka.AWSKafka;
 import org.apache.camel.component.aws.msk.MSKComponent;
+import org.apache.camel.component.aws.msk.MSKConfiguration;
 import org.apache.camel.component.aws.msk.MSKOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -54,7 +56,7 @@ public class MSKComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.msk.MSKConfiguration type.
      */
-    private String configuration;
+    private MSKConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -70,7 +72,7 @@ public class MSKComponentConfiguration
      * To use a existing configured AWS MSK as client. The option is a
      * com.amazonaws.services.kafka.AWSKafka type.
      */
-    private String mskClient;
+    private AWSKafka mskClient;
     /**
      * The operation to perform
      */
@@ -120,11 +122,11 @@ public class MSKComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getConfiguration() {
+    public MSKConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(MSKConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -136,11 +138,11 @@ public class MSKComponentConfiguration
         this.lazyStartProducer = lazyStartProducer;
     }
 
-    public String getMskClient() {
+    public AWSKafka getMskClient() {
         return mskClient;
     }
 
-    public void setMskClient(String mskClient) {
+    public void setMskClient(AWSKafka mskClient) {
         this.mskClient = mskClient;
     }
 
diff --git a/components-starter/camel-aws-s3-starter/src/main/docs/aws-s3-starter.adoc b/components-starter/camel-aws-s3-starter/src/main/docs/aws-s3-starter.adoc
index edc6f65..e09e21d 100644
--- a/components-starter/camel-aws-s3-starter/src/main/docs/aws-s3-starter.adoc
+++ b/components-starter/camel-aws-s3-starter/src/main/docs/aws-s3-starter.adoc
@@ -26,21 +26,21 @@ The component supports 40 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-s3.accelerate-mode-enabled* | Define if Accelerate Mode enabled is true or false | false | Boolean
 | *camel.component.aws-s3.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-s3.amazon-s3-client* | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a com.amazonaws.services.s3.AmazonS3 type. |  | String
+| *camel.component.aws-s3.amazon-s3-client* | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a com.amazonaws.services.s3.AmazonS3 type. |  | AmazonS3
 | *camel.component.aws-s3.auto-create-bucket* | Setting the autocreation of the bucket | true | Boolean
 | *camel.component.aws-s3.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws-s3.autoclose-body* | If this option is true and includeBody is true, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | Boolean
 | *camel.component.aws-s3.aws-k-m-s-key-id* | Define the id of KMS key to use in case KMS is enabled |  | String
 | *camel.component.aws-s3.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.aws-s3.chunked-encoding-disabled* | Define if disabled Chunked Encoding is true or false | false | Boolean
-| *camel.component.aws-s3.configuration* | The component configuration. The option is a org.apache.camel.component.aws.s3.S3Configuration type. |  | String
+| *camel.component.aws-s3.configuration* | The component configuration. The option is a org.apache.camel.component.aws.s3.S3Configuration type. |  | S3Configuration
 | *camel.component.aws-s3.delete-after-read* | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, or only the S [...]
 | *camel.component.aws-s3.delete-after-write* | Delete file object after the S3 file has been uploaded | false | Boolean
 | *camel.component.aws-s3.delimiter* | The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
 | *camel.component.aws-s3.dualstack-enabled* | Define if Dualstack enabled is true or false | false | Boolean
 | *camel.component.aws-s3.enabled* | Whether to enable auto configuration of the aws-s3 component. This is enabled by default. |  | Boolean
-| *camel.component.aws-s3.encryption-materials* | The encryption materials to use in case of Symmetric/Asymmetric client usage. The option is a com.amazonaws.services.s3.model.EncryptionMaterials type. |  | String
-| *camel.component.aws-s3.endpoint-configuration* | Amazon AWS Endpoint Configuration. The option is a com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration type. |  | String
+| *camel.component.aws-s3.encryption-materials* | The encryption materials to use in case of Symmetric/Asymmetric client usage. The option is a com.amazonaws.services.s3.model.EncryptionMaterials type. |  | EncryptionMaterials
+| *camel.component.aws-s3.endpoint-configuration* | Amazon AWS Endpoint Configuration. The option is a com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration type. |  | AwsClientBuilder$EndpointConfiguration
 | *camel.component.aws-s3.file-name* | To get the object from the bucket with the given file name |  | String
 | *camel.component.aws-s3.force-global-bucket-access-enabled* | Define if Force Global Bucket Access enabled is true or false | false | Boolean
 | *camel.component.aws-s3.include-body* | If it is true, the exchange body will be set to a stream to the contents of the file. If false, the headers will be set with the S3 object metadata, but the body will be null. This option is strongly related to autocloseBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | Boolean
diff --git a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConfiguration.java b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConfiguration.java
index 63950fe..82982d5 100644
--- a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConfiguration.java
+++ b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConfiguration.java
@@ -18,7 +18,11 @@ package org.apache.camel.component.aws.s3.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
+import com.amazonaws.services.s3.AmazonS3;
+import com.amazonaws.services.s3.model.EncryptionMaterials;
 import org.apache.camel.component.aws.s3.S3Component;
+import org.apache.camel.component.aws.s3.S3Configuration;
 import org.apache.camel.component.aws.s3.S3Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -44,7 +48,7 @@ public class S3ComponentConfiguration
      * Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The
      * option is a com.amazonaws.services.s3.AmazonS3 type.
      */
-    private String amazonS3Client;
+    private AmazonS3 amazonS3Client;
     /**
      * Setting the autocreation of the bucket
      */
@@ -59,12 +63,12 @@ public class S3ComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.s3.S3Configuration type.
      */
-    private String configuration;
+    private S3Configuration configuration;
     /**
      * Amazon AWS Endpoint Configuration. The option is a
      * com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration type.
      */
-    private String endpointConfiguration;
+    private EndpointConfiguration endpointConfiguration;
     /**
      * Whether or not the S3 client should use path style access
      */
@@ -102,7 +106,7 @@ public class S3ComponentConfiguration
      * usage. The option is a
      * com.amazonaws.services.s3.model.EncryptionMaterials type.
      */
-    private String encryptionMaterials;
+    private EncryptionMaterials encryptionMaterials;
     /**
      * Define if encryption must be used or not
      */
@@ -248,11 +252,11 @@ public class S3ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonS3Client() {
+    public AmazonS3 getAmazonS3Client() {
         return amazonS3Client;
     }
 
-    public void setAmazonS3Client(String amazonS3Client) {
+    public void setAmazonS3Client(AmazonS3 amazonS3Client) {
         this.amazonS3Client = amazonS3Client;
     }
 
@@ -272,19 +276,20 @@ public class S3ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public S3Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(S3Configuration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEndpointConfiguration() {
+    public EndpointConfiguration getEndpointConfiguration() {
         return endpointConfiguration;
     }
 
-    public void setEndpointConfiguration(String endpointConfiguration) {
+    public void setEndpointConfiguration(
+            EndpointConfiguration endpointConfiguration) {
         this.endpointConfiguration = endpointConfiguration;
     }
 
@@ -344,11 +349,11 @@ public class S3ComponentConfiguration
         this.useIAMCredentials = useIAMCredentials;
     }
 
-    public String getEncryptionMaterials() {
+    public EncryptionMaterials getEncryptionMaterials() {
         return encryptionMaterials;
     }
 
-    public void setEncryptionMaterials(String encryptionMaterials) {
+    public void setEncryptionMaterials(EncryptionMaterials encryptionMaterials) {
         this.encryptionMaterials = encryptionMaterials;
     }
 
diff --git a/components-starter/camel-aws-ses-starter/src/main/docs/aws-ses-starter.adoc b/components-starter/camel-aws-ses-starter/src/main/docs/aws-ses-starter.adoc
index 8315f40..01026dc 100644
--- a/components-starter/camel-aws-ses-starter/src/main/docs/aws-ses-starter.adoc
+++ b/components-starter/camel-aws-ses-starter/src/main/docs/aws-ses-starter.adoc
@@ -25,9 +25,9 @@ The component supports 16 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-ses.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ses.amazon-s-e-s-client* | To use the AmazonSimpleEmailService as the client. The option is a com.amazonaws.services.simpleemail.AmazonSimpleEmailService type. |  | String
+| *camel.component.aws-ses.amazon-s-e-s-client* | To use the AmazonSimpleEmailService as the client. The option is a com.amazonaws.services.simpleemail.AmazonSimpleEmailService type. |  | AmazonSimpleEmailService
 | *camel.component.aws-ses.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-ses.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ses.SesConfiguration type. |  | String
+| *camel.component.aws-ses.configuration* | The component configuration. The option is a org.apache.camel.component.aws.ses.SesConfiguration type. |  | SesConfiguration
 | *camel.component.aws-ses.enabled* | Whether to enable auto configuration of the aws-ses component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ses.lazy-start-producer* | 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 th [...]
 | *camel.component.aws-ses.proxy-host* | To define a proxy host when instantiating the SES client |  | String
diff --git a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConfiguration.java b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConfiguration.java
index 43360ac..09c9ec1 100644
--- a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConfiguration.java
+++ b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConfiguration.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.aws.ses.springboot;
 import java.util.List;
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
 import org.apache.camel.component.aws.ses.SesComponent;
+import org.apache.camel.component.aws.ses.SesConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -44,7 +46,7 @@ public class SesComponentConfiguration
      * To use the AmazonSimpleEmailService as the client. The option is a
      * com.amazonaws.services.simpleemail.AmazonSimpleEmailService type.
      */
-    private String amazonSESClient;
+    private AmazonSimpleEmailService amazonSESClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class SesComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.ses.SesConfiguration type.
      */
-    private String configuration;
+    private SesConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,11 +122,11 @@ public class SesComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonSESClient() {
+    public AmazonSimpleEmailService getAmazonSESClient() {
         return amazonSESClient;
     }
 
-    public void setAmazonSESClient(String amazonSESClient) {
+    public void setAmazonSESClient(AmazonSimpleEmailService amazonSESClient) {
         this.amazonSESClient = amazonSESClient;
     }
 
@@ -136,11 +138,11 @@ public class SesComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public SesConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(SesConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-sns-starter/src/main/docs/aws-sns-starter.adoc b/components-starter/camel-aws-sns-starter/src/main/docs/aws-sns-starter.adoc
index 7af8a17..0d076da 100644
--- a/components-starter/camel-aws-sns-starter/src/main/docs/aws-sns-starter.adoc
+++ b/components-starter/camel-aws-sns-starter/src/main/docs/aws-sns-starter.adoc
@@ -25,11 +25,11 @@ The component supports 21 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws-sns.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-sns.amazon-s-n-s-client* | To use the AmazonSNS as the client. The option is a com.amazonaws.services.sns.AmazonSNS type. |  | String
-| *camel.component.aws-sns.amazon-s-q-s-client* | An SQS Client to use as bridge between SNS and SQS. The option is a com.amazonaws.services.sqs.AmazonSQS type. |  | String
+| *camel.component.aws-sns.amazon-s-n-s-client* | To use the AmazonSNS as the client. The option is a com.amazonaws.services.sns.AmazonSNS type. |  | AmazonSNS
+| *camel.component.aws-sns.amazon-s-q-s-client* | An SQS Client to use as bridge between SNS and SQS. The option is a com.amazonaws.services.sqs.AmazonSQS type. |  | AmazonSQS
 | *camel.component.aws-sns.auto-create-topic* | Setting the autocreation of the topic | true | Boolean
 | *camel.component.aws-sns.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws-sns.configuration* | The component configuration. The option is a org.apache.camel.component.aws.sns.SnsConfiguration type. |  | String
+| *camel.component.aws-sns.configuration* | The component configuration. The option is a org.apache.camel.component.aws.sns.SnsConfiguration type. |  | SnsConfiguration
 | *camel.component.aws-sns.enabled* | Whether to enable auto configuration of the aws-sns component. This is enabled by default. |  | Boolean
 | *camel.component.aws-sns.kms-master-key-id* | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
 | *camel.component.aws-sns.lazy-start-producer* | 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 th [...]
diff --git a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConfiguration.java b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConfiguration.java
index 083c6fd..bd03ff2 100644
--- a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConfiguration.java
+++ b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConfiguration.java
@@ -18,7 +18,10 @@ package org.apache.camel.component.aws.sns.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.sns.AmazonSNS;
+import com.amazonaws.services.sqs.AmazonSQS;
 import org.apache.camel.component.aws.sns.SnsComponent;
+import org.apache.camel.component.aws.sns.SnsConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -43,12 +46,12 @@ public class SnsComponentConfiguration
      * To use the AmazonSNS as the client. The option is a
      * com.amazonaws.services.sns.AmazonSNS type.
      */
-    private String amazonSNSClient;
+    private AmazonSNS amazonSNSClient;
     /**
      * An SQS Client to use as bridge between SNS and SQS. The option is a
      * com.amazonaws.services.sqs.AmazonSQS type.
      */
-    private String amazonSQSClient;
+    private AmazonSQS amazonSQSClient;
     /**
      * Setting the autocreation of the topic
      */
@@ -63,7 +66,7 @@ public class SnsComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.sns.SnsConfiguration type.
      */
-    private String configuration;
+    private SnsConfiguration configuration;
     /**
      * The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a
      * custom CMK.
@@ -138,19 +141,19 @@ public class SnsComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonSNSClient() {
+    public AmazonSNS getAmazonSNSClient() {
         return amazonSNSClient;
     }
 
-    public void setAmazonSNSClient(String amazonSNSClient) {
+    public void setAmazonSNSClient(AmazonSNS amazonSNSClient) {
         this.amazonSNSClient = amazonSNSClient;
     }
 
-    public String getAmazonSQSClient() {
+    public AmazonSQS getAmazonSQSClient() {
         return amazonSQSClient;
     }
 
-    public void setAmazonSQSClient(String amazonSQSClient) {
+    public void setAmazonSQSClient(AmazonSQS amazonSQSClient) {
         this.amazonSQSClient = amazonSQSClient;
     }
 
@@ -170,11 +173,11 @@ public class SnsComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public SnsConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(SnsConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-sqs-starter/src/main/docs/aws-sqs-starter.adoc b/components-starter/camel-aws-sqs-starter/src/main/docs/aws-sqs-starter.adoc
index b0a295a..9463bbe 100644
--- a/components-starter/camel-aws-sqs-starter/src/main/docs/aws-sqs-starter.adoc
+++ b/components-starter/camel-aws-sqs-starter/src/main/docs/aws-sqs-starter.adoc
@@ -26,13 +26,13 @@ The component supports 40 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-sqs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-sqs.amazon-a-w-s-host* | The hostname of the Amazon AWS cloud. | amazonaws.com | String
-| *camel.component.aws-sqs.amazon-s-q-s-client* | To use the AmazonSQS as client. The option is a com.amazonaws.services.sqs.AmazonSQS type. |  | String
+| *camel.component.aws-sqs.amazon-s-q-s-client* | To use the AmazonSQS as client. The option is a com.amazonaws.services.sqs.AmazonSQS type. |  | AmazonSQS
 | *camel.component.aws-sqs.attribute-names* | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
 | *camel.component.aws-sqs.auto-create-queue* | Setting the autocreation of the queue | true | Boolean
 | *camel.component.aws-sqs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws-sqs.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.aws-sqs.concurrent-consumers* | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | Integer
-| *camel.component.aws-sqs.configuration* | The component configuration. The option is a org.apache.camel.component.aws.sqs.SqsConfiguration type. |  | String
+| *camel.component.aws-sqs.configuration* | The component configuration. The option is a org.apache.camel.component.aws.sqs.SqsConfiguration type. |  | SqsConfiguration
 | *camel.component.aws-sqs.default-visibility-timeout* | The default visibility timeout (in seconds) |  | Integer
 | *camel.component.aws-sqs.delay-queue* | Define if you want to apply delaySeconds option to the queue or on single messages | false | Boolean
 | *camel.component.aws-sqs.delay-seconds* | Delay sending messages for a number of seconds. |  | Integer
diff --git a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
index f9cfdbc..6df0bed 100644
--- a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
+++ b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.sqs.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.sqs.AmazonSQS;
 import org.apache.camel.component.aws.sqs.SqsComponent;
+import org.apache.camel.component.aws.sqs.SqsConfiguration;
 import org.apache.camel.component.aws.sqs.SqsOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -48,7 +50,7 @@ public class SqsComponentConfiguration
      * To use the AmazonSQS as client. The option is a
      * com.amazonaws.services.sqs.AmazonSQS type.
      */
-    private String amazonSQSClient;
+    private AmazonSQS amazonSQSClient;
     /**
      * Setting the autocreation of the queue
      */
@@ -63,7 +65,7 @@ public class SqsComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.sqs.SqsConfiguration type.
      */
-    private String configuration;
+    private SqsConfiguration configuration;
     /**
      * The underlying protocol used to communicate with SQS
      */
@@ -259,11 +261,11 @@ public class SqsComponentConfiguration
         this.amazonAWSHost = amazonAWSHost;
     }
 
-    public String getAmazonSQSClient() {
+    public AmazonSQS getAmazonSQSClient() {
         return amazonSQSClient;
     }
 
-    public void setAmazonSQSClient(String amazonSQSClient) {
+    public void setAmazonSQSClient(AmazonSQS amazonSQSClient) {
         this.amazonSQSClient = amazonSQSClient;
     }
 
@@ -283,11 +285,11 @@ public class SqsComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public SqsConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(SqsConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws-swf-starter/src/main/docs/aws-swf-starter.adoc b/components-starter/camel-aws-swf-starter/src/main/docs/aws-swf-starter.adoc
index 5eb729a..d6531a5 100644
--- a/components-starter/camel-aws-swf-starter/src/main/docs/aws-swf-starter.adoc
+++ b/components-starter/camel-aws-swf-starter/src/main/docs/aws-swf-starter.adoc
@@ -26,16 +26,16 @@ The component supports 31 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-swf.access-key* | Amazon AWS Access Key. |  | String
 | *camel.component.aws-swf.activity-list* | The list name to consume activities from. |  | String
-| *camel.component.aws-swf.activity-scheduling-options* | Activity scheduling options. The option is a com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions type. |  | String
+| *camel.component.aws-swf.activity-scheduling-options* | Activity scheduling options. The option is a com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions type. |  | ActivitySchedulingOptions
 | *camel.component.aws-swf.activity-thread-pool-size* | Maximum number of threads in work pool for activity. | 100 | Integer
-| *camel.component.aws-swf.activity-type-execution-options* | Activity execution options. The option is a com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions type. |  | String
-| *camel.component.aws-swf.activity-type-registration-options* | Activity registration options. The option is a com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions type. |  | String
-| *camel.component.aws-swf.amazon-s-w-client* | To use the given AmazonSimpleWorkflowClient as client. The option is a com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow type. |  | String
+| *camel.component.aws-swf.activity-type-execution-options* | Activity execution options. The option is a com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions type. |  | ActivityTypeExecutionOptions
+| *camel.component.aws-swf.activity-type-registration-options* | Activity registration options. The option is a com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions type. |  | ActivityTypeRegistrationOptions
+| *camel.component.aws-swf.amazon-s-w-client* | To use the given AmazonSimpleWorkflowClient as client. The option is a com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow type. |  | AmazonSimpleWorkflow
 | *camel.component.aws-swf.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.aws-swf.child-policy* | The policy to use on child workflows when terminating a workflow. |  | String
 | *camel.component.aws-swf.client-configuration-parameters* | To configure the ClientConfiguration using the key/values from the Map. |  | Map
-| *camel.component.aws-swf.configuration* | The component configuration. The option is a org.apache.camel.component.aws.swf.SWFConfiguration type. |  | String
-| *camel.component.aws-swf.data-converter* | An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter to use for serializing/deserializing the data. The option is a com.amazonaws.services.simpleworkflow.flow.DataConverter type. |  | String
+| *camel.component.aws-swf.configuration* | The component configuration. The option is a org.apache.camel.component.aws.swf.SWFConfiguration type. |  | SWFConfiguration
+| *camel.component.aws-swf.data-converter* | An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter to use for serializing/deserializing the data. The option is a com.amazonaws.services.simpleworkflow.flow.DataConverter type. |  | DataConverter
 | *camel.component.aws-swf.domain-name* | The workflow domain to use. |  | String
 | *camel.component.aws-swf.enabled* | Whether to enable auto configuration of the aws-swf component. This is enabled by default. |  | Boolean
 | *camel.component.aws-swf.event-name* | The workflow or activity event name to use. |  | String
@@ -53,7 +53,7 @@ The component supports 31 options, which are listed below.
 | *camel.component.aws-swf.termination-reason* | The reason for terminating a workflow. |  | String
 | *camel.component.aws-swf.version* | The workflow or activity event version to use. |  | String
 | *camel.component.aws-swf.workflow-list* | The list name to consume workflows from. |  | String
-| *camel.component.aws-swf.workflow-type-registration-options* | Workflow registration options. The option is a com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions type. |  | String
+| *camel.component.aws-swf.workflow-type-registration-options* | Workflow registration options. The option is a com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions type. |  | WorkflowTypeRegistrationOptions
 | *camel.component.aws-swf.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConfiguration.java b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConfiguration.java
index dbe8ce7..f930c3d 100644
--- a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConfiguration.java
+++ b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConfiguration.java
@@ -18,6 +18,13 @@ package org.apache.camel.component.aws.swf.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow;
+import com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions;
+import com.amazonaws.services.simpleworkflow.flow.DataConverter;
+import com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions;
+import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions;
+import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions;
+import org.apache.camel.component.aws.swf.SWFConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -42,18 +49,18 @@ public class SWFComponentConfiguration
      * To use the given AmazonSimpleWorkflowClient as client. The option is a
      * com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow type.
      */
-    private String amazonSWClient;
+    private AmazonSimpleWorkflow amazonSWClient;
     /**
      * The component configuration. The option is a
      * org.apache.camel.component.aws.swf.SWFConfiguration type.
      */
-    private String configuration;
+    private SWFConfiguration configuration;
     /**
      * An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter
      * to use for serializing/deserializing the data. The option is a
      * com.amazonaws.services.simpleworkflow.flow.DataConverter type.
      */
-    private String dataConverter;
+    private DataConverter dataConverter;
     /**
      * The workflow domain to use.
      */
@@ -101,7 +108,7 @@ public class SWFComponentConfiguration
      * com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions
      * type.
      */
-    private String activitySchedulingOptions;
+    private ActivitySchedulingOptions activitySchedulingOptions;
     /**
      * Maximum number of threads in work pool for activity.
      */
@@ -110,12 +117,12 @@ public class SWFComponentConfiguration
      * Activity execution options. The option is a
      * com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions type.
      */
-    private String activityTypeExecutionOptions;
+    private ActivityTypeExecutionOptions activityTypeExecutionOptions;
     /**
      * Activity registration options. The option is a
      * com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions type.
      */
-    private String activityTypeRegistrationOptions;
+    private ActivityTypeRegistrationOptions activityTypeRegistrationOptions;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -183,29 +190,29 @@ public class SWFComponentConfiguration
      * Workflow registration options. The option is a
      * com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions type.
      */
-    private String workflowTypeRegistrationOptions;
+    private WorkflowTypeRegistrationOptions workflowTypeRegistrationOptions;
 
-    public String getAmazonSWClient() {
+    public AmazonSimpleWorkflow getAmazonSWClient() {
         return amazonSWClient;
     }
 
-    public void setAmazonSWClient(String amazonSWClient) {
+    public void setAmazonSWClient(AmazonSimpleWorkflow amazonSWClient) {
         this.amazonSWClient = amazonSWClient;
     }
 
-    public String getConfiguration() {
+    public SWFConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(SWFConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getDataConverter() {
+    public DataConverter getDataConverter() {
         return dataConverter;
     }
 
-    public void setDataConverter(String dataConverter) {
+    public void setDataConverter(DataConverter dataConverter) {
         this.dataConverter = dataConverter;
     }
 
@@ -265,11 +272,12 @@ public class SWFComponentConfiguration
         this.activityList = activityList;
     }
 
-    public String getActivitySchedulingOptions() {
+    public ActivitySchedulingOptions getActivitySchedulingOptions() {
         return activitySchedulingOptions;
     }
 
-    public void setActivitySchedulingOptions(String activitySchedulingOptions) {
+    public void setActivitySchedulingOptions(
+            ActivitySchedulingOptions activitySchedulingOptions) {
         this.activitySchedulingOptions = activitySchedulingOptions;
     }
 
@@ -281,21 +289,21 @@ public class SWFComponentConfiguration
         this.activityThreadPoolSize = activityThreadPoolSize;
     }
 
-    public String getActivityTypeExecutionOptions() {
+    public ActivityTypeExecutionOptions getActivityTypeExecutionOptions() {
         return activityTypeExecutionOptions;
     }
 
     public void setActivityTypeExecutionOptions(
-            String activityTypeExecutionOptions) {
+            ActivityTypeExecutionOptions activityTypeExecutionOptions) {
         this.activityTypeExecutionOptions = activityTypeExecutionOptions;
     }
 
-    public String getActivityTypeRegistrationOptions() {
+    public ActivityTypeRegistrationOptions getActivityTypeRegistrationOptions() {
         return activityTypeRegistrationOptions;
     }
 
     public void setActivityTypeRegistrationOptions(
-            String activityTypeRegistrationOptions) {
+            ActivityTypeRegistrationOptions activityTypeRegistrationOptions) {
         this.activityTypeRegistrationOptions = activityTypeRegistrationOptions;
     }
 
@@ -425,12 +433,12 @@ public class SWFComponentConfiguration
         this.workflowList = workflowList;
     }
 
-    public String getWorkflowTypeRegistrationOptions() {
+    public WorkflowTypeRegistrationOptions getWorkflowTypeRegistrationOptions() {
         return workflowTypeRegistrationOptions;
     }
 
     public void setWorkflowTypeRegistrationOptions(
-            String workflowTypeRegistrationOptions) {
+            WorkflowTypeRegistrationOptions workflowTypeRegistrationOptions) {
         this.workflowTypeRegistrationOptions = workflowTypeRegistrationOptions;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws-translate-starter/src/main/docs/aws-translate-starter.adoc b/components-starter/camel-aws-translate-starter/src/main/docs/aws-translate-starter.adoc
index b371ed7..3db71a6 100644
--- a/components-starter/camel-aws-translate-starter/src/main/docs/aws-translate-starter.adoc
+++ b/components-starter/camel-aws-translate-starter/src/main/docs/aws-translate-starter.adoc
@@ -27,7 +27,7 @@ The component supports 16 options, which are listed below.
 | *camel.component.aws-translate.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-translate.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws-translate.autodetect-source-language* | Being able to autodetect the source language | false | Boolean
-| *camel.component.aws-translate.configuration* | The component configuration. The option is a org.apache.camel.component.aws.translate.TranslateConfiguration type. |  | String
+| *camel.component.aws-translate.configuration* | The component configuration. The option is a org.apache.camel.component.aws.translate.TranslateConfiguration type. |  | TranslateConfiguration
 | *camel.component.aws-translate.enabled* | Whether to enable auto configuration of the aws-translate component. This is enabled by default. |  | Boolean
 | *camel.component.aws-translate.lazy-start-producer* | 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 proces [...]
 | *camel.component.aws-translate.operation* | The operation to perform |  | TranslateOperations
@@ -38,7 +38,7 @@ The component supports 16 options, which are listed below.
 | *camel.component.aws-translate.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-translate.source-language* | Source language to use |  | String
 | *camel.component.aws-translate.target-language* | Target language to use |  | String
-| *camel.component.aws-translate.translate-client* | To use a existing configured AWS Translate as client. The option is a com.amazonaws.services.translate.AmazonTranslate type. |  | String
+| *camel.component.aws-translate.translate-client* | To use a existing configured AWS Translate as client. The option is a com.amazonaws.services.translate.AmazonTranslate type. |  | AmazonTranslate
 | *camel.component.aws-translate.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConfiguration.java b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConfiguration.java
index e98604a..00b28a7 100644
--- a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConfiguration.java
+++ b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.component.aws.translate.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
+import com.amazonaws.services.translate.AmazonTranslate;
 import org.apache.camel.component.aws.translate.TranslateComponent;
+import org.apache.camel.component.aws.translate.TranslateConfiguration;
 import org.apache.camel.component.aws.translate.TranslateOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -58,7 +60,7 @@ public class TranslateComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws.translate.TranslateConfiguration type.
      */
-    private String configuration;
+    private TranslateConfiguration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -109,7 +111,7 @@ public class TranslateComponentConfiguration
      * To use a existing configured AWS Translate as client. The option is a
      * com.amazonaws.services.translate.AmazonTranslate type.
      */
-    private String translateClient;
+    private AmazonTranslate translateClient;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -141,11 +143,11 @@ public class TranslateComponentConfiguration
         this.autodetectSourceLanguage = autodetectSourceLanguage;
     }
 
-    public String getConfiguration() {
+    public TranslateConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(TranslateConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -221,11 +223,11 @@ public class TranslateComponentConfiguration
         this.targetLanguage = targetLanguage;
     }
 
-    public String getTranslateClient() {
+    public AmazonTranslate getTranslateClient() {
         return translateClient;
     }
 
-    public void setTranslateClient(String translateClient) {
+    public void setTranslateClient(AmazonTranslate translateClient) {
         this.translateClient = translateClient;
     }
 
diff --git a/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena-starter.adoc b/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena-starter.adoc
index 6c68144..c2d52ff 100644
--- a/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena-starter.adoc
+++ b/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena-starter.adoc
@@ -25,10 +25,10 @@ The component supports 31 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-athena.access-key* | Amazon AWS Access Key. |  | String
-| *camel.component.aws2-athena.amazon-athena-client* | The AmazonAthena instance to use as the client. The option is a software.amazon.awssdk.services.athena.AthenaClient type. |  | String
+| *camel.component.aws2-athena.amazon-athena-client* | The AmazonAthena instance to use as the client. The option is a software.amazon.awssdk.services.athena.AthenaClient type. |  | AthenaClient
 | *camel.component.aws2-athena.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
 | *camel.component.aws2-athena.client-request-token* | A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this. |  | String
-| *camel.component.aws2-athena.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.athena.Athena2Configuration type. |  | String
+| *camel.component.aws2-athena.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.athena.Athena2Configuration type. |  | Athena2Configuration
 | *camel.component.aws2-athena.database* | The Athena database to use. |  | String
 | *camel.component.aws2-athena.delay* | Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 2000 | Long
 | *camel.component.aws2-athena.enabled* | Whether to enable auto configuration of the aws2-athena component. This is enabled by default. |  | Boolean
diff --git a/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConfiguration.java b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConfiguration.java
index 20af874..a5cfab1 100644
--- a/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConfiguration.java
@@ -18,12 +18,14 @@ package org.apache.camel.component.aws2.athena.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.athena.Athena2Component;
+import org.apache.camel.component.aws2.athena.Athena2Configuration;
 import org.apache.camel.component.aws2.athena.Athena2Operations;
 import org.apache.camel.component.aws2.athena.Athena2OutputType;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.athena.AthenaClient;
 import software.amazon.awssdk.services.athena.model.EncryptionOption;
 
 /**
@@ -50,7 +52,7 @@ public class Athena2ComponentConfiguration
      * The AmazonAthena instance to use as the client. The option is a
      * software.amazon.awssdk.services.athena.AthenaClient type.
      */
-    private String amazonAthenaClient;
+    private AthenaClient amazonAthenaClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -61,7 +63,7 @@ public class Athena2ComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.athena.Athena2Configuration type.
      */
-    private String configuration;
+    private Athena2Configuration configuration;
     /**
      * The Athena database to use.
      */
@@ -219,11 +221,11 @@ public class Athena2ComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getAmazonAthenaClient() {
+    public AthenaClient getAmazonAthenaClient() {
         return amazonAthenaClient;
     }
 
-    public void setAmazonAthenaClient(String amazonAthenaClient) {
+    public void setAmazonAthenaClient(AthenaClient amazonAthenaClient) {
         this.amazonAthenaClient = amazonAthenaClient;
     }
 
@@ -235,11 +237,11 @@ public class Athena2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Athena2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Athena2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw-starter.adoc b/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw-starter.adoc
index 8c21367..152e26d 100644
--- a/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw-starter.adoc
+++ b/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw-starter.adoc
@@ -25,9 +25,9 @@ The component supports 17 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-cw.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-cw.amazon-cw-client* | To use the AmazonCloudWatch as the client. The option is a software.amazon.awssdk.services.cloudwatch.CloudWatchClient type. |  | String
+| *camel.component.aws2-cw.amazon-cw-client* | To use the AmazonCloudWatch as the client. The option is a software.amazon.awssdk.services.cloudwatch.CloudWatchClient type. |  | CloudWatchClient
 | *camel.component.aws2-cw.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-cw.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.cw.Cw2Configuration type. |  | String
+| *camel.component.aws2-cw.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.cw.Cw2Configuration type. |  | Cw2Configuration
 | *camel.component.aws2-cw.enabled* | Whether to enable auto configuration of the aws2-cw component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-cw.lazy-start-producer* | 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 th [...]
 | *camel.component.aws2-cw.name* | The metric name |  | String
@@ -36,7 +36,7 @@ The component supports 17 options, which are listed below.
 | *camel.component.aws2-cw.proxy-protocol* | To define a proxy protocol when instantiating the CW client |  | Protocol
 | *camel.component.aws2-cw.region* | The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() |  | String
 | *camel.component.aws2-cw.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-cw.timestamp* | The metric timestamp. The option is a java.time.Instant type. |  | String
+| *camel.component.aws2-cw.timestamp* | The metric timestamp. The option is a java.time.Instant type. |  | Instant
 | *camel.component.aws2-cw.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-cw.unit* | The metric unit |  | String
 | *camel.component.aws2-cw.value* | The metric value |  | Double
diff --git a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConfiguration.java b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConfiguration.java
index 18a52e6..2eeafe0 100644
--- a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConfiguration.java
@@ -16,12 +16,15 @@
  */
 package org.apache.camel.component.aws2.cw.springboot;
 
+import java.time.Instant;
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.cw.Cw2Component;
+import org.apache.camel.component.aws2.cw.Cw2Configuration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
 
 /**
  * Sending metrics to AWS CloudWatch using AWS SDK version 2.x.
@@ -43,7 +46,7 @@ public class Cw2ComponentConfiguration
      * To use the AmazonCloudWatch as the client. The option is a
      * software.amazon.awssdk.services.cloudwatch.CloudWatchClient type.
      */
-    private String amazonCwClient;
+    private CloudWatchClient amazonCwClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -54,7 +57,7 @@ public class Cw2ComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.cw.Cw2Configuration type.
      */
-    private String configuration;
+    private Cw2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -91,7 +94,7 @@ public class Cw2ComponentConfiguration
     /**
      * The metric timestamp. The option is a java.time.Instant type.
      */
-    private String timestamp;
+    private Instant timestamp;
     /**
      * If we want to trust all certificates in case of overriding the endpoint
      */
@@ -119,11 +122,11 @@ public class Cw2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonCwClient() {
+    public CloudWatchClient getAmazonCwClient() {
         return amazonCwClient;
     }
 
-    public void setAmazonCwClient(String amazonCwClient) {
+    public void setAmazonCwClient(CloudWatchClient amazonCwClient) {
         this.amazonCwClient = amazonCwClient;
     }
 
@@ -135,11 +138,11 @@ public class Cw2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Cw2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Cw2Configuration configuration) {
         this.configuration = configuration;
     }
 
@@ -191,11 +194,11 @@ public class Cw2ComponentConfiguration
         this.region = region;
     }
 
-    public String getTimestamp() {
+    public Instant getTimestamp() {
         return timestamp;
     }
 
-    public void setTimestamp(String timestamp) {
+    public void setTimestamp(Instant timestamp) {
         this.timestamp = timestamp;
     }
 
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb-starter.adoc b/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb-starter.adoc
index 255150e..d2ddd87 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb-starter.adoc
+++ b/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb-starter.adoc
@@ -25,9 +25,9 @@ The component supports 35 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-ddb.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ddb.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client. The option is a software.amazon.awssdk.services.dynamodb.DynamoDbClient type. |  | String
+| *camel.component.aws2-ddb.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client. The option is a software.amazon.awssdk.services.dynamodb.DynamoDbClient type. |  | DynamoDbClient
 | *camel.component.aws2-ddb.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-ddb.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ddb.Ddb2Configuration type. |  | String
+| *camel.component.aws2-ddb.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ddb.Ddb2Configuration type. |  | Ddb2Configuration
 | *camel.component.aws2-ddb.consistent-read* | Determines whether or not strong consistency should be enforced when data is read. | false | Boolean
 | *camel.component.aws2-ddb.enabled* | Whether to enable auto configuration of the aws2-ddb component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-ddb.key-attribute-name* | Attribute name when creating table |  | String
@@ -43,10 +43,10 @@ The component supports 35 options, which are listed below.
 | *camel.component.aws2-ddb.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-ddb.write-capacity* | The provisioned throughput to reserved for writing resources to your table |  | Long
 | *camel.component.aws2-ddbstream.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ddbstream.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient type. |  | String
+| *camel.component.aws2-ddbstream.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient type. |  | DynamoDbStreamsClient
 | *camel.component.aws2-ddbstream.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
 | *camel.component.aws2-ddbstream.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.aws2-ddbstream.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type. |  | String
+| *camel.component.aws2-ddbstream.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type. |  | Ddb2StreamConfiguration
 | *camel.component.aws2-ddbstream.enabled* | Whether to enable auto configuration of the aws2-ddbstream component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-ddbstream.iterator-type* | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. |  | ShardIteratorType
 | *camel.component.aws2-ddbstream.max-results-per-request* | Maximum number of records that will be fetched in each poll |  | Integer
@@ -55,7 +55,7 @@ The component supports 35 options, which are listed below.
 | *camel.component.aws2-ddbstream.proxy-protocol* | To define a proxy protocol when instantiating the DDBStreams client |  | Protocol
 | *camel.component.aws2-ddbstream.region* | The region in which DDBStreams client needs to work |  | String
 | *camel.component.aws2-ddbstream.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-ddbstream.sequence-number-provider* | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. The option is a org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider type. |  | String
+| *camel.component.aws2-ddbstream.sequence-number-provider* | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. The option is a org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider type. |  | SequenceNumberProvider
 | *camel.component.aws2-ddbstream.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-ddb.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.aws2-ddbstream.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConfiguration.java
index 711c72e..2a0faf9 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.ddb.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.ddb.Ddb2Component;
+import org.apache.camel.component.aws2.ddb.Ddb2Configuration;
 import org.apache.camel.component.aws2.ddb.Ddb2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
 
 /**
  * Store and retrieve data from AWS DynamoDB service using AWS SDK version 2.x.
@@ -44,7 +46,7 @@ public class Ddb2ComponentConfiguration
      * To use the AmazonDynamoDB as the client. The option is a
      * software.amazon.awssdk.services.dynamodb.DynamoDbClient type.
      */
-    private String amazonDDBClient;
+    private DynamoDbClient amazonDDBClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class Ddb2ComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.ddb.Ddb2Configuration type.
      */
-    private String configuration;
+    private Ddb2Configuration configuration;
     /**
      * Determines whether or not strong consistency should be enforced when data
      * is read.
@@ -131,11 +133,11 @@ public class Ddb2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonDDBClient() {
+    public DynamoDbClient getAmazonDDBClient() {
         return amazonDDBClient;
     }
 
-    public void setAmazonDDBClient(String amazonDDBClient) {
+    public void setAmazonDDBClient(DynamoDbClient amazonDDBClient) {
         this.amazonDDBClient = amazonDDBClient;
     }
 
@@ -147,11 +149,11 @@ public class Ddb2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Ddb2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Ddb2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConfiguration.java
index a53f37d..95fba53 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConfiguration.java
@@ -18,11 +18,14 @@ package org.apache.camel.component.aws2.ddbstream.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.ddbstream.Ddb2StreamComponent;
+import org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration;
+import org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
 import software.amazon.awssdk.services.dynamodb.model.ShardIteratorType;
+import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient;
 
 /**
  * Receive messages from AWS DynamoDB Stream service using AWS SDK version 2.x.
@@ -52,7 +55,7 @@ public class Ddb2StreamComponentConfiguration
      * software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient
      * type.
      */
-    private String amazonDynamoDbStreamsClient;
+    private DynamoDbStreamsClient amazonDynamoDbStreamsClient;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -66,7 +69,7 @@ public class Ddb2StreamComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type.
      */
-    private String configuration;
+    private Ddb2StreamConfiguration configuration;
     /**
      * Defines where in the DynaboDB stream to start getting records. Note that
      * using TRIM_HORIZON can cause a significant delay before the stream has
@@ -100,7 +103,7 @@ public class Ddb2StreamComponentConfiguration
      * registry reference or a literal sequence number. The option is a
      * org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider type.
      */
-    private String sequenceNumberProvider;
+    private SequenceNumberProvider sequenceNumberProvider;
     /**
      * If we want to trust all certificates in case of overriding the endpoint
      */
@@ -128,12 +131,12 @@ public class Ddb2StreamComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getAmazonDynamoDbStreamsClient() {
+    public DynamoDbStreamsClient getAmazonDynamoDbStreamsClient() {
         return amazonDynamoDbStreamsClient;
     }
 
     public void setAmazonDynamoDbStreamsClient(
-            String amazonDynamoDbStreamsClient) {
+            DynamoDbStreamsClient amazonDynamoDbStreamsClient) {
         this.amazonDynamoDbStreamsClient = amazonDynamoDbStreamsClient;
     }
 
@@ -145,11 +148,11 @@ public class Ddb2StreamComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public Ddb2StreamConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Ddb2StreamConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -201,11 +204,12 @@ public class Ddb2StreamComponentConfiguration
         this.region = region;
     }
 
-    public String getSequenceNumberProvider() {
+    public SequenceNumberProvider getSequenceNumberProvider() {
         return sequenceNumberProvider;
     }
 
-    public void setSequenceNumberProvider(String sequenceNumberProvider) {
+    public void setSequenceNumberProvider(
+            SequenceNumberProvider sequenceNumberProvider) {
         this.sequenceNumberProvider = sequenceNumberProvider;
     }
 
diff --git a/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2-starter.adoc b/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2-starter.adoc
index 951ad22..9f60b3d 100644
--- a/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2-starter.adoc
+++ b/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2-starter.adoc
@@ -25,9 +25,9 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-ec2.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ec2.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client. The option is a software.amazon.awssdk.services.ec2.Ec2Client type. |  | String
+| *camel.component.aws2-ec2.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client. The option is a software.amazon.awssdk.services.ec2.Ec2Client type. |  | Ec2Client
 | *camel.component.aws2-ec2.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-ec2.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type. |  | String
+| *camel.component.aws2-ec2.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type. |  | AWS2EC2Configuration
 | *camel.component.aws2-ec2.enabled* | Whether to enable auto configuration of the aws2-ec2 component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-ec2.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-ec2.operation* | The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags |  | AWS2EC2Operations
diff --git a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConfiguration.java b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConfiguration.java
index a3f8c3e..620548f 100644
--- a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.ec2.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.ec2.AWS2EC2Component;
+import org.apache.camel.component.aws2.ec2.AWS2EC2Configuration;
 import org.apache.camel.component.aws2.ec2.AWS2EC2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.ec2.Ec2Client;
 
 /**
  * Manage AWS EC2 instances using AWS SDK version 2.x.
@@ -54,12 +56,12 @@ public class AWS2EC2ComponentConfiguration
      * To use a existing configured AmazonEC2Client as client. The option is a
      * software.amazon.awssdk.services.ec2.Ec2Client type.
      */
-    private String amazonEc2Client;
+    private Ec2Client amazonEc2Client;
     /**
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type.
      */
-    private String configuration;
+    private AWS2EC2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -131,19 +133,19 @@ public class AWS2EC2ComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getAmazonEc2Client() {
+    public Ec2Client getAmazonEc2Client() {
         return amazonEc2Client;
     }
 
-    public void setAmazonEc2Client(String amazonEc2Client) {
+    public void setAmazonEc2Client(Ec2Client amazonEc2Client) {
         this.amazonEc2Client = amazonEc2Client;
     }
 
-    public String getConfiguration() {
+    public AWS2EC2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AWS2EC2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
index 9416e50..53d01d0 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
+++ b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
@@ -26,8 +26,8 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-ecs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-ecs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-ecs.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.ecs.ECS2Configuration type. |  | String
-| *camel.component.aws2-ecs.ecs-client* | To use a existing configured AWS ECS as client. The option is a software.amazon.awssdk.services.ecs.EcsClient type. |  | String
+| *camel.component.aws2-ecs.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.ecs.ECS2Configuration type. |  | ECS2Configuration
+| *camel.component.aws2-ecs.ecs-client* | To use a existing configured AWS ECS as client. The option is a software.amazon.awssdk.services.ecs.EcsClient type. |  | EcsClient
 | *camel.component.aws2-ecs.enabled* | Whether to enable auto configuration of the aws2-ecs component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-ecs.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-ecs.operation* | The operation to perform |  | ECS2Operations
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
index 6d03d11..7d93b26 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.ecs.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.ecs.ECS2Component;
+import org.apache.camel.component.aws2.ecs.ECS2Configuration;
 import org.apache.camel.component.aws2.ecs.ECS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.ecs.EcsClient;
 
 /**
  * Manage AWS ECS cluster instances using AWS SDK version 2.x.
@@ -50,12 +52,12 @@ public class ECS2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.ecs.ECS2Configuration type.
      */
-    private String configuration;
+    private ECS2Configuration configuration;
     /**
      * To use a existing configured AWS ECS as client. The option is a
      * software.amazon.awssdk.services.ecs.EcsClient type.
      */
-    private String ecsClient;
+    private EcsClient ecsClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class ECS2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public ECS2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(ECS2Configuration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEcsClient() {
+    public EcsClient getEcsClient() {
         return ecsClient;
     }
 
-    public void setEcsClient(String ecsClient) {
+    public void setEcsClient(EcsClient ecsClient) {
         this.ecsClient = ecsClient;
     }
 
diff --git a/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
index 95bc7bd..b78c1df 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
+++ b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
@@ -26,8 +26,8 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-eks.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-eks.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-eks.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.eks.EKS2Configuration type. |  | String
-| *camel.component.aws2-eks.eks-client* | To use a existing configured AWS EKS as client. The option is a software.amazon.awssdk.services.eks.EksClient type. |  | String
+| *camel.component.aws2-eks.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.eks.EKS2Configuration type. |  | EKS2Configuration
+| *camel.component.aws2-eks.eks-client* | To use a existing configured AWS EKS as client. The option is a software.amazon.awssdk.services.eks.EksClient type. |  | EksClient
 | *camel.component.aws2-eks.enabled* | Whether to enable auto configuration of the aws2-eks component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-eks.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-eks.operation* | The operation to perform |  | EKS2Operations
diff --git a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
index 2663c09..a09a312 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.eks.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.eks.EKS2Component;
+import org.apache.camel.component.aws2.eks.EKS2Configuration;
 import org.apache.camel.component.aws2.eks.EKS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.eks.EksClient;
 
 /**
  * Manage AWS EKS cluster instances using AWS SDK version 2.x.
@@ -50,12 +52,12 @@ public class EKS2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.eks.EKS2Configuration type.
      */
-    private String configuration;
+    private EKS2Configuration configuration;
     /**
      * To use a existing configured AWS EKS as client. The option is a
      * software.amazon.awssdk.services.eks.EksClient type.
      */
-    private String eksClient;
+    private EksClient eksClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class EKS2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public EKS2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(EKS2Configuration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEksClient() {
+    public EksClient getEksClient() {
         return eksClient;
     }
 
-    public void setEksClient(String eksClient) {
+    public void setEksClient(EksClient eksClient) {
         this.eksClient = eksClient;
     }
 
diff --git a/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge-starter.adoc b/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge-starter.adoc
index 54ed5f1..31b8106 100644
--- a/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge-starter.adoc
+++ b/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge-starter.adoc
@@ -26,10 +26,10 @@ The component supports 16 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-eventbridge.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-eventbridge.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-eventbridge.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration type. |  | String
+| *camel.component.aws2-eventbridge.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration type. |  | EventbridgeConfiguration
 | *camel.component.aws2-eventbridge.enabled* | Whether to enable auto configuration of the aws2-eventbridge component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-eventbridge.event-pattern-file* | EventPattern File |  | String
-| *camel.component.aws2-eventbridge.eventbridge-client* | To use a existing configured AWS Eventbridge as client. The option is a software.amazon.awssdk.services.eventbridge.EventBridgeClient type. |  | String
+| *camel.component.aws2-eventbridge.eventbridge-client* | To use a existing configured AWS Eventbridge as client. The option is a software.amazon.awssdk.services.eventbridge.EventBridgeClient type. |  | EventBridgeClient
 | *camel.component.aws2-eventbridge.lazy-start-producer* | 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 pro [...]
 | *camel.component.aws2-eventbridge.operation* | The operation to perform |  | EventbridgeOperations
 | *camel.component.aws2-eventbridge.pojo-request* | If we want to use a POJO request as body or not | false | Boolean
diff --git a/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConfiguration.java b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConfiguration.java
index f1b0fa0..c6a2f3e 100644
--- a/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConfiguration.java
+++ b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.eventbridge.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration;
 import org.apache.camel.component.aws2.eventbridge.EventbridgeOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
 
 /**
  * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
@@ -51,12 +53,12 @@ public class EventbridgeComponentConfiguration
      * org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration
      * type.
      */
-    private String configuration;
+    private EventbridgeConfiguration configuration;
     /**
      * To use a existing configured AWS Eventbridge as client. The option is a
      * software.amazon.awssdk.services.eventbridge.EventBridgeClient type.
      */
-    private String eventbridgeClient;
+    private EventBridgeClient eventbridgeClient;
     /**
      * EventPattern File
      */
@@ -125,19 +127,19 @@ public class EventbridgeComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public EventbridgeConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(EventbridgeConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getEventbridgeClient() {
+    public EventBridgeClient getEventbridgeClient() {
         return eventbridgeClient;
     }
 
-    public void setEventbridgeClient(String eventbridgeClient) {
+    public void setEventbridgeClient(EventBridgeClient eventbridgeClient) {
         this.eventbridgeClient = eventbridgeClient;
     }
 
diff --git a/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam-starter.adoc b/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam-starter.adoc
index 57b9218..546b8f9 100644
--- a/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam-starter.adoc
+++ b/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam-starter.adoc
@@ -26,9 +26,9 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-iam.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-iam.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-iam.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.iam.IAM2Configuration type. |  | String
+| *camel.component.aws2-iam.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.iam.IAM2Configuration type. |  | IAM2Configuration
 | *camel.component.aws2-iam.enabled* | Whether to enable auto configuration of the aws2-iam component. This is enabled by default. |  | Boolean
-| *camel.component.aws2-iam.iam-client* | To use a existing configured AWS IAM as client. The option is a software.amazon.awssdk.services.iam.IamClient type. |  | String
+| *camel.component.aws2-iam.iam-client* | To use a existing configured AWS IAM as client. The option is a software.amazon.awssdk.services.iam.IamClient type. |  | IamClient
 | *camel.component.aws2-iam.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-iam.operation* | The operation to perform |  | IAM2Operations
 | *camel.component.aws2-iam.pojo-request* | If we want to use a POJO request as body or not | false | Boolean
diff --git a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConfiguration.java b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConfiguration.java
index 5497f55..a009b6b 100644
--- a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.iam.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.iam.IAM2Component;
+import org.apache.camel.component.aws2.iam.IAM2Configuration;
 import org.apache.camel.component.aws2.iam.IAM2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.iam.IamClient;
 
 /**
  * Manage AWS IAM instances using AWS SDK version 2.x.
@@ -50,12 +52,12 @@ public class IAM2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.iam.IAM2Configuration type.
      */
-    private String configuration;
+    private IAM2Configuration configuration;
     /**
      * To use a existing configured AWS IAM as client. The option is a
      * software.amazon.awssdk.services.iam.IamClient type.
      */
-    private String iamClient;
+    private IamClient iamClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class IAM2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public IAM2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(IAM2Configuration configuration) {
         this.configuration = configuration;
     }
 
-    public String getIamClient() {
+    public IamClient getIamClient() {
         return iamClient;
     }
 
-    public void setIamClient(String iamClient) {
+    public void setIamClient(IamClient iamClient) {
         this.iamClient = iamClient;
     }
 
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis-starter.adoc b/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis-starter.adoc
index 1521967..7d83824 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis-starter.adoc
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis-starter.adoc
@@ -25,9 +25,9 @@ The component supports 33 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-kinesis-firehose.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-kinesis-firehose.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.firehose.FirehoseClient type. |  | String
+| *camel.component.aws2-kinesis-firehose.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.firehose.FirehoseClient type. |  | FirehoseClient
 | *camel.component.aws2-kinesis-firehose.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
-| *camel.component.aws2-kinesis-firehose.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration type. |  | String
+| *camel.component.aws2-kinesis-firehose.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration type. |  | KinesisFirehose2Configuration
 | *camel.component.aws2-kinesis-firehose.enabled* | Whether to enable auto configuration of the aws2-kinesis-firehose component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-kinesis-firehose.lazy-start-producer* | 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 i [...]
 | *camel.component.aws2-kinesis-firehose.operation* | The operation to do in case the user don't want to send only a record |  | KinesisFirehose2Operations
@@ -38,10 +38,10 @@ The component supports 33 options, which are listed below.
 | *camel.component.aws2-kinesis-firehose.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws2-kinesis-firehose.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-kinesis.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-kinesis.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.kinesis.KinesisClient type. |  | String
+| *camel.component.aws2-kinesis.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.kinesis.KinesisClient type. |  | KinesisClient
 | *camel.component.aws2-kinesis.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | Boolean
 | *camel.component.aws2-kinesis.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.aws2-kinesis.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type. |  | String
+| *camel.component.aws2-kinesis.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type. |  | Kinesis2Configuration
 | *camel.component.aws2-kinesis.enabled* | Whether to enable auto configuration of the aws2-kinesis component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-kinesis.iterator-type* | Defines where in the Kinesis stream to start getting records |  | ShardIteratorType
 | *camel.component.aws2-kinesis.lazy-start-producer* | 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 process [...]
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConfiguration.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConfiguration.java
index 7042c55..25314b7 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.firehose.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.firehose.KinesisFirehose2Component;
+import org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration;
 import org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.firehose.FirehoseClient;
 
 /**
  * Produce data to AWS Kinesis Firehose streams using AWS SDK version 2.x.
@@ -45,7 +47,7 @@ public class KinesisFirehose2ComponentConfiguration
      * The option is a software.amazon.awssdk.services.firehose.FirehoseClient
      * type.
      */
-    private String amazonKinesisFirehoseClient;
+    private FirehoseClient amazonKinesisFirehoseClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -57,7 +59,7 @@ public class KinesisFirehose2ComponentConfiguration
      * org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration
      * type.
      */
-    private String configuration;
+    private KinesisFirehose2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -111,12 +113,12 @@ public class KinesisFirehose2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonKinesisFirehoseClient() {
+    public FirehoseClient getAmazonKinesisFirehoseClient() {
         return amazonKinesisFirehoseClient;
     }
 
     public void setAmazonKinesisFirehoseClient(
-            String amazonKinesisFirehoseClient) {
+            FirehoseClient amazonKinesisFirehoseClient) {
         this.amazonKinesisFirehoseClient = amazonKinesisFirehoseClient;
     }
 
@@ -128,11 +130,11 @@ public class KinesisFirehose2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public KinesisFirehose2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(KinesisFirehose2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConfiguration.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConfiguration.java
index 2f483b1..bf70e1d 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.kinesis.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.kinesis.Kinesis2Component;
+import org.apache.camel.component.aws2.kinesis.Kinesis2Configuration;
 import org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.kinesis.KinesisClient;
 import software.amazon.awssdk.services.kinesis.model.ShardIteratorType;
 
 /**
@@ -46,7 +48,7 @@ public class Kinesis2ComponentConfiguration
      * Amazon Kinesis client to use for all requests for this endpoint. The
      * option is a software.amazon.awssdk.services.kinesis.KinesisClient type.
      */
-    private String amazonKinesisClient;
+    private KinesisClient amazonKinesisClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -57,7 +59,7 @@ public class Kinesis2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type.
      */
-    private String configuration;
+    private Kinesis2Configuration configuration;
     /**
      * To define a proxy host when instantiating the Kinesis client
      */
@@ -141,11 +143,11 @@ public class Kinesis2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonKinesisClient() {
+    public KinesisClient getAmazonKinesisClient() {
         return amazonKinesisClient;
     }
 
-    public void setAmazonKinesisClient(String amazonKinesisClient) {
+    public void setAmazonKinesisClient(KinesisClient amazonKinesisClient) {
         this.amazonKinesisClient = amazonKinesisClient;
     }
 
@@ -157,11 +159,11 @@ public class Kinesis2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Kinesis2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Kinesis2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms-starter.adoc b/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms-starter.adoc
index ffa0690..4ebe747 100644
--- a/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms-starter.adoc
+++ b/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms-starter.adoc
@@ -26,9 +26,9 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-kms.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-kms.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-kms.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.kms.KMS2Configuration type. |  | String
+| *camel.component.aws2-kms.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.kms.KMS2Configuration type. |  | KMS2Configuration
 | *camel.component.aws2-kms.enabled* | Whether to enable auto configuration of the aws2-kms component. This is enabled by default. |  | Boolean
-| *camel.component.aws2-kms.kms-client* | To use a existing configured AWS KMS as client. The option is a software.amazon.awssdk.services.kms.KmsClient type. |  | String
+| *camel.component.aws2-kms.kms-client* | To use a existing configured AWS KMS as client. The option is a software.amazon.awssdk.services.kms.KmsClient type. |  | KmsClient
 | *camel.component.aws2-kms.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-kms.operation* | The operation to perform |  | KMS2Operations
 | *camel.component.aws2-kms.pojo-request* | If we want to use a POJO request as body or not | false | Boolean
diff --git a/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConfiguration.java b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConfiguration.java
index 81ed360..fe4037f 100644
--- a/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.kms.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.kms.KMS2Component;
+import org.apache.camel.component.aws2.kms.KMS2Configuration;
 import org.apache.camel.component.aws2.kms.KMS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.kms.KmsClient;
 
 /**
  * Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
@@ -50,12 +52,12 @@ public class KMS2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.kms.KMS2Configuration type.
      */
-    private String configuration;
+    private KMS2Configuration configuration;
     /**
      * To use a existing configured AWS KMS as client. The option is a
      * software.amazon.awssdk.services.kms.KmsClient type.
      */
-    private String kmsClient;
+    private KmsClient kmsClient;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -120,19 +122,19 @@ public class KMS2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public KMS2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(KMS2Configuration configuration) {
         this.configuration = configuration;
     }
 
-    public String getKmsClient() {
+    public KmsClient getKmsClient() {
         return kmsClient;
     }
 
-    public void setKmsClient(String kmsClient) {
+    public void setKmsClient(KmsClient kmsClient) {
         this.kmsClient = kmsClient;
     }
 
diff --git a/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda-starter.adoc b/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda-starter.adoc
index a1bb6c1..d49ecb7 100644
--- a/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda-starter.adoc
+++ b/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda-starter.adoc
@@ -26,8 +26,8 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-lambda.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-lambda.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-lambda.aws-lambda-client* | To use a existing configured AwsLambdaClient as client. The option is a software.amazon.awssdk.services.lambda.LambdaClient type. |  | String
-| *camel.component.aws2-lambda.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.lambda.Lambda2Configuration type. |  | String
+| *camel.component.aws2-lambda.aws-lambda-client* | To use a existing configured AwsLambdaClient as client. The option is a software.amazon.awssdk.services.lambda.LambdaClient type. |  | LambdaClient
+| *camel.component.aws2-lambda.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.lambda.Lambda2Configuration type. |  | Lambda2Configuration
 | *camel.component.aws2-lambda.enabled* | Whether to enable auto configuration of the aws2-lambda component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-lambda.lazy-start-producer* | 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 processe [...]
 | *camel.component.aws2-lambda.operation* | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction |  | Lambda2Operations
diff --git a/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConfiguration.java b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConfiguration.java
index a906422..48f456b 100644
--- a/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.lambda.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.lambda.Lambda2Component;
+import org.apache.camel.component.aws2.lambda.Lambda2Configuration;
 import org.apache.camel.component.aws2.lambda.Lambda2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.lambda.LambdaClient;
 
 /**
  * Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
@@ -50,7 +52,7 @@ public class Lambda2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.lambda.Lambda2Configuration type.
      */
-    private String configuration;
+    private Lambda2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -85,7 +87,7 @@ public class Lambda2ComponentConfiguration
      * To use a existing configured AwsLambdaClient as client. The option is a
      * software.amazon.awssdk.services.lambda.LambdaClient type.
      */
-    private String awsLambdaClient;
+    private LambdaClient awsLambdaClient;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -121,11 +123,11 @@ public class Lambda2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Lambda2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Lambda2Configuration configuration) {
         this.configuration = configuration;
     }
 
@@ -169,11 +171,11 @@ public class Lambda2ComponentConfiguration
         this.trustAllCertificates = trustAllCertificates;
     }
 
-    public String getAwsLambdaClient() {
+    public LambdaClient getAwsLambdaClient() {
         return awsLambdaClient;
     }
 
-    public void setAwsLambdaClient(String awsLambdaClient) {
+    public void setAwsLambdaClient(LambdaClient awsLambdaClient) {
         this.awsLambdaClient = awsLambdaClient;
     }
 
diff --git a/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq-starter.adoc b/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq-starter.adoc
index 7c52d72..3f54194 100644
--- a/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq-starter.adoc
+++ b/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq-starter.adoc
@@ -25,9 +25,9 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-mq.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-mq.amazon-mq-client* | To use a existing configured AmazonMQClient as client. The option is a software.amazon.awssdk.services.mq.MqClient type. |  | String
+| *camel.component.aws2-mq.amazon-mq-client* | To use a existing configured AmazonMQClient as client. The option is a software.amazon.awssdk.services.mq.MqClient type. |  | MqClient
 | *camel.component.aws2-mq.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-mq.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.mq.MQ2Configuration type. |  | String
+| *camel.component.aws2-mq.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.mq.MQ2Configuration type. |  | MQ2Configuration
 | *camel.component.aws2-mq.enabled* | Whether to enable auto configuration of the aws2-mq component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-mq.lazy-start-producer* | 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 th [...]
 | *camel.component.aws2-mq.operation* | The operation to perform. It can be listBrokers,createBroker,deleteBroker |  | MQ2Operations
diff --git a/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConfiguration.java b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConfiguration.java
index 4d8d079..ffa362f 100644
--- a/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.mq.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.mq.MQ2Component;
+import org.apache.camel.component.aws2.mq.MQ2Configuration;
 import org.apache.camel.component.aws2.mq.MQ2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.mq.MqClient;
 
 /**
  * Manage AWS MQ instances using AWS SDK version 2.x.
@@ -44,7 +46,7 @@ public class MQ2ComponentConfiguration
      * To use a existing configured AmazonMQClient as client. The option is a
      * software.amazon.awssdk.services.mq.MqClient type.
      */
-    private String amazonMqClient;
+    private MqClient amazonMqClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class MQ2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.mq.MQ2Configuration type.
      */
-    private String configuration;
+    private MQ2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -112,11 +114,11 @@ public class MQ2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonMqClient() {
+    public MqClient getAmazonMqClient() {
         return amazonMqClient;
     }
 
-    public void setAmazonMqClient(String amazonMqClient) {
+    public void setAmazonMqClient(MqClient amazonMqClient) {
         this.amazonMqClient = amazonMqClient;
     }
 
@@ -128,11 +130,11 @@ public class MQ2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public MQ2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(MQ2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk-starter.adoc b/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk-starter.adoc
index 0304652..bf8f8e2 100644
--- a/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk-starter.adoc
+++ b/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk-starter.adoc
@@ -26,10 +26,10 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-msk.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-msk.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-msk.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.msk.MSK2Configuration type. |  | String
+| *camel.component.aws2-msk.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.msk.MSK2Configuration type. |  | MSK2Configuration
 | *camel.component.aws2-msk.enabled* | Whether to enable auto configuration of the aws2-msk component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-msk.lazy-start-producer* | 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 t [...]
-| *camel.component.aws2-msk.msk-client* | To use a existing configured AWS MSK as client. The option is a software.amazon.awssdk.services.kafka.KafkaClient type. |  | String
+| *camel.component.aws2-msk.msk-client* | To use a existing configured AWS MSK as client. The option is a software.amazon.awssdk.services.kafka.KafkaClient type. |  | KafkaClient
 | *camel.component.aws2-msk.operation* | The operation to perform |  | MSK2Operations
 | *camel.component.aws2-msk.pojo-request* | If we want to use a POJO request as body or not | false | Boolean
 | *camel.component.aws2-msk.proxy-host* | To define a proxy host when instantiating the MSK client |  | String
diff --git a/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConfiguration.java b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConfiguration.java
index a4e75f6..16439ff 100644
--- a/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.msk.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.msk.MSK2Component;
+import org.apache.camel.component.aws2.msk.MSK2Configuration;
 import org.apache.camel.component.aws2.msk.MSK2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.kafka.KafkaClient;
 
 /**
  * Manage AWS MSK instances using AWS SDK version 2.x.
@@ -50,7 +52,7 @@ public class MSK2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.msk.MSK2Configuration type.
      */
-    private String configuration;
+    private MSK2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -66,7 +68,7 @@ public class MSK2ComponentConfiguration
      * To use a existing configured AWS MSK as client. The option is a
      * software.amazon.awssdk.services.kafka.KafkaClient type.
      */
-    private String mskClient;
+    private KafkaClient mskClient;
     /**
      * The operation to perform
      */
@@ -120,11 +122,11 @@ public class MSK2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public MSK2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(MSK2Configuration configuration) {
         this.configuration = configuration;
     }
 
@@ -136,11 +138,11 @@ public class MSK2ComponentConfiguration
         this.lazyStartProducer = lazyStartProducer;
     }
 
-    public String getMskClient() {
+    public KafkaClient getMskClient() {
         return mskClient;
     }
 
-    public void setMskClient(String mskClient) {
+    public void setMskClient(KafkaClient mskClient) {
         this.mskClient = mskClient;
     }
 
diff --git a/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3-starter.adoc b/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3-starter.adoc
index e0f7be3..2c6259a 100644
--- a/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3-starter.adoc
+++ b/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3-starter.adoc
@@ -25,13 +25,13 @@ The component supports 43 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-s3.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-s3.amazon-s3-client* | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a software.amazon.awssdk.services.s3.S3Client type. |  | String
+| *camel.component.aws2-s3.amazon-s3-client* | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a software.amazon.awssdk.services.s3.S3Client type. |  | S3Client
 | *camel.component.aws2-s3.auto-create-bucket* | Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfterRead option enabled and it will create the destinationBucket if it doesn't exist already. | true | Boolean
 | *camel.component.aws2-s3.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws2-s3.autoclose-body* | If this option is true and includeBody is true, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | Boolean
 | *camel.component.aws2-s3.aws-k-m-s-key-id* | Define the id of KMS key to use in case KMS is enabled |  | String
 | *camel.component.aws2-s3.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.aws2-s3.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.s3.AWS2S3Configuration type. |  | String
+| *camel.component.aws2-s3.configuration* | The component configuration. The option is a org.apache.camel.component.aws2.s3.AWS2S3Configuration type. |  | AWS2S3Configuration
 | *camel.component.aws2-s3.customer-algorithm* | Define the customer algorithm to use in case CustomerKey is enabled |  | String
 | *camel.component.aws2-s3.customer-key-id* | Define the id of Customer key to use in case CustomerKey is enabled |  | String
 | *camel.component.aws2-s3.customer-key-m-d5* | Define the MD5 of Customer key to use in case CustomerKey is enabled |  | String
diff --git a/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConfiguration.java b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConfiguration.java
index 9c43ae2..6d1e1e9 100644
--- a/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConfiguration.java
+++ b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.s3.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.s3.AWS2S3Component;
+import org.apache.camel.component.aws2.s3.AWS2S3Configuration;
 import org.apache.camel.component.aws2.s3.AWS2S3Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.s3.S3Client;
 
 /**
  * Store and retrieve objects from AWS S3 Storage Service using AWS SDK version
@@ -45,7 +47,7 @@ public class AWS2S3ComponentConfiguration
      * Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The
      * option is a software.amazon.awssdk.services.s3.S3Client type.
      */
-    private String amazonS3Client;
+    private S3Client amazonS3Client;
     /**
      * Setting the autocreation of the S3 bucket bucketName. This will apply
      * also in case of moveAfterRead option enabled and it will create the
@@ -62,7 +64,7 @@ public class AWS2S3ComponentConfiguration
      * The component configuration. The option is a
      * org.apache.camel.component.aws2.s3.AWS2S3Configuration type.
      */
-    private String configuration;
+    private AWS2S3Configuration configuration;
     /**
      * Set the need for overidding the endpoint. This option needs to be used in
      * combination with uriEndpointOverride option
@@ -268,11 +270,11 @@ public class AWS2S3ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonS3Client() {
+    public S3Client getAmazonS3Client() {
         return amazonS3Client;
     }
 
-    public void setAmazonS3Client(String amazonS3Client) {
+    public void setAmazonS3Client(S3Client amazonS3Client) {
         this.amazonS3Client = amazonS3Client;
     }
 
@@ -292,11 +294,11 @@ public class AWS2S3ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public AWS2S3Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(AWS2S3Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses-starter.adoc b/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses-starter.adoc
index 1f733d0..9edd939 100644
--- a/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses-starter.adoc
+++ b/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses-starter.adoc
@@ -25,9 +25,9 @@ The component supports 17 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-ses.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ses.amazon-s-e-s-client* | To use the AmazonSimpleEmailService as the client. The option is a software.amazon.awssdk.services.ses.SesClient type. |  | String
+| *camel.component.aws2-ses.amazon-s-e-s-client* | To use the AmazonSimpleEmailService as the client. The option is a software.amazon.awssdk.services.ses.SesClient type. |  | SesClient
 | *camel.component.aws2-ses.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-ses.configuration* | component configuration. The option is a org.apache.camel.component.aws2.ses.Ses2Configuration type. |  | String
+| *camel.component.aws2-ses.configuration* | component configuration. The option is a org.apache.camel.component.aws2.ses.Ses2Configuration type. |  | Ses2Configuration
 | *camel.component.aws2-ses.enabled* | Whether to enable auto configuration of the aws2-ses component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-ses.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-ses.proxy-host* | To define a proxy host when instantiating the SES client |  | String
diff --git a/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConfiguration.java b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConfiguration.java
index 4e03f14..37c7f6b 100644
--- a/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConfiguration.java
@@ -19,10 +19,12 @@ package org.apache.camel.component.aws2.ses.springboot;
 import java.util.List;
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.ses.Ses2Component;
+import org.apache.camel.component.aws2.ses.Ses2Configuration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.ses.SesClient;
 
 /**
  * Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -44,7 +46,7 @@ public class Ses2ComponentConfiguration
      * To use the AmazonSimpleEmailService as the client. The option is a
      * software.amazon.awssdk.services.ses.SesClient type.
      */
-    private String amazonSESClient;
+    private SesClient amazonSESClient;
     /**
      * Setting the autoDiscoverClient mechanism, if true, the component will
      * look for a client instance in the registry automatically otherwise it
@@ -55,7 +57,7 @@ public class Ses2ComponentConfiguration
      * component configuration. The option is a
      * org.apache.camel.component.aws2.ses.Ses2Configuration type.
      */
-    private String configuration;
+    private Ses2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -124,11 +126,11 @@ public class Ses2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonSESClient() {
+    public SesClient getAmazonSESClient() {
         return amazonSESClient;
     }
 
-    public void setAmazonSESClient(String amazonSESClient) {
+    public void setAmazonSESClient(SesClient amazonSESClient) {
         this.amazonSESClient = amazonSESClient;
     }
 
@@ -140,11 +142,11 @@ public class Ses2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Ses2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Ses2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns-starter.adoc b/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns-starter.adoc
index 54b262f..9c2cb02 100644
--- a/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns-starter.adoc
+++ b/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns-starter.adoc
@@ -25,10 +25,10 @@ The component supports 21 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-sns.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-sns.amazon-s-n-s-client* | To use the AmazonSNS as the client. The option is a software.amazon.awssdk.services.sns.SnsClient type. |  | String
+| *camel.component.aws2-sns.amazon-s-n-s-client* | To use the AmazonSNS as the client. The option is a software.amazon.awssdk.services.sns.SnsClient type. |  | SnsClient
 | *camel.component.aws2-sns.auto-create-topic* | Setting the autocreation of the topic | true | Boolean
 | *camel.component.aws2-sns.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-sns.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.sns.Sns2Configuration type. |  | String
+| *camel.component.aws2-sns.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.sns.Sns2Configuration type. |  | Sns2Configuration
 | *camel.component.aws2-sns.enabled* | Whether to enable auto configuration of the aws2-sns component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-sns.kms-master-key-id* | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
 | *camel.component.aws2-sns.lazy-start-producer* | 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 t [...]
diff --git a/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConfiguration.java b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConfiguration.java
index 8f6c738..343482c 100644
--- a/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConfiguration.java
@@ -18,10 +18,12 @@ package org.apache.camel.component.aws2.sns.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.sns.Sns2Component;
+import org.apache.camel.component.aws2.sns.Sns2Configuration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.sns.SnsClient;
 
 /**
  * Send messages to an AWS Simple Notification Topic using AWS SDK version 2.x.
@@ -43,7 +45,7 @@ public class Sns2ComponentConfiguration
      * To use the AmazonSNS as the client. The option is a
      * software.amazon.awssdk.services.sns.SnsClient type.
      */
-    private String amazonSNSClient;
+    private SnsClient amazonSNSClient;
     /**
      * Setting the autocreation of the topic
      */
@@ -58,7 +60,7 @@ public class Sns2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.sns.Sns2Configuration type.
      */
-    private String configuration;
+    private Sns2Configuration configuration;
     /**
      * The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a
      * custom CMK.
@@ -137,11 +139,11 @@ public class Sns2ComponentConfiguration
      */
     private String secretKey;
 
-    public String getAmazonSNSClient() {
+    public SnsClient getAmazonSNSClient() {
         return amazonSNSClient;
     }
 
-    public void setAmazonSNSClient(String amazonSNSClient) {
+    public void setAmazonSNSClient(SnsClient amazonSNSClient) {
         this.amazonSNSClient = amazonSNSClient;
     }
 
@@ -161,11 +163,11 @@ public class Sns2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Sns2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Sns2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs-starter.adoc b/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs-starter.adoc
index 3ebc2c1..f6e08fd 100644
--- a/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs-starter.adoc
+++ b/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs-starter.adoc
@@ -26,13 +26,13 @@ The component supports 41 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-sqs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-sqs.amazon-a-w-s-host* | The hostname of the Amazon AWS cloud. | amazonaws.com | String
-| *camel.component.aws2-sqs.amazon-s-q-s-client* | To use the AmazonSQS as client. The option is a software.amazon.awssdk.services.sqs.SqsClient type. |  | String
+| *camel.component.aws2-sqs.amazon-s-q-s-client* | To use the AmazonSQS as client. The option is a software.amazon.awssdk.services.sqs.SqsClient type. |  | SqsClient
 | *camel.component.aws2-sqs.attribute-names* | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
 | *camel.component.aws2-sqs.auto-create-queue* | Setting the autocreation of the queue | true | Boolean
 | *camel.component.aws2-sqs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws2-sqs.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.aws2-sqs.concurrent-consumers* | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | Integer
-| *camel.component.aws2-sqs.configuration* | The AWS SQS default configuration. The option is a org.apache.camel.component.aws2.sqs.Sqs2Configuration type. |  | String
+| *camel.component.aws2-sqs.configuration* | The AWS SQS default configuration. The option is a org.apache.camel.component.aws2.sqs.Sqs2Configuration type. |  | Sqs2Configuration
 | *camel.component.aws2-sqs.default-visibility-timeout* | The default visibility timeout (in seconds) |  | Integer
 | *camel.component.aws2-sqs.delay-queue* | Define if you want to apply delaySeconds option to the queue or on single messages | false | Boolean
 | *camel.component.aws2-sqs.delay-seconds* | Delay sending messages for a number of seconds. |  | Integer
diff --git a/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConfiguration.java b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConfiguration.java
index b2bde1f..72ffc66 100644
--- a/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.sqs.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.sqs.Sqs2Component;
+import org.apache.camel.component.aws2.sqs.Sqs2Configuration;
 import org.apache.camel.component.aws2.sqs.Sqs2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.sqs.SqsClient;
 
 /**
  * Sending and receive messages to/from AWS SQS service using AWS SDK version
@@ -49,7 +51,7 @@ public class Sqs2ComponentConfiguration
      * To use the AmazonSQS as client. The option is a
      * software.amazon.awssdk.services.sqs.SqsClient type.
      */
-    private String amazonSQSClient;
+    private SqsClient amazonSQSClient;
     /**
      * Setting the autocreation of the queue
      */
@@ -64,7 +66,7 @@ public class Sqs2ComponentConfiguration
      * The AWS SQS default configuration. The option is a
      * org.apache.camel.component.aws2.sqs.Sqs2Configuration type.
      */
-    private String configuration;
+    private Sqs2Configuration configuration;
     /**
      * The underlying protocol used to communicate with SQS
      */
@@ -263,11 +265,11 @@ public class Sqs2ComponentConfiguration
         this.amazonAWSHost = amazonAWSHost;
     }
 
-    public String getAmazonSQSClient() {
+    public SqsClient getAmazonSQSClient() {
         return amazonSQSClient;
     }
 
-    public void setAmazonSQSClient(String amazonSQSClient) {
+    public void setAmazonSQSClient(SqsClient amazonSQSClient) {
         this.amazonSQSClient = amazonSQSClient;
     }
 
@@ -287,11 +289,11 @@ public class Sqs2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Sqs2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Sqs2Configuration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts-starter.adoc b/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts-starter.adoc
index e3a9ebb..c85d5ee 100644
--- a/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts-starter.adoc
+++ b/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts-starter.adoc
@@ -26,7 +26,7 @@ The component supports 15 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-sts.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-sts.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
-| *camel.component.aws2-sts.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.sts.STS2Configuration type. |  | String
+| *camel.component.aws2-sts.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.sts.STS2Configuration type. |  | STS2Configuration
 | *camel.component.aws2-sts.enabled* | Whether to enable auto configuration of the aws2-sts component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-sts.lazy-start-producer* | 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 t [...]
 | *camel.component.aws2-sts.operation* | The operation to perform |  | STS2Operations
@@ -36,7 +36,7 @@ The component supports 15 options, which are listed below.
 | *camel.component.aws2-sts.proxy-protocol* | To define a proxy protocol when instantiating the STS client |  | Protocol
 | *camel.component.aws2-sts.region* | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
 | *camel.component.aws2-sts.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-sts.sts-client* | To use a existing configured AWS STS as client. The option is a software.amazon.awssdk.services.sts.StsClient type. |  | String
+| *camel.component.aws2-sts.sts-client* | To use a existing configured AWS STS as client. The option is a software.amazon.awssdk.services.sts.StsClient type. |  | StsClient
 | *camel.component.aws2-sts.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-sts.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
diff --git a/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConfiguration.java b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConfiguration.java
index 5033c23..abb5d91 100644
--- a/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.sts.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.sts.STS2Component;
+import org.apache.camel.component.aws2.sts.STS2Configuration;
 import org.apache.camel.component.aws2.sts.STS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.sts.StsClient;
 
 /**
  * Manage AWS STS cluster instances using AWS SDK version 2.x.
@@ -50,7 +52,7 @@ public class STS2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.sts.STS2Configuration type.
      */
-    private String configuration;
+    private STS2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -92,7 +94,7 @@ public class STS2ComponentConfiguration
      * To use a existing configured AWS STS as client. The option is a
      * software.amazon.awssdk.services.sts.StsClient type.
      */
-    private String stsClient;
+    private StsClient stsClient;
     /**
      * If we want to trust all certificates in case of overriding the endpoint
      */
@@ -120,11 +122,11 @@ public class STS2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public STS2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(STS2Configuration configuration) {
         this.configuration = configuration;
     }
 
@@ -184,11 +186,11 @@ public class STS2ComponentConfiguration
         this.region = region;
     }
 
-    public String getStsClient() {
+    public StsClient getStsClient() {
         return stsClient;
     }
 
-    public void setStsClient(String stsClient) {
+    public void setStsClient(StsClient stsClient) {
         this.stsClient = stsClient;
     }
 
diff --git a/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate-starter.adoc b/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate-starter.adoc
index 312ac6f..4f5acfc 100644
--- a/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate-starter.adoc
+++ b/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate-starter.adoc
@@ -27,7 +27,7 @@ The component supports 18 options, which are listed below.
 | *camel.component.aws2-translate.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-translate.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws2-translate.autodetect-source-language* | Being able to autodetect the source language | false | Boolean
-| *camel.component.aws2-translate.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.translate.Translate2Configuration type. |  | String
+| *camel.component.aws2-translate.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.translate.Translate2Configuration type. |  | Translate2Configuration
 | *camel.component.aws2-translate.enabled* | Whether to enable auto configuration of the aws2-translate component. This is enabled by default. |  | Boolean
 | *camel.component.aws2-translate.lazy-start-producer* | 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 proce [...]
 | *camel.component.aws2-translate.operation* | The operation to perform |  | Translate2Operations
@@ -39,7 +39,7 @@ The component supports 18 options, which are listed below.
 | *camel.component.aws2-translate.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws2-translate.source-language* | Source language to use |  | String
 | *camel.component.aws2-translate.target-language* | Target language to use |  | String
-| *camel.component.aws2-translate.translate-client* | To use a existing configured AWS Translate as client. The option is a software.amazon.awssdk.services.translate.TranslateClient type. |  | String
+| *camel.component.aws2-translate.translate-client* | To use a existing configured AWS Translate as client. The option is a software.amazon.awssdk.services.translate.TranslateClient type. |  | TranslateClient
 | *camel.component.aws2-translate.trust-all-certificates* | If we want to trust all certificates in case of overriding the endpoint | false | Boolean
 | *camel.component.aws2-translate.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
diff --git a/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConfiguration.java b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConfiguration.java
index 1a29ff4..7e778ef 100644
--- a/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConfiguration.java
@@ -18,11 +18,13 @@ package org.apache.camel.component.aws2.translate.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.component.aws2.translate.Translate2Component;
+import org.apache.camel.component.aws2.translate.Translate2Configuration;
 import org.apache.camel.component.aws2.translate.Translate2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.translate.TranslateClient;
 
 /**
  * Translate texts using AWS Translate and AWS SDK version 2.x.
@@ -54,7 +56,7 @@ public class Translate2ComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.translate.Translate2Configuration type.
      */
-    private String configuration;
+    private Translate2Configuration configuration;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -104,7 +106,7 @@ public class Translate2ComponentConfiguration
      * To use a existing configured AWS Translate as client. The option is a
      * software.amazon.awssdk.services.translate.TranslateClient type.
      */
-    private String translateClient;
+    private TranslateClient translateClient;
     /**
      * If we want to trust all certificates in case of overriding the endpoint
      */
@@ -140,11 +142,11 @@ public class Translate2ComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public Translate2Configuration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(Translate2Configuration configuration) {
         this.configuration = configuration;
     }
 
@@ -220,11 +222,11 @@ public class Translate2ComponentConfiguration
         this.targetLanguage = targetLanguage;
     }
 
-    public String getTranslateClient() {
+    public TranslateClient getTranslateClient() {
         return translateClient;
     }
 
-    public void setTranslateClient(String translateClient) {
+    public void setTranslateClient(TranslateClient translateClient) {
         this.translateClient = translateClient;
     }
 
diff --git a/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs-starter.adoc b/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs-starter.adoc
index b188104..adec935 100644
--- a/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs-starter.adoc
+++ b/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs-starter.adoc
@@ -24,16 +24,16 @@ The component supports 22 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.azure-eventhubs.amqp-retry-options* | Sets the retry policy for EventHubAsyncClient. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type. |  | String
+| *camel.component.azure-eventhubs.amqp-retry-options* | Sets the retry policy for EventHubAsyncClient. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type. |  | AmqpRetryOptions
 | *camel.component.azure-eventhubs.amqp-transport-type* | Sets the transport type by which all the communication with Azure Event Hubs occurs. Default value is AmqpTransportType#AMQP. |  | AmqpTransportType
 | *camel.component.azure-eventhubs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.azure-eventhubs.blob-access-key* | In case you chose the default BlobCheckpointStore, this sets access key for the associated azure account name to be used for authentication with azure blob services |  | String
 | *camel.component.azure-eventhubs.blob-account-name* | In case you chose the default BlobCheckpointStore, this sets Azure account name to be used for authentication with azure blob services. |  | String
 | *camel.component.azure-eventhubs.blob-container-name* | In case you chose the default BlobCheckpointStore, this sets the blob container that shall be used by the BlobCheckpointStore to store the checkpoint offsets |  | String
-| *camel.component.azure-eventhubs.blob-storage-shared-key-credential* | In case you chose the default BlobCheckpointStore, StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | String
+| *camel.component.azure-eventhubs.blob-storage-shared-key-credential* | In case you chose the default BlobCheckpointStore, StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | StorageSharedKeyCredential
 | *camel.component.azure-eventhubs.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.azure-eventhubs.checkpoint-store* | Sets the CheckpointStore the EventProcessorClient will use for storing partition ownership and checkpoint information. Users can, optionally, provide their own implementation of CheckpointStore which will store ownership and checkpoint information. By default it set to use com.azure.messaging.eventhubs.checkpointstore.blob.BlobCheckpointStore which stores all checkpoint offsets into Azure Blob Storage. The option is a com.azure.messa [...]
-| *camel.component.azure-eventhubs.configuration* | The component configurations. The option is a org.apache.camel.component.azure.eventhubs.EventHubsConfiguration type. |  | String
+| *camel.component.azure-eventhubs.checkpoint-store* | Sets the CheckpointStore the EventProcessorClient will use for storing partition ownership and checkpoint information. Users can, optionally, provide their own implementation of CheckpointStore which will store ownership and checkpoint information. By default it set to use com.azure.messaging.eventhubs.checkpointstore.blob.BlobCheckpointStore which stores all checkpoint offsets into Azure Blob Storage. The option is a com.azure.messa [...]
+| *camel.component.azure-eventhubs.configuration* | The component configurations. The option is a org.apache.camel.component.azure.eventhubs.EventHubsConfiguration type. |  | EventHubsConfiguration
 | *camel.component.azure-eventhubs.connection-string* | Instead of supplying namespace, sharedAccessKey, sharedAccessName ... etc, you can just supply the connection string for your eventHub. The connection string for EventHubs already include all the necessary information to connection to your EventHub. To learn on how to generate the connection string, take a look at this documentation: \https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string |  | String
 | *camel.component.azure-eventhubs.consumer-group-name* | Sets the name of the consumer group this consumer is associated with. Events are read in the context of this group. The name of the consumer group that is created by default is {link #DEFAULT_CONSUMER_GROUP_NAME $Default}. | $Default | String
 | *camel.component.azure-eventhubs.enabled* | Whether to enable auto configuration of the azure-eventhubs component. This is enabled by default. |  | Boolean
@@ -42,7 +42,7 @@ The component supports 22 options, which are listed below.
 | *camel.component.azure-eventhubs.partition-id* | Sets the identifier of the Event Hub partition that the events will be sent to. If the identifier is not specified, the Event Hubs service will be responsible for routing events that are sent to an available partition. |  | String
 | *camel.component.azure-eventhubs.partition-key* | Sets a hashing key to be provided for the batch of events, which instructs the Event Hubs service to map this key to a specific partition. The selection of a partition is stable for a given partition hashing key. Should any other batches of events be sent using the same exact partition hashing key, the Event Hubs service will route them all to the same partition. This should be specified only when there is a need to group events by part [...]
 | *camel.component.azure-eventhubs.prefetch-count* | Sets the count used by the receiver to control the number of events the Event Hub consumer will actively receive and queue locally without regard to whether a receive operation is currently active. | 500 | Integer
-| *camel.component.azure-eventhubs.producer-async-client* | Sets the EventHubProducerAsyncClient.An asynchronous producer responsible for transmitting EventData to a specific Event Hub, grouped together in batches. Depending on the options specified when creating an \{linkEventDataBatch}, the events may be automatically routed to an available partition or specific to a partition. Use by this component to produce the data in camel producer. The option is a com.azure.messaging.eventhubs.Ev [...]
+| *camel.component.azure-eventhubs.producer-async-client* | Sets the EventHubProducerAsyncClient.An asynchronous producer responsible for transmitting EventData to a specific Event Hub, grouped together in batches. Depending on the options specified when creating an \{linkEventDataBatch}, the events may be automatically routed to an available partition or specific to a partition. Use by this component to produce the data in camel producer. The option is a com.azure.messaging.eventhubs.Ev [...]
 | *camel.component.azure-eventhubs.shared-access-key* | The generated value for the SharedAccessName |  | String
 | *camel.component.azure-eventhubs.shared-access-name* | The name you chose for your EventHubs SAS keys |  | String
 | *camel.component.azure-eventhubs.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConfiguration.java b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConfiguration.java
index 51ae730..44f816b 100644
--- a/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConfiguration.java
+++ b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConfiguration.java
@@ -18,9 +18,14 @@ package org.apache.camel.component.azure.eventhubs.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import com.azure.core.amqp.AmqpRetryOptions;
 import com.azure.core.amqp.AmqpTransportType;
+import com.azure.messaging.eventhubs.CheckpointStore;
+import com.azure.messaging.eventhubs.EventHubProducerAsyncClient;
 import com.azure.messaging.eventhubs.models.EventPosition;
+import com.azure.storage.common.StorageSharedKeyCredential;
 import org.apache.camel.component.azure.eventhubs.EventHubsComponent;
+import org.apache.camel.component.azure.eventhubs.EventHubsConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -49,7 +54,7 @@ public class EventHubsComponentConfiguration
      * default retry options are used. The option is a
      * com.azure.core.amqp.AmqpRetryOptions type.
      */
-    private String amqpRetryOptions;
+    private AmqpRetryOptions amqpRetryOptions;
     /**
      * Sets the transport type by which all the communication with Azure Event
      * Hubs occurs. Default value is AmqpTransportType#AMQP.
@@ -65,7 +70,7 @@ public class EventHubsComponentConfiguration
      * The component configurations. The option is a
      * org.apache.camel.component.azure.eventhubs.EventHubsConfiguration type.
      */
-    private String configuration;
+    private EventHubsConfiguration configuration;
     /**
      * In case you chose the default BlobCheckpointStore, this sets access key
      * for the associated azure account name to be used for authentication with
@@ -89,7 +94,7 @@ public class EventHubsComponentConfiguration
      * this holds the important authentication information. The option is a
      * com.azure.storage.common.StorageSharedKeyCredential type.
      */
-    private String blobStorageSharedKeyCredential;
+    private StorageSharedKeyCredential blobStorageSharedKeyCredential;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -108,7 +113,7 @@ public class EventHubsComponentConfiguration
      * which stores all checkpoint offsets into Azure Blob Storage. The option
      * is a com.azure.messaging.eventhubs.CheckpointStore type.
      */
-    private String checkpointStore;
+    private CheckpointStore checkpointStore;
     /**
      * Sets the name of the consumer group this consumer is associated with.
      * Events are read in the context of this group. The name of the consumer
@@ -170,7 +175,7 @@ public class EventHubsComponentConfiguration
      * produce the data in camel producer. The option is a
      * com.azure.messaging.eventhubs.EventHubProducerAsyncClient type.
      */
-    private String producerAsyncClient;
+    private EventHubProducerAsyncClient producerAsyncClient;
     /**
      * Whether the component should use basic property binding (Camel 2.x) or
      * the newer property binding with additional capabilities
@@ -195,11 +200,11 @@ public class EventHubsComponentConfiguration
      */
     private String sharedAccessName;
 
-    public String getAmqpRetryOptions() {
+    public AmqpRetryOptions getAmqpRetryOptions() {
         return amqpRetryOptions;
     }
 
-    public void setAmqpRetryOptions(String amqpRetryOptions) {
+    public void setAmqpRetryOptions(AmqpRetryOptions amqpRetryOptions) {
         this.amqpRetryOptions = amqpRetryOptions;
     }
 
@@ -219,11 +224,11 @@ public class EventHubsComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public EventHubsConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(EventHubsConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -251,12 +256,12 @@ public class EventHubsComponentConfiguration
         this.blobContainerName = blobContainerName;
     }
 
-    public String getBlobStorageSharedKeyCredential() {
+    public StorageSharedKeyCredential getBlobStorageSharedKeyCredential() {
         return blobStorageSharedKeyCredential;
     }
 
     public void setBlobStorageSharedKeyCredential(
-            String blobStorageSharedKeyCredential) {
+            StorageSharedKeyCredential blobStorageSharedKeyCredential) {
         this.blobStorageSharedKeyCredential = blobStorageSharedKeyCredential;
     }
 
@@ -268,11 +273,11 @@ public class EventHubsComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getCheckpointStore() {
+    public CheckpointStore getCheckpointStore() {
         return checkpointStore;
     }
 
-    public void setCheckpointStore(String checkpointStore) {
+    public void setCheckpointStore(CheckpointStore checkpointStore) {
         this.checkpointStore = checkpointStore;
     }
 
@@ -324,11 +329,12 @@ public class EventHubsComponentConfiguration
         this.partitionKey = partitionKey;
     }
 
-    public String getProducerAsyncClient() {
+    public EventHubProducerAsyncClient getProducerAsyncClient() {
         return producerAsyncClient;
     }
 
-    public void setProducerAsyncClient(String producerAsyncClient) {
+    public void setProducerAsyncClient(
+            EventHubProducerAsyncClient producerAsyncClient) {
         this.producerAsyncClient = producerAsyncClient;
     }
 
diff --git a/components-starter/camel-azure-starter/src/main/docs/azure-starter.adoc b/components-starter/camel-azure-starter/src/main/docs/azure-starter.adoc
index e80b37a..7f250c5 100644
--- a/components-starter/camel-azure-starter/src/main/docs/azure-starter.adoc
+++ b/components-starter/camel-azure-starter/src/main/docs/azure-starter.adoc
@@ -24,7 +24,7 @@ The component supports 37 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.azure-blob.azure-blob-client* | The blob service client. The option is a com.microsoft.azure.storage.blob.CloudBlob type. |  | String
+| *camel.component.azure-blob.azure-blob-client* | The blob service client. The option is a com.microsoft.azure.storage.blob.CloudBlob type. |  | CloudBlob
 | *camel.component.azure-blob.blob-metadata* | Set the blob meta-data |  | Map
 | *camel.component.azure-blob.blob-offset* | Set the blob offset for the upload or download operations, default is 0 | 0 | Long
 | *camel.component.azure-blob.blob-prefix* | Set a prefix which can be used for listing the blobs |  | String
@@ -32,8 +32,8 @@ The component supports 37 options, which are listed below.
 | *camel.component.azure-blob.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.azure-blob.close-stream-after-read* | Close the stream after read or keep it open, default is true | true | Boolean
 | *camel.component.azure-blob.close-stream-after-write* | Close the stream after write or keep it open, default is true | true | Boolean
-| *camel.component.azure-blob.configuration* | The Blob Service configuration. The option is a org.apache.camel.component.azure.blob.BlobServiceConfiguration type. |  | String
-| *camel.component.azure-blob.credentials* | Set the storage credentials, required in most cases. The option is a com.microsoft.azure.storage.StorageCredentials type. |  | String
+| *camel.component.azure-blob.configuration* | The Blob Service configuration. The option is a org.apache.camel.component.azure.blob.BlobServiceConfiguration type. |  | BlobServiceConfiguration
+| *camel.component.azure-blob.credentials* | Set the storage credentials, required in most cases. The option is a com.microsoft.azure.storage.StorageCredentials type. |  | StorageCredentials
 | *camel.component.azure-blob.credentials-account-key* | Set the storage account key used during authentication phase |  | String
 | *camel.component.azure-blob.credentials-account-name* | Set the storage account name used during authentication phase |  | String
 | *camel.component.azure-blob.data-length* | Set the data length for the download or page blob upload operations |  | Long
@@ -46,10 +46,10 @@ The component supports 37 options, which are listed below.
 | *camel.component.azure-blob.stream-write-size* | Set the size of the buffer for writing block and page blocks |  | Integer
 | *camel.component.azure-blob.use-flat-listing* | Specify if the flat or hierarchical blob listing should be used | true | Boolean
 | *camel.component.azure-blob.validate-client-u-r-i* | Whether to validate the Azure client URI | true | Boolean
-| *camel.component.azure-queue.azure-queue-client* | The queue service client. The option is a com.microsoft.azure.storage.queue.CloudQueue type. |  | String
+| *camel.component.azure-queue.azure-queue-client* | The queue service client. The option is a com.microsoft.azure.storage.queue.CloudQueue type. |  | CloudQueue
 | *camel.component.azure-queue.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.azure-queue.configuration* | The Queue Service configuration. The option is a org.apache.camel.component.azure.queue.QueueServiceConfiguration type. |  | String
-| *camel.component.azure-queue.credentials* | Set the storage credentials, required in most cases. The option is a com.microsoft.azure.storage.StorageCredentials type. |  | String
+| *camel.component.azure-queue.configuration* | The Queue Service configuration. The option is a org.apache.camel.component.azure.queue.QueueServiceConfiguration type. |  | QueueServiceConfiguration
+| *camel.component.azure-queue.credentials* | Set the storage credentials, required in most cases. The option is a com.microsoft.azure.storage.StorageCredentials type. |  | StorageCredentials
 | *camel.component.azure-queue.credentials-account-key* | Set the storage account key used during authentication phase |  | String
 | *camel.component.azure-queue.credentials-account-name* | Set the storage account name used during authentication phase |  | String
 | *camel.component.azure-queue.enabled* | Whether to enable auto configuration of the azure-queue component. This is enabled by default. |  | Boolean
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConfiguration.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConfiguration.java
index 58be9d6..273c56d 100644
--- a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConfiguration.java
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConfiguration.java
@@ -18,7 +18,10 @@ package org.apache.camel.component.azure.blob.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import com.microsoft.azure.storage.StorageCredentials;
+import com.microsoft.azure.storage.blob.CloudBlob;
 import org.apache.camel.component.azure.blob.BlobServiceComponent;
+import org.apache.camel.component.azure.blob.BlobServiceConfiguration;
 import org.apache.camel.component.azure.blob.BlobServiceOperations;
 import org.apache.camel.component.azure.blob.BlobType;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,7 +48,7 @@ public class BlobServiceComponentConfiguration
      * The blob service client. The option is a
      * com.microsoft.azure.storage.blob.CloudBlob type.
      */
-    private String azureBlobClient;
+    private CloudBlob azureBlobClient;
     /**
      * Set the blob offset for the upload or download operations, default is 0
      */
@@ -62,7 +65,7 @@ public class BlobServiceComponentConfiguration
      * Set the storage credentials, required in most cases. The option is a
      * com.microsoft.azure.storage.StorageCredentials type.
      */
-    private String credentials;
+    private StorageCredentials credentials;
     /**
      * Set the data length for the download or page blob upload operations
      */
@@ -138,7 +141,7 @@ public class BlobServiceComponentConfiguration
      * The Blob Service configuration. The option is a
      * org.apache.camel.component.azure.blob.BlobServiceConfiguration type.
      */
-    private String configuration;
+    private BlobServiceConfiguration configuration;
     /**
      * Set the storage account key used during authentication phase
      */
@@ -148,11 +151,11 @@ public class BlobServiceComponentConfiguration
      */
     private String credentialsAccountName;
 
-    public String getAzureBlobClient() {
+    public CloudBlob getAzureBlobClient() {
         return azureBlobClient;
     }
 
-    public void setAzureBlobClient(String azureBlobClient) {
+    public void setAzureBlobClient(CloudBlob azureBlobClient) {
         this.azureBlobClient = azureBlobClient;
     }
 
@@ -180,11 +183,11 @@ public class BlobServiceComponentConfiguration
         this.closeStreamAfterRead = closeStreamAfterRead;
     }
 
-    public String getCredentials() {
+    public StorageCredentials getCredentials() {
         return credentials;
     }
 
-    public void setCredentials(String credentials) {
+    public void setCredentials(StorageCredentials credentials) {
         this.credentials = credentials;
     }
 
@@ -303,11 +306,11 @@ public class BlobServiceComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public BlobServiceConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(BlobServiceConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConfiguration.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConfiguration.java
index e47ae81..bbd6abf 100644
--- a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConfiguration.java
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConfiguration.java
@@ -17,7 +17,10 @@
 package org.apache.camel.component.azure.queue.springboot;
 
 import javax.annotation.Generated;
+import com.microsoft.azure.storage.StorageCredentials;
+import com.microsoft.azure.storage.queue.CloudQueue;
 import org.apache.camel.component.azure.queue.QueueServiceComponent;
+import org.apache.camel.component.azure.queue.QueueServiceConfiguration;
 import org.apache.camel.component.azure.queue.QueueServiceOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -43,12 +46,12 @@ public class QueueServiceComponentConfiguration
      * The queue service client. The option is a
      * com.microsoft.azure.storage.queue.CloudQueue type.
      */
-    private String azureQueueClient;
+    private CloudQueue azureQueueClient;
     /**
      * Set the storage credentials, required in most cases. The option is a
      * com.microsoft.azure.storage.StorageCredentials type.
      */
-    private String credentials;
+    private StorageCredentials credentials;
     /**
      * Whether to validate the Azure client URI
      */
@@ -99,7 +102,7 @@ public class QueueServiceComponentConfiguration
      * The Queue Service configuration. The option is a
      * org.apache.camel.component.azure.queue.QueueServiceConfiguration type.
      */
-    private String configuration;
+    private QueueServiceConfiguration configuration;
     /**
      * Set the storage account key used during authentication phase
      */
@@ -109,19 +112,19 @@ public class QueueServiceComponentConfiguration
      */
     private String credentialsAccountName;
 
-    public String getAzureQueueClient() {
+    public CloudQueue getAzureQueueClient() {
         return azureQueueClient;
     }
 
-    public void setAzureQueueClient(String azureQueueClient) {
+    public void setAzureQueueClient(CloudQueue azureQueueClient) {
         this.azureQueueClient = azureQueueClient;
     }
 
-    public String getCredentials() {
+    public StorageCredentials getCredentials() {
         return credentials;
     }
 
-    public void setCredentials(String credentials) {
+    public void setCredentials(StorageCredentials credentials) {
         this.credentials = credentials;
     }
 
@@ -192,11 +195,11 @@ public class QueueServiceComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public QueueServiceConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(QueueServiceConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob-starter.adoc b/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob-starter.adoc
index ec266de..d0f1fa2 100644
--- a/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob-starter.adoc
+++ b/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob-starter.adoc
@@ -35,10 +35,10 @@ The component supports 28 options, which are listed below.
 | *camel.component.azure-storage-blob.close-stream-after-read* | Close the stream after read or keep it open, default is true | true | Boolean
 | *camel.component.azure-storage-blob.close-stream-after-write* | Close the stream after write or keep it open, default is true | true | Boolean
 | *camel.component.azure-storage-blob.commit-block-list-later* | When is set to true, the staged blocks will not be committed directly. | true | Boolean
-| *camel.component.azure-storage-blob.configuration* | The component configurations. The option is a org.apache.camel.component.azure.storage.blob.BlobConfiguration type. |  | String
+| *camel.component.azure-storage-blob.configuration* | The component configurations. The option is a org.apache.camel.component.azure.storage.blob.BlobConfiguration type. |  | BlobConfiguration
 | *camel.component.azure-storage-blob.create-append-blob* | When is set to true, the append blocks will be created when committing append blocks. | true | Boolean
 | *camel.component.azure-storage-blob.create-page-blob* | When is set to true, the page blob will be created when uploading page blob. | true | Boolean
-| *camel.component.azure-storage-blob.credentials* | StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | String
+| *camel.component.azure-storage-blob.credentials* | StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | StorageSharedKeyCredential
 | *camel.component.azure-storage-blob.data-count* | How many bytes to include in the range. Must be greater than or equal to 0 if specified. |  | Long
 | *camel.component.azure-storage-blob.download-link-expiration* | Override the default expiration (millis) of URL download link. |  | Long
 | *camel.component.azure-storage-blob.enabled* | Whether to enable auto configuration of the azure-storage-blob component. This is enabled by default. |  | Boolean
@@ -49,8 +49,8 @@ The component supports 28 options, which are listed below.
 | *camel.component.azure-storage-blob.operation* | The blob operation that can be used with this component on the producer |  | BlobOperationsDefinition
 | *camel.component.azure-storage-blob.page-blob-size* | Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary. | 512 | Long
 | *camel.component.azure-storage-blob.prefix* | Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs. |  | String
-| *camel.component.azure-storage-blob.service-client* | Client to a storage account. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. It may also be used to construct URLs to blobs and containers. This client contains operations on a service account. Operations on a container are available on BlobContainerClient through getBlobContainerClient(String), and operations o [...]
-| *camel.component.azure-storage-blob.timeout* | An optional timeout value beyond which a RuntimeException will be raised. The option is a java.time.Duration type. |  | String
+| *camel.component.azure-storage-blob.service-client* | Client to a storage account. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. It may also be used to construct URLs to blobs and containers. This client contains operations on a service account. Operations on a container are available on BlobContainerClient through getBlobContainerClient(String), and operations o [...]
+| *camel.component.azure-storage-blob.timeout* | An optional timeout value beyond which a RuntimeException will be raised. The option is a java.time.Duration type. |  | Duration
 | *camel.component.azure-storage-blob.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConfiguration.java b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConfiguration.java
index 3416576..3f48c1e 100644
--- a/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConfiguration.java
+++ b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConfiguration.java
@@ -16,9 +16,13 @@
  */
 package org.apache.camel.component.azure.storage.blob.springboot;
 
+import java.time.Duration;
 import javax.annotation.Generated;
+import com.azure.storage.blob.BlobServiceClient;
 import com.azure.storage.blob.models.BlockListType;
+import com.azure.storage.common.StorageSharedKeyCredential;
 import org.apache.camel.component.azure.storage.blob.BlobComponent;
+import org.apache.camel.component.azure.storage.blob.BlobConfiguration;
 import org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition;
 import org.apache.camel.component.azure.storage.blob.BlobType;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -69,13 +73,13 @@ public class BlobComponentConfiguration
      * The component configurations. The option is a
      * org.apache.camel.component.azure.storage.blob.BlobConfiguration type.
      */
-    private String configuration;
+    private BlobConfiguration configuration;
     /**
      * StorageSharedKeyCredential can be injected to create the azure client,
      * this holds the important authentication information. The option is a
      * com.azure.storage.common.StorageSharedKeyCredential type.
      */
-    private String credentials;
+    private StorageSharedKeyCredential credentials;
     /**
      * How many bytes to include in the range. Must be greater than or equal to
      * 0 if specified.
@@ -113,12 +117,12 @@ public class BlobComponentConfiguration
      * getBlobContainerClient(String).getBlobClient(String). The option is a
      * com.azure.storage.blob.BlobServiceClient type.
      */
-    private String serviceClient;
+    private BlobServiceClient serviceClient;
     /**
      * An optional timeout value beyond which a RuntimeException will be raised.
      * The option is a java.time.Duration type.
      */
-    private String timeout;
+    private Duration timeout;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -231,19 +235,19 @@ public class BlobComponentConfiguration
         this.closeStreamAfterRead = closeStreamAfterRead;
     }
 
-    public String getConfiguration() {
+    public BlobConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(BlobConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getCredentials() {
+    public StorageSharedKeyCredential getCredentials() {
         return credentials;
     }
 
-    public void setCredentials(String credentials) {
+    public void setCredentials(StorageSharedKeyCredential credentials) {
         this.credentials = credentials;
     }
 
@@ -287,19 +291,19 @@ public class BlobComponentConfiguration
         this.prefix = prefix;
     }
 
-    public String getServiceClient() {
+    public BlobServiceClient getServiceClient() {
         return serviceClient;
     }
 
-    public void setServiceClient(String serviceClient) {
+    public void setServiceClient(BlobServiceClient serviceClient) {
         this.serviceClient = serviceClient;
     }
 
-    public String getTimeout() {
+    public Duration getTimeout() {
         return timeout;
     }
 
-    public void setTimeout(String timeout) {
+    public void setTimeout(Duration timeout) {
         this.timeout = timeout;
     }
 
diff --git a/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue-starter.adoc b/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue-starter.adoc
index df7e557..b4290bd 100644
--- a/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue-starter.adoc
+++ b/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue-starter.adoc
@@ -27,19 +27,19 @@ The component supports 17 options, which are listed below.
 | *camel.component.azure-storage-queue.access-key* | Access key for the associated azure account name to be used for authentication with azure queue services |  | String
 | *camel.component.azure-storage-queue.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.azure-storage-queue.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.azure-storage-queue.configuration* | The component configurations. The option is a org.apache.camel.component.azure.storage.queue.QueueConfiguration type. |  | String
+| *camel.component.azure-storage-queue.configuration* | The component configurations. The option is a org.apache.camel.component.azure.storage.queue.QueueConfiguration type. |  | QueueConfiguration
 | *camel.component.azure-storage-queue.create-queue* | When is set to true, the queue will be automatically created when sending messages to the queue. | true | Boolean
-| *camel.component.azure-storage-queue.credentials* | StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | String
+| *camel.component.azure-storage-queue.credentials* | StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type. |  | StorageSharedKeyCredential
 | *camel.component.azure-storage-queue.enabled* | Whether to enable auto configuration of the azure-storage-queue component. This is enabled by default. |  | Boolean
 | *camel.component.azure-storage-queue.lazy-start-producer* | 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  [...]
 | *camel.component.azure-storage-queue.max-messages* | Maximum number of messages to get, if there are less messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages. | 1 | Integer
 | *camel.component.azure-storage-queue.message-id* | The ID of the message to be deleted or updated. |  | String
 | *camel.component.azure-storage-queue.operation* | Queue service operation hint to the producer |  | QueueOperationDefinition
 | *camel.component.azure-storage-queue.pop-receipt* | Unique identifier that must match for the message to be deleted or updated. |  | String
-| *camel.component.azure-storage-queue.service-client* | Service client to a storage account to interact with the queue service. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. This client contains all the operations for interacting with a queue account in Azure Storage. Operations allowed by the client are creating, listing, and deleting queues, retrieving and updat [...]
-| *camel.component.azure-storage-queue.time-to-live* | How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed the message will not expire. The time to live must be -1 or any positive number. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs ar [...]
-| *camel.component.azure-storage-queue.timeout* | An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown. The option is a java.time.Duration type. |  | String
-| *camel.component.azure-storage-queue.visibility-timeout* | The timeout period for how long the message is invisible in the queue. The timeout must be between 1 seconds and 7 days. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type. |  | String
+| *camel.component.azure-storage-queue.service-client* | Service client to a storage account to interact with the queue service. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. This client contains all the operations for interacting with a queue account in Azure Storage. Operations allowed by the client are creating, listing, and deleting queues, retrieving and updat [...]
+| *camel.component.azure-storage-queue.time-to-live* | How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed the message will not expire. The time to live must be -1 or any positive number. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs ar [...]
+| *camel.component.azure-storage-queue.timeout* | An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown. The option is a java.time.Duration type. |  | Duration
+| *camel.component.azure-storage-queue.visibility-timeout* | The timeout period for how long the message is invisible in the queue. The timeout must be between 1 seconds and 7 days. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type. |  | Duration
 | *camel.component.azure-storage-queue.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConfiguration.java b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConfiguration.java
index 5a6db9c..ae8b406 100644
--- a/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConfiguration.java
+++ b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConfiguration.java
@@ -16,7 +16,11 @@
  */
 package org.apache.camel.component.azure.storage.queue.springboot;
 
+import java.time.Duration;
 import javax.annotation.Generated;
+import com.azure.storage.common.StorageSharedKeyCredential;
+import com.azure.storage.queue.QueueServiceClient;
+import org.apache.camel.component.azure.storage.queue.QueueConfiguration;
 import org.apache.camel.component.azure.storage.queue.QueueOperationDefinition;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -49,7 +53,7 @@ public class QueueComponentConfiguration
      * The component configurations. The option is a
      * org.apache.camel.component.azure.storage.queue.QueueConfiguration type.
      */
-    private String configuration;
+    private QueueConfiguration configuration;
     /**
      * Service client to a storage account to interact with the queue service.
      * This client does not hold any state about a particular storage account
@@ -60,7 +64,7 @@ public class QueueComponentConfiguration
      * updating properties of the account, and retrieving statistics of the
      * account. The option is a com.azure.storage.queue.QueueServiceClient type.
      */
-    private String serviceClient;
+    private QueueServiceClient serviceClient;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -116,7 +120,7 @@ public class QueueComponentConfiguration
      * returned before the timeout concludes a RuntimeException will be thrown.
      * The option is a java.time.Duration type.
      */
-    private String timeout;
+    private Duration timeout;
     /**
      * How long the message will stay alive in the queue. If unset the value
      * will default to 7 days, if -1 is passed the message will not expire. The
@@ -127,7 +131,7 @@ public class QueueComponentConfiguration
      * since these Java APIs are typesafe. The option is a java.time.Duration
      * type.
      */
-    private String timeToLive;
+    private Duration timeToLive;
     /**
      * The timeout period for how long the message is invisible in the queue.
      * The timeout must be between 1 seconds and 7 days. The format should be in
@@ -137,7 +141,7 @@ public class QueueComponentConfiguration
      * since these Java APIs are typesafe. The option is a java.time.Duration
      * type.
      */
-    private String visibilityTimeout;
+    private Duration visibilityTimeout;
     /**
      * Access key for the associated azure account name to be used for
      * authentication with azure queue services
@@ -148,7 +152,7 @@ public class QueueComponentConfiguration
      * this holds the important authentication information. The option is a
      * com.azure.storage.common.StorageSharedKeyCredential type.
      */
-    private String credentials;
+    private StorageSharedKeyCredential credentials;
 
     public Boolean getAutoDiscoverClient() {
         return autoDiscoverClient;
@@ -158,19 +162,19 @@ public class QueueComponentConfiguration
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
-    public String getConfiguration() {
+    public QueueConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(QueueConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getServiceClient() {
+    public QueueServiceClient getServiceClient() {
         return serviceClient;
     }
 
-    public void setServiceClient(String serviceClient) {
+    public void setServiceClient(QueueServiceClient serviceClient) {
         this.serviceClient = serviceClient;
     }
 
@@ -241,27 +245,27 @@ public class QueueComponentConfiguration
         this.popReceipt = popReceipt;
     }
 
-    public String getTimeout() {
+    public Duration getTimeout() {
         return timeout;
     }
 
-    public void setTimeout(String timeout) {
+    public void setTimeout(Duration timeout) {
         this.timeout = timeout;
     }
 
-    public String getTimeToLive() {
+    public Duration getTimeToLive() {
         return timeToLive;
     }
 
-    public void setTimeToLive(String timeToLive) {
+    public void setTimeToLive(Duration timeToLive) {
         this.timeToLive = timeToLive;
     }
 
-    public String getVisibilityTimeout() {
+    public Duration getVisibilityTimeout() {
         return visibilityTimeout;
     }
 
-    public void setVisibilityTimeout(String visibilityTimeout) {
+    public void setVisibilityTimeout(Duration visibilityTimeout) {
         this.visibilityTimeout = visibilityTimeout;
     }
 
@@ -273,11 +277,11 @@ public class QueueComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public String getCredentials() {
+    public StorageSharedKeyCredential getCredentials() {
         return credentials;
     }
 
-    public void setCredentials(String credentials) {
+    public void setCredentials(StorageSharedKeyCredential credentials) {
         this.credentials = credentials;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator-starter.adoc b/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator-starter.adoc
index 2af916a..ff620b5 100644
--- a/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator-starter.adoc
+++ b/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator-starter.adoc
@@ -24,14 +24,14 @@ The component supports 9 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.bean-validator.constraint-validator-factory* | To use a custom ConstraintValidatorFactory. The option is a javax.validation.ConstraintValidatorFactory type. |  | String
+| *camel.component.bean-validator.constraint-validator-factory* | To use a custom ConstraintValidatorFactory. The option is a javax.validation.ConstraintValidatorFactory type. |  | ConstraintValidatorFactory
 | *camel.component.bean-validator.enabled* | Whether to enable auto configuration of the bean-validator component. This is enabled by default. |  | Boolean
 | *camel.component.bean-validator.ignore-xml-configuration* | Whether to ignore data from the META-INF/validation.xml file. | false | Boolean
 | *camel.component.bean-validator.lazy-start-producer* | 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 proce [...]
-| *camel.component.bean-validator.message-interpolator* | To use a custom MessageInterpolator. The option is a javax.validation.MessageInterpolator type. |  | String
-| *camel.component.bean-validator.traversable-resolver* | To use a custom TraversableResolver. The option is a javax.validation.TraversableResolver type. |  | String
-| *camel.component.bean-validator.validation-provider-resolver* | To use a a custom ValidationProviderResolver. The option is a javax.validation.ValidationProviderResolver type. |  | String
-| *camel.component.bean-validator.validator-factory* | To use a custom ValidatorFactory. The option is a javax.validation.ValidatorFactory type. |  | String
+| *camel.component.bean-validator.message-interpolator* | To use a custom MessageInterpolator. The option is a javax.validation.MessageInterpolator type. |  | MessageInterpolator
+| *camel.component.bean-validator.traversable-resolver* | To use a custom TraversableResolver. The option is a javax.validation.TraversableResolver type. |  | TraversableResolver
+| *camel.component.bean-validator.validation-provider-resolver* | To use a a custom ValidationProviderResolver. The option is a javax.validation.ValidationProviderResolver type. |  | ValidationProviderResolver
+| *camel.component.bean-validator.validator-factory* | To use a custom ValidatorFactory. The option is a javax.validation.ValidatorFactory type. |  | ValidatorFactory
 | *camel.component.bean-validator.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConfiguration.java b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConfiguration.java
index 4a48d19..1d8212e 100644
--- a/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConfiguration.java
+++ b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConfiguration.java
@@ -17,6 +17,11 @@
 package org.apache.camel.component.bean.validator.springboot;
 
 import javax.annotation.Generated;
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+import javax.validation.ValidationProviderResolver;
+import javax.validation.ValidatorFactory;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -62,27 +67,27 @@ public class BeanValidatorComponentConfiguration
      * To use a custom ConstraintValidatorFactory. The option is a
      * javax.validation.ConstraintValidatorFactory type.
      */
-    private String constraintValidatorFactory;
+    private ConstraintValidatorFactory constraintValidatorFactory;
     /**
      * To use a custom MessageInterpolator. The option is a
      * javax.validation.MessageInterpolator type.
      */
-    private String messageInterpolator;
+    private MessageInterpolator messageInterpolator;
     /**
      * To use a custom TraversableResolver. The option is a
      * javax.validation.TraversableResolver type.
      */
-    private String traversableResolver;
+    private TraversableResolver traversableResolver;
     /**
      * To use a a custom ValidationProviderResolver. The option is a
      * javax.validation.ValidationProviderResolver type.
      */
-    private String validationProviderResolver;
+    private ValidationProviderResolver validationProviderResolver;
     /**
      * To use a custom ValidatorFactory. The option is a
      * javax.validation.ValidatorFactory type.
      */
-    private String validatorFactory;
+    private ValidatorFactory validatorFactory;
 
     public Boolean getIgnoreXmlConfiguration() {
         return ignoreXmlConfiguration;
@@ -111,43 +116,45 @@ public class BeanValidatorComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConstraintValidatorFactory() {
+    public ConstraintValidatorFactory getConstraintValidatorFactory() {
         return constraintValidatorFactory;
     }
 
-    public void setConstraintValidatorFactory(String constraintValidatorFactory) {
+    public void setConstraintValidatorFactory(
+            ConstraintValidatorFactory constraintValidatorFactory) {
         this.constraintValidatorFactory = constraintValidatorFactory;
     }
 
-    public String getMessageInterpolator() {
+    public MessageInterpolator getMessageInterpolator() {
         return messageInterpolator;
     }
 
-    public void setMessageInterpolator(String messageInterpolator) {
+    public void setMessageInterpolator(MessageInterpolator messageInterpolator) {
         this.messageInterpolator = messageInterpolator;
     }
 
-    public String getTraversableResolver() {
+    public TraversableResolver getTraversableResolver() {
         return traversableResolver;
     }
 
-    public void setTraversableResolver(String traversableResolver) {
+    public void setTraversableResolver(TraversableResolver traversableResolver) {
         this.traversableResolver = traversableResolver;
     }
 
-    public String getValidationProviderResolver() {
+    public ValidationProviderResolver getValidationProviderResolver() {
         return validationProviderResolver;
     }
 
-    public void setValidationProviderResolver(String validationProviderResolver) {
+    public void setValidationProviderResolver(
+            ValidationProviderResolver validationProviderResolver) {
         this.validationProviderResolver = validationProviderResolver;
     }
 
-    public String getValidatorFactory() {
+    public ValidatorFactory getValidatorFactory() {
         return validatorFactory;
     }
 
-    public void setValidatorFactory(String validatorFactory) {
+    public void setValidatorFactory(ValidatorFactory validatorFactory) {
         this.validatorFactory = validatorFactory;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk-starter.adoc b/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk-starter.adoc
index 2666621..9781229 100644
--- a/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk-starter.adoc
+++ b/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk-starter.adoc
@@ -25,7 +25,7 @@ The component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.beanstalk.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.beanstalk.connection-settings-factory* | Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings). The option is a org.apache.camel.component.beanstalk.ConnectionSettingsFactory type. |  | String
+| *camel.component.beanstalk.connection-settings-factory* | Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings). The option is a org.apache.camel.component.beanstalk.ConnectionSettingsFactory type. |  | ConnectionSettingsFactory
 | *camel.component.beanstalk.enabled* | Whether to enable auto configuration of the beanstalk component. This is enabled by default. |  | Boolean
 | *camel.component.beanstalk.lazy-start-producer* | 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  [...]
 | *camel.component.beanstalk.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
index f90026d..07bd63e 100644
--- a/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
+++ b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.beanstalk.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.beanstalk.ConnectionSettingsFactory;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -70,7 +71,7 @@ public class BeanstalkComponentConfiguration
      * option is a
      * org.apache.camel.component.beanstalk.ConnectionSettingsFactory type.
      */
-    private String connectionSettingsFactory;
+    private ConnectionSettingsFactory connectionSettingsFactory;
 
     public Boolean getBridgeErrorHandler() {
         return bridgeErrorHandler;
@@ -99,11 +100,12 @@ public class BeanstalkComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConnectionSettingsFactory() {
+    public ConnectionSettingsFactory getConnectionSettingsFactory() {
         return connectionSettingsFactory;
     }
 
-    public void setConnectionSettingsFactory(String connectionSettingsFactory) {
+    public void setConnectionSettingsFactory(
+            ConnectionSettingsFactory connectionSettingsFactory) {
         this.connectionSettingsFactory = connectionSettingsFactory;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-box-starter/src/main/docs/box-starter.adoc b/components-starter/camel-box-starter/src/main/docs/box-starter.adoc
index 09a96ff..1752e85 100644
--- a/components-starter/camel-box-starter/src/main/docs/box-starter.adoc
+++ b/components-starter/camel-box-starter/src/main/docs/box-starter.adoc
@@ -24,12 +24,12 @@ The component supports 20 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.box.access-token-cache* | Custom Access Token Cache for storing and retrieving access tokens. The option is a com.box.sdk.IAccessTokenCache type. |  | String
+| *camel.component.box.access-token-cache* | Custom Access Token Cache for storing and retrieving access tokens. The option is a com.box.sdk.IAccessTokenCache type. |  | IAccessTokenCache
 | *camel.component.box.authentication-type* | The type of authentication for connection. Types of Authentication: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens | APP_USER_AUTHENTICATION | String
 | *camel.component.box.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.box.client-id* | Box application client ID |  | String
 | *camel.component.box.client-secret* | Box application client secret |  | String
-| *camel.component.box.configuration* | To use the shared configuration. The option is a org.apache.camel.component.box.BoxConfiguration type. |  | String
+| *camel.component.box.configuration* | To use the shared configuration. The option is a org.apache.camel.component.box.BoxConfiguration type. |  | BoxConfiguration
 | *camel.component.box.enabled* | Whether to enable auto configuration of the box component. This is enabled by default. |  | Boolean
 | *camel.component.box.encryption-algorithm* | The type of encryption algorithm for JWT. Supported Algorithms: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512 |  | EncryptionAlgorithm
 | *camel.component.box.enterprise-id* | The enterprise ID to use for an App Enterprise. |  | String
@@ -39,7 +39,7 @@ The component supports 20 options, which are listed below.
 | *camel.component.box.private-key-file* | The private key for generating the JWT signature. |  | String
 | *camel.component.box.private-key-password* | The password for the private key. |  | String
 | *camel.component.box.public-key-id* | The ID for public key for validating the JWT signature. |  | String
-| *camel.component.box.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
+| *camel.component.box.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | SSLContextParameters
 | *camel.component.box.user-id* | The user ID to use for an App User. |  | String
 | *camel.component.box.user-name* | Box user name, MUST be provided |  | String
 | *camel.component.box.user-password* | Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call |  | String
diff --git a/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
index 8813bcd..4497045 100644
--- a/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
+++ b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConfiguration.java
@@ -19,8 +19,11 @@ package org.apache.camel.component.box.springboot;
 import java.util.Map;
 import javax.annotation.Generated;
 import com.box.sdk.EncryptionAlgorithm;
+import com.box.sdk.IAccessTokenCache;
 import org.apache.camel.component.box.BoxComponent;
+import org.apache.camel.component.box.BoxConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.SSLContextParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -49,7 +52,7 @@ public class BoxComponentConfiguration
      * To use the shared configuration. The option is a
      * org.apache.camel.component.box.BoxConfiguration type.
      */
-    private String configuration;
+    private BoxConfiguration configuration;
     /**
      * The enterprise ID to use for an App Enterprise.
      */
@@ -98,7 +101,7 @@ public class BoxComponentConfiguration
      * Custom Access Token Cache for storing and retrieving access tokens. The
      * option is a com.box.sdk.IAccessTokenCache type.
      */
-    private String accessTokenCache;
+    private IAccessTokenCache accessTokenCache;
     /**
      * Box application client secret
      */
@@ -128,7 +131,7 @@ public class BoxComponentConfiguration
      * To configure security using SSLContextParameters. The option is a
      * org.apache.camel.support.jsse.SSLContextParameters type.
      */
-    private String sslContextParameters;
+    private SSLContextParameters sslContextParameters;
     /**
      * Box user name, MUST be provided
      */
@@ -147,11 +150,11 @@ public class BoxComponentConfiguration
         this.clientId = clientId;
     }
 
-    public String getConfiguration() {
+    public BoxConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(BoxConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -214,11 +217,11 @@ public class BoxComponentConfiguration
         this.authenticationType = authenticationType;
     }
 
-    public String getAccessTokenCache() {
+    public IAccessTokenCache getAccessTokenCache() {
         return accessTokenCache;
     }
 
-    public void setAccessTokenCache(String accessTokenCache) {
+    public void setAccessTokenCache(IAccessTokenCache accessTokenCache) {
         this.accessTokenCache = accessTokenCache;
     }
 
@@ -270,11 +273,12 @@ public class BoxComponentConfiguration
         this.publicKeyId = publicKeyId;
     }
 
-    public String getSslContextParameters() {
+    public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
 
-    public void setSslContextParameters(String sslContextParameters) {
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
 
diff --git a/components-starter/camel-braintree-starter/src/main/docs/braintree-starter.adoc b/components-starter/camel-braintree-starter/src/main/docs/braintree-starter.adoc
index e16579c..f5b7b79 100644
--- a/components-starter/camel-braintree-starter/src/main/docs/braintree-starter.adoc
+++ b/components-starter/camel-braintree-starter/src/main/docs/braintree-starter.adoc
@@ -24,7 +24,7 @@ The component supports 4 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.braintree.configuration* | Component configuration. The option is a org.apache.camel.component.braintree.BraintreeConfiguration type. |  | String
+| *camel.component.braintree.configuration* | Component configuration. The option is a org.apache.camel.component.braintree.BraintreeConfiguration type. |  | BraintreeConfiguration
 | *camel.component.braintree.enabled* | Whether to enable auto configuration of the braintree component. This is enabled by default. |  | Boolean
 | *camel.component.braintree.lazy-start-producer* | 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  [...]
 | *camel.component.braintree.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
index 620d4a0..a1c04ef 100644
--- a/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
+++ b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.braintree.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.braintree.BraintreeConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -58,7 +59,7 @@ public class BraintreeComponentConfiguration
      * Component configuration. The option is a
      * org.apache.camel.component.braintree.BraintreeConfiguration type.
      */
-    private String configuration;
+    private BraintreeConfiguration configuration;
 
     public Boolean getLazyStartProducer() {
         return lazyStartProducer;
@@ -79,11 +80,11 @@ public class BraintreeComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public BraintreeConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(BraintreeConfiguration configuration) {
         this.configuration = configuration;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-caffeine-starter/src/main/docs/caffeine-starter.adoc b/components-starter/camel-caffeine-starter/src/main/docs/caffeine-starter.adoc
index dcb90df..fa1b1e4 100644
--- a/components-starter/camel-caffeine-starter/src/main/docs/caffeine-starter.adoc
+++ b/components-starter/camel-caffeine-starter/src/main/docs/caffeine-starter.adoc
@@ -25,37 +25,37 @@ The component supports 36 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.caffeine-cache.action* | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
-| *camel.component.caffeine-cache.cache-loader* | To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type. |  | String
-| *camel.component.caffeine-cache.configuration* | Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type. |  | String
+| *camel.component.caffeine-cache.cache-loader* | To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type. |  | CacheLoader
+| *camel.component.caffeine-cache.configuration* | Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type. |  | CaffeineConfiguration
 | *camel.component.caffeine-cache.create-cache-if-not-exist* | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | Boolean
 | *camel.component.caffeine-cache.enabled* | Whether to enable auto configuration of the caffeine-cache component. This is enabled by default. |  | Boolean
 | *camel.component.caffeine-cache.eviction-type* | Set the eviction Type for this cache |  | EvictionType
 | *camel.component.caffeine-cache.expire-after-access-time* | Set the expire After Access Time in case of time based Eviction (in seconds) | 300 | Integer
 | *camel.component.caffeine-cache.expire-after-write-time* | Set the expire After Access Write in case of time based Eviction (in seconds) | 300 | Integer
 | *camel.component.caffeine-cache.initial-capacity* | Set the initial Capacity for the cache | 10000 | Integer
-| *camel.component.caffeine-cache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | String
+| *camel.component.caffeine-cache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | Object
 | *camel.component.caffeine-cache.key-type* | The cache key type, default java.lang.Object |  | String
 | *camel.component.caffeine-cache.lazy-start-producer* | 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 proce [...]
 | *camel.component.caffeine-cache.maximum-size* | Set the maximum size for the cache | 10000 | Integer
-| *camel.component.caffeine-cache.removal-listener* | Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type. |  | String
-| *camel.component.caffeine-cache.stats-counter* | Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type. |  | String
+| *camel.component.caffeine-cache.removal-listener* | Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type. |  | RemovalListener
+| *camel.component.caffeine-cache.stats-counter* | Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type. |  | StatsCounter
 | *camel.component.caffeine-cache.stats-enabled* | To enable stats on the cache | false | Boolean
 | *camel.component.caffeine-cache.value-type* | The cache value type, default java.lang.Object |  | String
 | *camel.component.caffeine-loadcache.action* | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
-| *camel.component.caffeine-loadcache.cache-loader* | To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type. |  | String
-| *camel.component.caffeine-loadcache.configuration* | Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type. |  | String
+| *camel.component.caffeine-loadcache.cache-loader* | To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type. |  | CacheLoader
+| *camel.component.caffeine-loadcache.configuration* | Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type. |  | CaffeineConfiguration
 | *camel.component.caffeine-loadcache.create-cache-if-not-exist* | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | Boolean
 | *camel.component.caffeine-loadcache.enabled* | Whether to enable auto configuration of the caffeine-loadcache component. This is enabled by default. |  | Boolean
 | *camel.component.caffeine-loadcache.eviction-type* | Set the eviction Type for this cache |  | EvictionType
 | *camel.component.caffeine-loadcache.expire-after-access-time* | Set the expire After Access Time in case of time based Eviction (in seconds) | 300 | Integer
 | *camel.component.caffeine-loadcache.expire-after-write-time* | Set the expire After Access Write in case of time based Eviction (in seconds) | 300 | Integer
 | *camel.component.caffeine-loadcache.initial-capacity* | Set the initial Capacity for the cache | 10000 | Integer
-| *camel.component.caffeine-loadcache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | String
+| *camel.component.caffeine-loadcache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | Object
 | *camel.component.caffeine-loadcache.key-type* | The cache key type, default java.lang.Object |  | String
 | *camel.component.caffeine-loadcache.lazy-start-producer* | 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 p [...]
 | *camel.component.caffeine-loadcache.maximum-size* | Set the maximum size for the cache | 10000 | Integer
-| *camel.component.caffeine-loadcache.removal-listener* | Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type. |  | String
-| *camel.component.caffeine-loadcache.stats-counter* | Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type. |  | String
+| *camel.component.caffeine-loadcache.removal-listener* | Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type. |  | RemovalListener
+| *camel.component.caffeine-loadcache.stats-counter* | Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type. |  | StatsCounter
 | *camel.component.caffeine-loadcache.stats-enabled* | To enable stats on the cache | false | Boolean
 | *camel.component.caffeine-loadcache.value-type* | The cache value type, default java.lang.Object |  | String
 | *camel.component.caffeine-cache.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConfiguration.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConfiguration.java
index e2bb011..c06e59e 100644
--- a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConfiguration.java
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConfiguration.java
@@ -17,6 +17,10 @@
 package org.apache.camel.component.caffeine.cache.springboot;
 
 import javax.annotation.Generated;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.RemovalListener;
+import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+import org.apache.camel.component.caffeine.CaffeineConfiguration;
 import org.apache.camel.component.caffeine.EvictionType;
 import org.apache.camel.component.caffeine.cache.CaffeineCacheComponent;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -48,7 +52,7 @@ public class CaffeineCacheComponentConfiguration
      * To configure a CacheLoader in case of a LoadCache use. The option is a
      * com.github.benmanes.caffeine.cache.CacheLoader type.
      */
-    private String cacheLoader;
+    private CacheLoader cacheLoader;
     /**
      * Configure if a cache need to be created if it does exist or can't be
      * pre-configured.
@@ -77,7 +81,7 @@ public class CaffeineCacheComponentConfiguration
      * header, then the key from the header takes precedence. The option is a
      * java.lang.Object type.
      */
-    private String key;
+    private Object key;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -97,12 +101,12 @@ public class CaffeineCacheComponentConfiguration
      * Set a specific removal Listener for the cache. The option is a
      * com.github.benmanes.caffeine.cache.RemovalListener type.
      */
-    private String removalListener;
+    private RemovalListener removalListener;
     /**
      * Set a specific Stats Counter for the cache stats. The option is a
      * com.github.benmanes.caffeine.cache.stats.StatsCounter type.
      */
-    private String statsCounter;
+    private StatsCounter statsCounter;
     /**
      * To enable stats on the cache
      */
@@ -117,7 +121,7 @@ public class CaffeineCacheComponentConfiguration
      * Sets the global component configuration. The option is a
      * org.apache.camel.component.caffeine.CaffeineConfiguration type.
      */
-    private String configuration;
+    private CaffeineConfiguration configuration;
     /**
      * The cache key type, default java.lang.Object
      */
@@ -135,11 +139,11 @@ public class CaffeineCacheComponentConfiguration
         this.action = action;
     }
 
-    public String getCacheLoader() {
+    public CacheLoader getCacheLoader() {
         return cacheLoader;
     }
 
-    public void setCacheLoader(String cacheLoader) {
+    public void setCacheLoader(CacheLoader cacheLoader) {
         this.cacheLoader = cacheLoader;
     }
 
@@ -183,11 +187,11 @@ public class CaffeineCacheComponentConfiguration
         this.initialCapacity = initialCapacity;
     }
 
-    public String getKey() {
+    public Object getKey() {
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(Object key) {
         this.key = key;
     }
 
@@ -207,19 +211,19 @@ public class CaffeineCacheComponentConfiguration
         this.maximumSize = maximumSize;
     }
 
-    public String getRemovalListener() {
+    public RemovalListener getRemovalListener() {
         return removalListener;
     }
 
-    public void setRemovalListener(String removalListener) {
+    public void setRemovalListener(RemovalListener removalListener) {
         this.removalListener = removalListener;
     }
 
-    public String getStatsCounter() {
+    public StatsCounter getStatsCounter() {
         return statsCounter;
     }
 
-    public void setStatsCounter(String statsCounter) {
+    public void setStatsCounter(StatsCounter statsCounter) {
         this.statsCounter = statsCounter;
     }
 
@@ -242,11 +246,11 @@ public class CaffeineCacheComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public CaffeineConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(CaffeineConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConfiguration.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConfiguration.java
index a57409c..10bc468 100644
--- a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConfiguration.java
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConfiguration.java
@@ -17,6 +17,10 @@
 package org.apache.camel.component.caffeine.load.springboot;
 
 import javax.annotation.Generated;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.RemovalListener;
+import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+import org.apache.camel.component.caffeine.CaffeineConfiguration;
 import org.apache.camel.component.caffeine.EvictionType;
 import org.apache.camel.component.caffeine.load.CaffeineLoadCacheComponent;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -48,7 +52,7 @@ public class CaffeineLoadCacheComponentConfiguration
      * To configure a CacheLoader in case of a LoadCache use. The option is a
      * com.github.benmanes.caffeine.cache.CacheLoader type.
      */
-    private String cacheLoader;
+    private CacheLoader cacheLoader;
     /**
      * Configure if a cache need to be created if it does exist or can't be
      * pre-configured.
@@ -77,7 +81,7 @@ public class CaffeineLoadCacheComponentConfiguration
      * header, then the key from the header takes precedence. The option is a
      * java.lang.Object type.
      */
-    private String key;
+    private Object key;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -97,12 +101,12 @@ public class CaffeineLoadCacheComponentConfiguration
      * Set a specific removal Listener for the cache. The option is a
      * com.github.benmanes.caffeine.cache.RemovalListener type.
      */
-    private String removalListener;
+    private RemovalListener removalListener;
     /**
      * Set a specific Stats Counter for the cache stats. The option is a
      * com.github.benmanes.caffeine.cache.stats.StatsCounter type.
      */
-    private String statsCounter;
+    private StatsCounter statsCounter;
     /**
      * To enable stats on the cache
      */
@@ -117,7 +121,7 @@ public class CaffeineLoadCacheComponentConfiguration
      * Sets the global component configuration. The option is a
      * org.apache.camel.component.caffeine.CaffeineConfiguration type.
      */
-    private String configuration;
+    private CaffeineConfiguration configuration;
     /**
      * The cache key type, default java.lang.Object
      */
@@ -135,11 +139,11 @@ public class CaffeineLoadCacheComponentConfiguration
         this.action = action;
     }
 
-    public String getCacheLoader() {
+    public CacheLoader getCacheLoader() {
         return cacheLoader;
     }
 
-    public void setCacheLoader(String cacheLoader) {
+    public void setCacheLoader(CacheLoader cacheLoader) {
         this.cacheLoader = cacheLoader;
     }
 
@@ -183,11 +187,11 @@ public class CaffeineLoadCacheComponentConfiguration
         this.initialCapacity = initialCapacity;
     }
 
-    public String getKey() {
+    public Object getKey() {
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(Object key) {
         this.key = key;
     }
 
@@ -207,19 +211,19 @@ public class CaffeineLoadCacheComponentConfiguration
         this.maximumSize = maximumSize;
     }
 
-    public String getRemovalListener() {
+    public RemovalListener getRemovalListener() {
         return removalListener;
     }
 
-    public void setRemovalListener(String removalListener) {
+    public void setRemovalListener(RemovalListener removalListener) {
         this.removalListener = removalListener;
     }
 
-    public String getStatsCounter() {
+    public StatsCounter getStatsCounter() {
         return statsCounter;
     }
 
-    public void setStatsCounter(String statsCounter) {
+    public void setStatsCounter(StatsCounter statsCounter) {
         this.statsCounter = statsCounter;
     }
 
@@ -242,11 +246,11 @@ public class CaffeineLoadCacheComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public CaffeineConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(CaffeineConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-cmis-starter/src/main/docs/cmis-starter.adoc b/components-starter/camel-cmis-starter/src/main/docs/cmis-starter.adoc
index 31a9f79..5d44352 100644
--- a/components-starter/camel-cmis-starter/src/main/docs/cmis-starter.adoc
+++ b/components-starter/camel-cmis-starter/src/main/docs/cmis-starter.adoc
@@ -27,7 +27,7 @@ The component supports 5 options, which are listed below.
 | *camel.component.cmis.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.cmis.enabled* | Whether to enable auto configuration of the cmis component. This is enabled by default. |  | Boolean
 | *camel.component.cmis.lazy-start-producer* | 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  [...]
-| *camel.component.cmis.session-facade-factory* | To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances. The option is a org.apache.camel.component.cmis.CMISSessionFacadeFactory type. |  | String
+| *camel.component.cmis.session-facade-factory* | To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances. The option is a org.apache.camel.component.cmis.CMISSessionFacadeFactory type. |  | CMISSessionFacadeFactory
 | *camel.component.cmis.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConfiguration.java b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConfiguration.java
index db5a721..15d9329 100644
--- a/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConfiguration.java
+++ b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.cmis.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.cmis.CMISSessionFacadeFactory;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -68,7 +69,7 @@ public class CMISComponentConfiguration
      * instances. The option is a
      * org.apache.camel.component.cmis.CMISSessionFacadeFactory type.
      */
-    private String sessionFacadeFactory;
+    private CMISSessionFacadeFactory sessionFacadeFactory;
 
     public Boolean getBridgeErrorHandler() {
         return bridgeErrorHandler;
@@ -97,11 +98,12 @@ public class CMISComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getSessionFacadeFactory() {
+    public CMISSessionFacadeFactory getSessionFacadeFactory() {
         return sessionFacadeFactory;
     }
 
-    public void setSessionFacadeFactory(String sessionFacadeFactory) {
+    public void setSessionFacadeFactory(
+            CMISSessionFacadeFactory sessionFacadeFactory) {
         this.sessionFacadeFactory = sessionFacadeFactory;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-cometd-starter/src/main/docs/cometd-starter.adoc b/components-starter/camel-cometd-starter/src/main/docs/cometd-starter.adoc
index 0ff080d..ffc5d3f 100644
--- a/components-starter/camel-cometd-starter/src/main/docs/cometd-starter.adoc
+++ b/components-starter/camel-cometd-starter/src/main/docs/cometd-starter.adoc
@@ -28,8 +28,8 @@ The component supports 11 options, which are listed below.
 | *camel.component.cometd.enabled* | Whether to enable auto configuration of the cometd component. This is enabled by default. |  | Boolean
 | *camel.component.cometd.extensions* | To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests. |  | List
 | *camel.component.cometd.lazy-start-producer* | 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 the [...]
-| *camel.component.cometd.security-policy* | To use a custom configured SecurityPolicy to control authorization. The option is a org.cometd.bayeux.server.SecurityPolicy type. |  | String
-| *camel.component.cometd.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
+| *camel.component.cometd.security-policy* | To use a custom configured SecurityPolicy to control authorization. The option is a org.cometd.bayeux.server.SecurityPolicy type. |  | SecurityPolicy
+| *camel.component.cometd.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | SSLContextParameters
 | *camel.component.cometd.ssl-key-password* | The password for the keystore when using SSL. |  | String
 | *camel.component.cometd.ssl-keystore* | The path to the keystore. |  | String
 | *camel.component.cometd.ssl-password* | The password when using SSL. |  | String
diff --git a/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
index 8542723..adca8de 100644
--- a/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
+++ b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConfiguration.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.cometd.springboot;
 import java.util.List;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.SSLContextParameters;
 import org.cometd.bayeux.server.BayeuxServer.Extension;
+import org.cometd.bayeux.server.SecurityPolicy;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -75,12 +77,12 @@ public class CometdComponentConfiguration
      * To use a custom configured SecurityPolicy to control authorization. The
      * option is a org.cometd.bayeux.server.SecurityPolicy type.
      */
-    private String securityPolicy;
+    private SecurityPolicy securityPolicy;
     /**
      * To configure security using SSLContextParameters. The option is a
      * org.apache.camel.support.jsse.SSLContextParameters type.
      */
-    private String sslContextParameters;
+    private SSLContextParameters sslContextParameters;
     /**
      * The password for the keystore when using SSL.
      */
@@ -133,19 +135,20 @@ public class CometdComponentConfiguration
         this.extensions = extensions;
     }
 
-    public String getSecurityPolicy() {
+    public SecurityPolicy getSecurityPolicy() {
         return securityPolicy;
     }
 
-    public void setSecurityPolicy(String securityPolicy) {
+    public void setSecurityPolicy(SecurityPolicy securityPolicy) {
         this.securityPolicy = securityPolicy;
     }
 
-    public String getSslContextParameters() {
+    public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
 
-    public void setSslContextParameters(String sslContextParameters) {
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
 
diff --git a/components-starter/camel-consul-starter/src/main/docs/consul-starter.adoc b/components-starter/camel-consul-starter/src/main/docs/consul-starter.adoc
index 4ec69e8..8ec8cf9 100644
--- a/components-starter/camel-consul-starter/src/main/docs/consul-starter.adoc
+++ b/components-starter/camel-consul-starter/src/main/docs/consul-starter.adoc
@@ -56,20 +56,20 @@ The component supports 90 options, which are listed below.
 | *camel.component.consul.cluster.service.user-name* | Sets the username to be used for basic authentication |  | String
 | *camel.component.consul.cluster.service.write-timeout* | Write timeout for OkHttpClient |  | Duration
 | *camel.component.consul.cluster.service.write-timeout-millis* | Use writeTimeout instead. |  | Long
-| *camel.component.consul.configuration* | Consul configuration. The option is a org.apache.camel.component.consul.ConsulConfiguration type. |  | String
-| *camel.component.consul.connect-timeout* | Connect timeout for OkHttpClient. The option is a java.time.Duration type. |  | String
+| *camel.component.consul.configuration* | Consul configuration. The option is a org.apache.camel.component.consul.ConsulConfiguration type. |  | ConsulConfiguration
+| *camel.component.consul.connect-timeout* | Connect timeout for OkHttpClient. The option is a java.time.Duration type. |  | Duration
 | *camel.component.consul.consistency-mode* | The consistencyMode used for queries, default ConsistencyMode.DEFAULT |  | ConsistencyMode
-| *camel.component.consul.consul-client* | Reference to a com.orbitz.consul.Consul in the registry. The option is a com.orbitz.consul.Consul type. |  | String
+| *camel.component.consul.consul-client* | Reference to a com.orbitz.consul.Consul in the registry. The option is a com.orbitz.consul.Consul type. |  | Consul
 | *camel.component.consul.datacenter* | The data center |  | String
 | *camel.component.consul.enabled* | Whether to enable auto configuration of the consul component. This is enabled by default. |  | Boolean
-| *camel.component.consul.first-index* | The first index for watch for, default 0. The option is a java.math.BigInteger type. |  | String
+| *camel.component.consul.first-index* | The first index for watch for, default 0. The option is a java.math.BigInteger type. |  | BigInteger
 | *camel.component.consul.key* | The default key. Can be overridden by CamelConsulKey |  | String
 | *camel.component.consul.lazy-start-producer* | 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 the [...]
 | *camel.component.consul.near-node* | The near node to use for queries. |  | String
 | *camel.component.consul.node-meta* | The note meta-data to use for queries. |  | List
 | *camel.component.consul.password* | Sets the password to be used for basic authentication |  | String
 | *camel.component.consul.ping-instance* | Configure if the AgentClient should attempt a ping before returning the Consul instance | true | Boolean
-| *camel.component.consul.read-timeout* | Read timeout for OkHttpClient. The option is a java.time.Duration type. |  | String
+| *camel.component.consul.read-timeout* | Read timeout for OkHttpClient. The option is a java.time.Duration type. |  | Duration
 | *camel.component.consul.recursive* | Recursively watch, default false | false | Boolean
 | *camel.component.consul.service-registry.acl-token* | Sets the ACL token to be used with Consul |  | String
 | *camel.component.consul.service-registry.attributes* | Custom service attributes. |  | Map
@@ -101,18 +101,18 @@ The component supports 90 options, which are listed below.
 | *camel.component.consul.service-registry.user-name* | Sets the username to be used for basic authentication |  | String
 | *camel.component.consul.service-registry.write-timeout* | Write timeout for OkHttpClient |  | Duration
 | *camel.component.consul.service-registry.write-timeout-millis* | Use writeTimeout instead. |  | Long
-| *camel.component.consul.ssl-context-parameters* | SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
+| *camel.component.consul.ssl-context-parameters* | SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | SSLContextParameters
 | *camel.component.consul.tags* | Set tags. You can separate multiple tags by comma. |  | String
 | *camel.component.consul.url* | The Consul agent URL |  | String
 | *camel.component.consul.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 | *camel.component.consul.user-name* | Sets the username to be used for basic authentication |  | String
 | *camel.component.consul.value-as-string* | Default to transform values retrieved from Consul i.e. on KV endpoint to string. | false | Boolean
-| *camel.component.consul.write-timeout* | Write timeout for OkHttpClient. The option is a java.time.Duration type. |  | String
+| *camel.component.consul.write-timeout* | Write timeout for OkHttpClient. The option is a java.time.Duration type. |  | Duration
 | *camel.component.consul.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.consul.cluster.service.dc* | *Deprecated* Use datacenter instead |  | String
 | *camel.component.consul.connect-timeout-millis* | *Deprecated* Connect timeout for OkHttpClient. Deprecation note: Use connectTimeout instead |  | Long
 | *camel.component.consul.read-timeout-millis* | *Deprecated* Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead |  | Long
 | *camel.component.consul.service-registry.dc* | *Deprecated* Use datacenter instead |  | String
-| *camel.component.consul.write-timeout-millis* | *Deprecated* Write timeout for OkHttpClient. Deprecation note: Use writeTimeout instead. The option is a java.lang.Long type. |  | String
+| *camel.component.consul.write-timeout-millis* | *Deprecated* Write timeout for OkHttpClient. Deprecation note: Use writeTimeout instead. The option is a java.lang.Long type. |  | Long
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConfiguration.java b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConfiguration.java
index 578b558..38736bd 100644
--- a/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConfiguration.java
+++ b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConfiguration.java
@@ -16,11 +16,16 @@
  */
 package org.apache.camel.component.consul.springboot;
 
+import java.math.BigInteger;
+import java.time.Duration;
 import java.util.List;
 import javax.annotation.Generated;
+import com.orbitz.consul.Consul;
 import com.orbitz.consul.option.ConsistencyMode;
 import org.apache.camel.component.consul.ConsulComponent;
+import org.apache.camel.component.consul.ConsulConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.SSLContextParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -44,7 +49,7 @@ public class ConsulComponentConfiguration
      * Connect timeout for OkHttpClient. The option is a java.time.Duration
      * type.
      */
-    private String connectTimeout;
+    private Duration connectTimeout;
     /**
      * Connect timeout for OkHttpClient. Deprecation note: Use connectTimeout
      * instead
@@ -55,7 +60,7 @@ public class ConsulComponentConfiguration
      * Reference to a com.orbitz.consul.Consul in the registry. The option is a
      * com.orbitz.consul.Consul type.
      */
-    private String consulClient;
+    private Consul consulClient;
     /**
      * The default key. Can be overridden by CamelConsulKey
      */
@@ -68,7 +73,7 @@ public class ConsulComponentConfiguration
     /**
      * Read timeout for OkHttpClient. The option is a java.time.Duration type.
      */
-    private String readTimeout;
+    private Duration readTimeout;
     /**
      * Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead
      */
@@ -85,13 +90,13 @@ public class ConsulComponentConfiguration
     /**
      * Write timeout for OkHttpClient. The option is a java.time.Duration type.
      */
-    private String writeTimeout;
+    private Duration writeTimeout;
     /**
      * Write timeout for OkHttpClient. Deprecation note: Use writeTimeout
      * instead. The option is a java.lang.Long type.
      */
     @Deprecated
-    private String writeTimeoutMillis;
+    private Long writeTimeoutMillis;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -131,7 +136,7 @@ public class ConsulComponentConfiguration
      * Consul configuration. The option is a
      * org.apache.camel.component.consul.ConsulConfiguration type.
      */
-    private String configuration;
+    private ConsulConfiguration configuration;
     /**
      * The consistencyMode used for queries, default ConsistencyMode.DEFAULT
      */
@@ -161,7 +166,7 @@ public class ConsulComponentConfiguration
      * org.apache.camel.support.jsse.SSLContextParameters instance. The option
      * is a org.apache.camel.support.jsse.SSLContextParameters type.
      */
-    private String sslContextParameters;
+    private SSLContextParameters sslContextParameters;
     /**
      * Enable usage of global SSL context parameters.
      */
@@ -178,17 +183,17 @@ public class ConsulComponentConfiguration
      * The first index for watch for, default 0. The option is a
      * java.math.BigInteger type.
      */
-    private String firstIndex;
+    private BigInteger firstIndex;
     /**
      * Recursively watch, default false
      */
     private Boolean recursive = false;
 
-    public String getConnectTimeout() {
+    public Duration getConnectTimeout() {
         return connectTimeout;
     }
 
-    public void setConnectTimeout(String connectTimeout) {
+    public void setConnectTimeout(Duration connectTimeout) {
         this.connectTimeout = connectTimeout;
     }
 
@@ -203,11 +208,11 @@ public class ConsulComponentConfiguration
         this.connectTimeoutMillis = connectTimeoutMillis;
     }
 
-    public String getConsulClient() {
+    public Consul getConsulClient() {
         return consulClient;
     }
 
-    public void setConsulClient(String consulClient) {
+    public void setConsulClient(Consul consulClient) {
         this.consulClient = consulClient;
     }
 
@@ -227,11 +232,11 @@ public class ConsulComponentConfiguration
         this.pingInstance = pingInstance;
     }
 
-    public String getReadTimeout() {
+    public Duration getReadTimeout() {
         return readTimeout;
     }
 
-    public void setReadTimeout(String readTimeout) {
+    public void setReadTimeout(Duration readTimeout) {
         this.readTimeout = readTimeout;
     }
 
@@ -262,22 +267,22 @@ public class ConsulComponentConfiguration
         this.url = url;
     }
 
-    public String getWriteTimeout() {
+    public Duration getWriteTimeout() {
         return writeTimeout;
     }
 
-    public void setWriteTimeout(String writeTimeout) {
+    public void setWriteTimeout(Duration writeTimeout) {
         this.writeTimeout = writeTimeout;
     }
 
     @Deprecated
     @DeprecatedConfigurationProperty
-    public String getWriteTimeoutMillis() {
+    public Long getWriteTimeoutMillis() {
         return writeTimeoutMillis;
     }
 
     @Deprecated
-    public void setWriteTimeoutMillis(String writeTimeoutMillis) {
+    public void setWriteTimeoutMillis(Long writeTimeoutMillis) {
         this.writeTimeoutMillis = writeTimeoutMillis;
     }
 
@@ -324,11 +329,11 @@ public class ConsulComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public ConsulConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(ConsulConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -380,11 +385,12 @@ public class ConsulComponentConfiguration
         this.password = password;
     }
 
-    public String getSslContextParameters() {
+    public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
 
-    public void setSslContextParameters(String sslContextParameters) {
+    public void setSslContextParameters(
+            SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
 
@@ -413,11 +419,11 @@ public class ConsulComponentConfiguration
         this.blockSeconds = blockSeconds;
     }
 
-    public String getFirstIndex() {
+    public BigInteger getFirstIndex() {
         return firstIndex;
     }
 
-    public void setFirstIndex(String firstIndex) {
+    public void setFirstIndex(BigInteger firstIndex) {
         this.firstIndex = firstIndex;
     }
 
diff --git a/components-starter/camel-corda-starter/src/main/docs/corda-starter.adoc b/components-starter/camel-corda-starter/src/main/docs/corda-starter.adoc
index 7ea99be..702d453 100644
--- a/components-starter/camel-corda-starter/src/main/docs/corda-starter.adoc
+++ b/components-starter/camel-corda-starter/src/main/docs/corda-starter.adoc
@@ -25,17 +25,17 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.corda.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.corda.configuration* | To use a shared configuration. The option is a org.apache.camel.component.corda.CordaConfiguration type. |  | String
+| *camel.component.corda.configuration* | To use a shared configuration. The option is a org.apache.camel.component.corda.CordaConfiguration type. |  | CordaConfiguration
 | *camel.component.corda.contract-state-class* | A contract state (or just state) contains opaque data used by a contract program. It can be thought of as a disk file that the program can use to persist data across transactions. States are immutable: once created they are never updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the notary is responsible for ensuring there is no double spending by only signing a transaction if th [...]
 | *camel.component.corda.enabled* | Whether to enable auto configuration of the corda component. This is enabled by default. |  | Boolean
 | *camel.component.corda.flow-logic-arguments* | Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC. |  | Object[]
 | *camel.component.corda.flow-logic-class* | Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC. |  | Class
 | *camel.component.corda.lazy-start-producer* | 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 [...]
 | *camel.component.corda.operation* | Operation to use |  | String
-| *camel.component.corda.page-specification* | PageSpecification allows specification of a page number (starting from 1) and page size (defaulting to 200 with a maximum page size of (Integer.MAX_INT) Note: we default the page number to 200 to enable queries without requiring a page specification but enabling detection of large results sets that fall out of the 200 requirement. Max page size should be used with extreme caution as results may exceed your JVM memory footprint. The option is [...]
+| *camel.component.corda.page-specification* | PageSpecification allows specification of a page number (starting from 1) and page size (defaulting to 200 with a maximum page size of (Integer.MAX_INT) Note: we default the page number to 200 to enable queries without requiring a page specification but enabling detection of large results sets that fall out of the 200 requirement. Max page size should be used with extreme caution as results may exceed your JVM memory footprint. The option is [...]
 | *camel.component.corda.password* | Password for login |  | String
 | *camel.component.corda.process-snapshot* | Whether to process snapshots or not | true | Boolean
-| *camel.component.corda.query-criteria* | QueryCriteria assumes underlying schema tables are correctly indexed for performance. The option is a net.corda.core.node.services.vault.QueryCriteria type. |  | String
+| *camel.component.corda.query-criteria* | QueryCriteria assumes underlying schema tables are correctly indexed for performance. The option is a net.corda.core.node.services.vault.QueryCriteria type. |  | QueryCriteria
 | *camel.component.corda.sort* | Sort allows specification of a set of entity attribute names and their associated directionality and null handling, to be applied upon processing a query specification. |  | Sort
 | *camel.component.corda.username* | Username for login |  | String
 | *camel.component.corda.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConfiguration.java b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConfiguration.java
index a4cba02..4ed2394 100644
--- a/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConfiguration.java
+++ b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConfiguration.java
@@ -19,7 +19,10 @@ package org.apache.camel.component.corda.springboot;
 import javax.annotation.Generated;
 import net.corda.core.contracts.ContractState;
 import net.corda.core.flows.FlowLogic;
+import net.corda.core.node.services.vault.PageSpecification;
+import net.corda.core.node.services.vault.QueryCriteria;
 import net.corda.core.node.services.vault.Sort;
+import org.apache.camel.component.corda.CordaConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -44,7 +47,7 @@ public class CordaComponentConfiguration
      * To use a shared configuration. The option is a
      * org.apache.camel.component.corda.CordaConfiguration type.
      */
-    private String configuration;
+    private CordaConfiguration configuration;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -64,7 +67,7 @@ public class CordaComponentConfiguration
      * footprint. The option is a
      * net.corda.core.node.services.vault.PageSpecification type.
      */
-    private String pageSpecification;
+    private PageSpecification pageSpecification;
     /**
      * Whether to process snapshots or not
      */
@@ -104,7 +107,7 @@ public class CordaComponentConfiguration
      * performance. The option is a
      * net.corda.core.node.services.vault.QueryCriteria type.
      */
-    private String queryCriteria;
+    private QueryCriteria queryCriteria;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -135,11 +138,11 @@ public class CordaComponentConfiguration
      */
     private String username;
 
-    public String getConfiguration() {
+    public CordaConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(CordaConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -151,11 +154,11 @@ public class CordaComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getPageSpecification() {
+    public PageSpecification getPageSpecification() {
         return pageSpecification;
     }
 
-    public void setPageSpecification(String pageSpecification) {
+    public void setPageSpecification(PageSpecification pageSpecification) {
         this.pageSpecification = pageSpecification;
     }
 
@@ -199,11 +202,11 @@ public class CordaComponentConfiguration
         this.flowLogicClass = flowLogicClass;
     }
 
-    public String getQueryCriteria() {
+    public QueryCriteria getQueryCriteria() {
         return queryCriteria;
     }
 
-    public void setQueryCriteria(String queryCriteria) {
+    public void setQueryCriteria(QueryCriteria queryCriteria) {
         this.queryCriteria = queryCriteria;
     }
 
diff --git a/components-starter/camel-crypto-cms-starter/src/main/docs/crypto-cms-starter.adoc b/components-starter/camel-crypto-cms-starter/src/main/docs/crypto-cms-starter.adoc
index dc20c7e..5a7ce4e 100644
--- a/components-starter/camel-crypto-cms-starter/src/main/docs/crypto-cms-starter.adoc
+++ b/components-starter/camel-crypto-cms-starter/src/main/docs/crypto-cms-starter.adoc
@@ -25,9 +25,9 @@ The component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.crypto-cms.enabled* | Whether to enable auto configuration of the crypto-cms component. This is enabled by default. |  | Boolean
-| *camel.component.crypto-cms.enveloped-data-decryptor-configuration* | To configure the shared EnvelopedDataDecryptorConfiguration, which determines the uri parameters for the decrypt operation. The option is a org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration type. |  | String
+| *camel.component.crypto-cms.enveloped-data-decryptor-configuration* | To configure the shared EnvelopedDataDecryptorConfiguration, which determines the uri parameters for the decrypt operation. The option is a org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration type. |  | EnvelopedDataDecryptorConfiguration
 | *camel.component.crypto-cms.lazy-start-producer* | 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 [...]
-| *camel.component.crypto-cms.signed-data-verifier-configuration* | To configure the shared SignedDataVerifierConfiguration, which determines the uri parameters for the verify operation. The option is a org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration type. |  | String
+| *camel.component.crypto-cms.signed-data-verifier-configuration* | To configure the shared SignedDataVerifierConfiguration, which determines the uri parameters for the verify operation. The option is a org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration type. |  | SignedDataVerifierConfiguration
 | *camel.component.crypto-cms.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConfiguration.java b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConfiguration.java
index 2aa986c..f2bb6a2 100644
--- a/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConfiguration.java
+++ b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConfiguration.java
@@ -17,6 +17,8 @@
 package org.apache.camel.component.crypto.cms.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration;
+import org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -59,14 +61,14 @@ public class CryptoCmsComponentConfiguration
      * determines the uri parameters for the decrypt operation. The option is a
      * org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration type.
      */
-    private String envelopedDataDecryptorConfiguration;
+    private EnvelopedDataDecryptorConfiguration envelopedDataDecryptorConfiguration;
     /**
      * To configure the shared SignedDataVerifierConfiguration, which determines
      * the uri parameters for the verify operation. The option is a
      * org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration
      * type.
      */
-    private String signedDataVerifierConfiguration;
+    private SignedDataVerifierConfiguration signedDataVerifierConfiguration;
 
     public Boolean getLazyStartProducer() {
         return lazyStartProducer;
@@ -87,21 +89,21 @@ public class CryptoCmsComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getEnvelopedDataDecryptorConfiguration() {
+    public EnvelopedDataDecryptorConfiguration getEnvelopedDataDecryptorConfiguration() {
         return envelopedDataDecryptorConfiguration;
     }
 
     public void setEnvelopedDataDecryptorConfiguration(
-            String envelopedDataDecryptorConfiguration) {
+            EnvelopedDataDecryptorConfiguration envelopedDataDecryptorConfiguration) {
         this.envelopedDataDecryptorConfiguration = envelopedDataDecryptorConfiguration;
     }
 
-    public String getSignedDataVerifierConfiguration() {
+    public SignedDataVerifierConfiguration getSignedDataVerifierConfiguration() {
         return signedDataVerifierConfiguration;
     }
 
     public void setSignedDataVerifierConfiguration(
-            String signedDataVerifierConfiguration) {
+            SignedDataVerifierConfiguration signedDataVerifierConfiguration) {
         this.signedDataVerifierConfiguration = signedDataVerifierConfiguration;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-crypto-starter/src/main/docs/crypto-starter.adoc b/components-starter/camel-crypto-starter/src/main/docs/crypto-starter.adoc
index 58d95b6..a56fb52 100644
--- a/components-starter/camel-crypto-starter/src/main/docs/crypto-starter.adoc
+++ b/components-starter/camel-crypto-starter/src/main/docs/crypto-starter.adoc
@@ -27,22 +27,22 @@ The component supports 49 options, which are listed below.
 | *camel.component.crypto.algorithm* | Sets the JCE name of the Algorithm that should be used for the signer. | SHA256withRSA | String
 | *camel.component.crypto.alias* | Sets the alias used to query the KeyStore for keys and {link java.security.cert.Certificate Certificates} to be used in signing and verifying exchanges. This value can be provided at runtime via the message header org.apache.camel.component.crypto.DigitalSignatureConstants#KEYSTORE_ALIAS |  | String
 | *camel.component.crypto.buffer-size* | Set the size of the buffer used to read in the Exchange payload data. | 2048 | Integer
-| *camel.component.crypto.certificate* | Set the Certificate that should be used to verify the signature in the exchange based on its payload. The option is a java.security.cert.Certificate type. |  | String
+| *camel.component.crypto.certificate* | Set the Certificate that should be used to verify the signature in the exchange based on its payload. The option is a java.security.cert.Certificate type. |  | Certificate
 | *camel.component.crypto.certificate-name* | Sets the reference name for a PrivateKey that can be found in the registry. |  | String
 | *camel.component.crypto.clear-headers* | Determines if the Signature specific headers be cleared after signing and verification. Defaults to true, and should only be made otherwise at your extreme peril as vital private information such as Keys and passwords may escape if unset. | true | Boolean
-| *camel.component.crypto.configuration* | To use the shared DigitalSignatureConfiguration as configuration. The option is a org.apache.camel.component.crypto.DigitalSignatureConfiguration type. |  | String
+| *camel.component.crypto.configuration* | To use the shared DigitalSignatureConfiguration as configuration. The option is a org.apache.camel.component.crypto.DigitalSignatureConfiguration type. |  | DigitalSignatureConfiguration
 | *camel.component.crypto.enabled* | Whether to enable auto configuration of the crypto component. This is enabled by default. |  | Boolean
-| *camel.component.crypto.key-store-parameters* | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges based on the given KeyStoreParameters. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a org.apache.camel.suppo [...]
-| *camel.component.crypto.keystore* | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a java.security.KeyStore type. |  | String
+| *camel.component.crypto.key-store-parameters* | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges based on the given KeyStoreParameters. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a org.apache.camel.suppo [...]
+| *camel.component.crypto.keystore* | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a java.security.KeyStore type. |  | KeyStore
 | *camel.component.crypto.keystore-name* | Sets the reference name for a Keystore that can be found in the registry. |  | String
 | *camel.component.crypto.lazy-start-producer* | 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 the [...]
 | *camel.component.crypto.password* | Sets the password used to access an aliased PrivateKey in the KeyStore. |  | String
-| *camel.component.crypto.private-key* | Set the PrivateKey that should be used to sign the exchange. The option is a java.security.PrivateKey type. |  | String
+| *camel.component.crypto.private-key* | Set the PrivateKey that should be used to sign the exchange. The option is a java.security.PrivateKey type. |  | PrivateKey
 | *camel.component.crypto.private-key-name* | Sets the reference name for a PrivateKey that can be found in the registry. |  | String
 | *camel.component.crypto.provider* | Set the id of the security provider that provides the configured Signature algorithm. |  | String
-| *camel.component.crypto.public-key* | Set the PublicKey that should be used to verify the signature in the exchange. The option is a java.security.PublicKey type. |  | String
+| *camel.component.crypto.public-key* | Set the PublicKey that should be used to verify the signature in the exchange. The option is a java.security.PublicKey type. |  | PublicKey
 | *camel.component.crypto.public-key-name* | references that should be resolved when the context changes |  | String
-| *camel.component.crypto.secure-random* | Set the SecureRandom used to initialize the Signature service. The option is a java.security.SecureRandom type. |  | String
+| *camel.component.crypto.secure-random* | Set the SecureRandom used to initialize the Signature service. The option is a java.security.SecureRandom type. |  | SecureRandom
 | *camel.component.crypto.secure-random-name* | Sets the reference name for a SecureRandom that can be found in the registry. |  | String
 | *camel.component.crypto.signature-header-name* | Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature' |  | String
 | *camel.dataformat.crypto.algorithm* | The JCE algorithm name indicating the cryptographic algorithm that will be used. |  | String
diff --git a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
index 68eb9f6..6c2196a 100644
--- a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
+++ b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConfiguration.java
@@ -16,8 +16,15 @@
  */
 package org.apache.camel.component.crypto.springboot;
 
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.cert.Certificate;
 import javax.annotation.Generated;
+import org.apache.camel.component.crypto.DigitalSignatureConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.apache.camel.support.jsse.KeyStoreParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -63,7 +70,7 @@ public class DigitalSignatureComponentConfiguration
      * there is only a single entry in the Keystore, then this single entry will
      * be used. The option is a java.security.KeyStore type.
      */
-    private String keystore;
+    private KeyStore keystore;
     /**
      * Sets the reference name for a Keystore that can be found in the registry.
      */
@@ -83,7 +90,7 @@ public class DigitalSignatureComponentConfiguration
      * Set the PrivateKey that should be used to sign the exchange. The option
      * is a java.security.PrivateKey type.
      */
-    private String privateKey;
+    private PrivateKey privateKey;
     /**
      * Sets the reference name for a PrivateKey that can be found in the
      * registry.
@@ -123,7 +130,7 @@ public class DigitalSignatureComponentConfiguration
      * exchange based on its payload. The option is a
      * java.security.cert.Certificate type.
      */
-    private String certificate;
+    private Certificate certificate;
     /**
      * Determines if the Signature specific headers be cleared after signing and
      * verification. Defaults to true, and should only be made otherwise at your
@@ -136,7 +143,7 @@ public class DigitalSignatureComponentConfiguration
      * option is a
      * org.apache.camel.component.crypto.DigitalSignatureConfiguration type.
      */
-    private String configuration;
+    private DigitalSignatureConfiguration configuration;
     /**
      * Sets the KeyStore that can contain keys and Certficates for use in
      * signing and verifying exchanges based on the given KeyStoreParameters. A
@@ -146,17 +153,17 @@ public class DigitalSignatureComponentConfiguration
      * single entry in the Keystore, then this single entry will be used. The
      * option is a org.apache.camel.support.jsse.KeyStoreParameters type.
      */
-    private String keyStoreParameters;
+    private KeyStoreParameters keyStoreParameters;
     /**
      * Set the PublicKey that should be used to verify the signature in the
      * exchange. The option is a java.security.PublicKey type.
      */
-    private String publicKey;
+    private PublicKey publicKey;
     /**
      * Set the SecureRandom used to initialize the Signature service. The option
      * is a java.security.SecureRandom type.
      */
-    private String secureRandom;
+    private SecureRandom secureRandom;
     /**
      * Sets the password used to access an aliased PrivateKey in the KeyStore.
      */
@@ -186,11 +193,11 @@ public class DigitalSignatureComponentConfiguration
         this.certificateName = certificateName;
     }
 
-    public String getKeystore() {
+    public KeyStore getKeystore() {
         return keystore;
     }
 
-    public void setKeystore(String keystore) {
+    public void setKeystore(KeyStore keystore) {
         this.keystore = keystore;
     }
 
@@ -210,11 +217,11 @@ public class DigitalSignatureComponentConfiguration
         this.lazyStartProducer = lazyStartProducer;
     }
 
-    public String getPrivateKey() {
+    public PrivateKey getPrivateKey() {
         return privateKey;
     }
 
-    public void setPrivateKey(String privateKey) {
+    public void setPrivateKey(PrivateKey privateKey) {
         this.privateKey = privateKey;
     }
 
@@ -277,11 +284,11 @@ public class DigitalSignatureComponentConfiguration
         this.bufferSize = bufferSize;
     }
 
-    public String getCertificate() {
+    public Certificate getCertificate() {
         return certificate;
     }
 
-    public void setCertificate(String certificate) {
+    public void setCertificate(Certificate certificate) {
         this.certificate = certificate;
     }
 
@@ -293,35 +300,35 @@ public class DigitalSignatureComponentConfiguration
         this.clearHeaders = clearHeaders;
     }
 
-    public String getConfiguration() {
+    public DigitalSignatureConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(DigitalSignatureConfiguration configuration) {
         this.configuration = configuration;
     }
 
-    public String getKeyStoreParameters() {
+    public KeyStoreParameters getKeyStoreParameters() {
         return keyStoreParameters;
     }
 
-    public void setKeyStoreParameters(String keyStoreParameters) {
+    public void setKeyStoreParameters(KeyStoreParameters keyStoreParameters) {
         this.keyStoreParameters = keyStoreParameters;
     }
 
-    public String getPublicKey() {
+    public PublicKey getPublicKey() {
         return publicKey;
     }
 
-    public void setPublicKey(String publicKey) {
+    public void setPublicKey(PublicKey publicKey) {
         this.publicKey = publicKey;
     }
 
-    public String getSecureRandom() {
+    public SecureRandom getSecureRandom() {
         return secureRandom;
     }
 
-    public void setSecureRandom(String secureRandom) {
+    public void setSecureRandom(SecureRandom secureRandom) {
         this.secureRandom = secureRandom;
     }
 
diff --git a/components-starter/camel-cxf-starter/src/main/docs/cxf-starter.adoc b/components-starter/camel-cxf-starter/src/main/docs/cxf-starter.adoc
index f310c55..8a7a5e3 100644
--- a/components-starter/camel-cxf-starter/src/main/docs/cxf-starter.adoc
+++ b/components-starter/camel-cxf-starter/src/main/docs/cxf-starter.adoc
@@ -27,12 +27,12 @@ The component supports 13 options, which are listed below.
 | *camel.component.cxf.allow-streaming* | This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some cases. |  | Boolean
 | *camel.component.cxf.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.cxf.enabled* | Whether to enable auto configuration of the cxf component. This is enabled by default. |  | Boolean
-| *camel.component.cxf.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.cxf.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.cxf.lazy-start-producer* | 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 c [...]
 | *camel.component.cxf.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 | *camel.component.cxfrs.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.cxfrs.enabled* | Whether to enable auto configuration of the cxfrs component. This is enabled by default. |  | Boolean
-| *camel.component.cxfrs.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.cxfrs.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.cxfrs.lazy-start-producer* | 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 [...]
 | *camel.component.cxfrs.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 | *camel.component.cxf.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
diff --git a/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java b/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
index 28d42ac..2d6e6d6 100644
--- a/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
+++ b/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.cxf.jaxrs.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -69,7 +70,7 @@ public class CxfRsComponentConfiguration
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Enable usage of global SSL context parameters.
      */
@@ -102,11 +103,12 @@ public class CxfRsComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
diff --git a/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java b/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
index 880dfd6..61ae1ff 100644
--- a/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
+++ b/components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.cxf.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -76,7 +77,7 @@ public class CxfComponentConfiguration
      * header to and from Camel message. The option is a
      * org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Enable usage of global SSL context parameters.
      */
@@ -117,11 +118,12 @@ public class CxfComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
diff --git a/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb-starter.adoc b/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb-starter.adoc
index 66faad6..a61083c 100644
--- a/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb-starter.adoc
+++ b/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb-starter.adoc
@@ -28,9 +28,9 @@ The component supports 55 options, which are listed below.
 | *camel.component.debezium-mongodb.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.debezium-mongodb.collection-exclude-list* | A comma-separated list of regular expressions that match the collection names for which changes are to be excluded |  | String
 | *camel.component.debezium-mongodb.collection-include-list* | A comma-separated list of regular expressions that match the collection names for which changes are to be captured |  | String
-| *camel.component.debezium-mongodb.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration type. |  | String
-| *camel.component.debezium-mongodb.connect-backoff-initial-delay-ms* | The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 1 second (1000 ms). The option is a long type. | 1s | String
-| *camel.component.debezium-mongodb.connect-backoff-max-delay-ms* | The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 120 second (120,000 ms). The option is a long type. | 2m | String
+| *camel.component.debezium-mongodb.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration type. |  | MongoDbConnectorEmbeddedDebeziumConfiguration
+| *camel.component.debezium-mongodb.connect-backoff-initial-delay-ms* | The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 1 second (1000 ms). The option is a long type. | 1000 | Long
+| *camel.component.debezium-mongodb.connect-backoff-max-delay-ms* | The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 120 second (120,000 ms). The option is a long type. | 120000 | Long
 | *camel.component.debezium-mongodb.connect-max-attempts* | Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing. | 16 | Integer
 | *camel.component.debezium-mongodb.converters* | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' |  | String
 | *camel.component.debezium-mongodb.database-exclude-list* | A comma-separated list of regular expressions that match the database names for which changes are to be excluded |  | String
@@ -40,7 +40,7 @@ The component supports 55 options, which are listed below.
 | *camel.component.debezium-mongodb.event-processing-failure-handling-mode* | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
 | *camel.component.debezium-mongodb.field-exclude-list* | A comma-separated list of the fully-qualified names of fields that should be excluded from change event message values |  | String
 | *camel.component.debezium-mongodb.field-renames* | Description is not available here, please check Debezium website for corresponding key 'field.renames' description. |  | String
-| *camel.component.debezium-mongodb.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0ms | String
+| *camel.component.debezium-mongodb.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0 | Integer
 | *camel.component.debezium-mongodb.heartbeat-topics-prefix* | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
 | *camel.component.debezium-mongodb.initial-sync-max-threads* | Maximum number of threads used to perform an initial sync of the collections in a replica set. Defaults to 1. | 1 | Integer
 | *camel.component.debezium-mongodb.internal-key-converter* | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
@@ -48,32 +48,32 @@ The component supports 55 options, which are listed below.
 | *camel.component.debezium-mongodb.max-batch-size* | Maximum size of each batch of source records. Defaults to 2048. | 2048 | Integer
 | *camel.component.debezium-mongodb.max-queue-size* | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | Integer
 | *camel.component.debezium-mongodb.mongodb-authsource* | Database containing user credentials. | admin | String
-| *camel.component.debezium-mongodb.mongodb-connect-timeout-ms* | The connection timeout in milliseconds. The option is a int type. | 10s | String
+| *camel.component.debezium-mongodb.mongodb-connect-timeout-ms* | The connection timeout in milliseconds. The option is a int type. | 10000 | Integer
 | *camel.component.debezium-mongodb.mongodb-hosts* | The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set. |  | String
 | *camel.component.debezium-mongodb.mongodb-members-auto-discover* | Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'. | true | Boolean
 | *camel.component.debezium-mongodb.mongodb-name* | Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector. |  | String
 | *camel.component.debezium-mongodb.mongodb-password* | Password to be used when connecting to MongoDB, if necessary. |  | String
-| *camel.component.debezium-mongodb.mongodb-poll-interval-ms* | Frequency in milliseconds to look for new, removed, or changed replica sets. Defaults to 30000 milliseconds. The option is a long type. | 30s | String
-| *camel.component.debezium-mongodb.mongodb-server-selection-timeout-ms* | The server selection timeout in milliseconds. The option is a int type. | 30s | String
-| *camel.component.debezium-mongodb.mongodb-socket-timeout-ms* | The socket timeout in milliseconds. The option is a int type. | 0ms | String
+| *camel.component.debezium-mongodb.mongodb-poll-interval-ms* | Frequency in milliseconds to look for new, removed, or changed replica sets. Defaults to 30000 milliseconds. The option is a long type. | 30000 | Long
+| *camel.component.debezium-mongodb.mongodb-server-selection-timeout-ms* | The server selection timeout in milliseconds. The option is a int type. | 30000 | Integer
+| *camel.component.debezium-mongodb.mongodb-socket-timeout-ms* | The socket timeout in milliseconds. The option is a int type. | 0 | Integer
 | *camel.component.debezium-mongodb.mongodb-ssl-enabled* | Should connector use SSL to connect to MongoDB instances | false | Boolean
 | *camel.component.debezium-mongodb.mongodb-ssl-invalid-hostname-allowed* | Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks | false | Boolean
 | *camel.component.debezium-mongodb.mongodb-user* | Database user for connecting to MongoDB, if necessary. |  | String
 | *camel.component.debezium-mongodb.offset-commit-policy* | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
-| *camel.component.debezium-mongodb.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5s | String
-| *camel.component.debezium-mongodb.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60s | String
+| *camel.component.debezium-mongodb.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5000 | Long
+| *camel.component.debezium-mongodb.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60000 | Long
 | *camel.component.debezium-mongodb.offset-storage* | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
 | *camel.component.debezium-mongodb.offset-storage-file-name* | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
 | *camel.component.debezium-mongodb.offset-storage-partitions* | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | Integer
 | *camel.component.debezium-mongodb.offset-storage-replication-factor* | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | Integer
 | *camel.component.debezium-mongodb.offset-storage-topic* | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
-| *camel.component.debezium-mongodb.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500ms | String
+| *camel.component.debezium-mongodb.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500 | Long
 | *camel.component.debezium-mongodb.provide-transaction-metadata* | Enables transaction metadata extraction together with event counting | false | Boolean
 | *camel.component.debezium-mongodb.query-fetch-size* | The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size. | 0 | Integer
-| *camel.component.debezium-mongodb.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10s | String
+| *camel.component.debezium-mongodb.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10000 | Long
 | *camel.component.debezium-mongodb.sanitize-field-names* | Whether field names will be sanitized to Avro naming conventions | false | Boolean
 | *camel.component.debezium-mongodb.skipped-operations* | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. |  | String
-| *camel.component.debezium-mongodb.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0ms | String
+| *camel.component.debezium-mongodb.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0 | Long
 | *camel.component.debezium-mongodb.snapshot-fetch-size* | The maximum number of records that should be loaded into memory while performing a snapshot |  | Integer
 | *camel.component.debezium-mongodb.snapshot-mode* | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should always perform an initial sync when required; 'never' to specify the connector should never perform an initial sync | initial | String
 | *camel.component.debezium-mongodb.source-struct-version* | A version of the format of the publicly visible source part in the message | v2 | String
diff --git a/components-starter/camel-debezium-mongodb-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMongodbComponentConfiguration.java b/components-starter/camel-debezium-mongodb-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMongodbComponentConfiguration.java
index 04f57c2..942d0e7 100644
--- a/components-starter/camel-debezium-mongodb-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMongodbComponentConfiguration.java
+++ b/components-starter/camel-debezium-mongodb-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMongodbComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.debezium.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -60,7 +61,7 @@ public class DebeziumMongodbComponentConfiguration
      * Allow pre-configured Configurations to be set. The option is a
      * org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration type.
      */
-    private String configuration;
+    private MongoDbConnectorEmbeddedDebeziumConfiguration configuration;
     /**
      * The Converter class that should be used to serialize and deserialize key
      * data for offsets. The default is JSON converter.
@@ -85,12 +86,12 @@ public class DebeziumMongodbComponentConfiguration
      * process and restoring the offset data to be committed in a future
      * attempt. The default is 5 seconds. The option is a long type.
      */
-    private String offsetCommitTimeoutMs = "5s";
+    private Long offsetCommitTimeoutMs = 5000L;
     /**
      * Interval at which to try committing offsets. The default is 1 minute. The
      * option is a long type.
      */
-    private String offsetFlushIntervalMs = "60s";
+    private Long offsetFlushIntervalMs = 60000L;
     /**
      * The name of the Java class that is responsible for persistence of
      * connector offsets.
@@ -137,13 +138,13 @@ public class DebeziumMongodbComponentConfiguration
      * connection cannot be made or when no primary is available. Defaults to 1
      * second (1000 ms). The option is a long type.
      */
-    private String connectBackoffInitialDelayMs = "1s";
+    private Long connectBackoffInitialDelayMs = 1000L;
     /**
      * The maximum delay when trying to reconnect to a primary after a
      * connection cannot be made or when no primary is available. Defaults to
      * 120 second (120,000 ms). The option is a long type.
      */
-    private String connectBackoffMaxDelayMs = "2m";
+    private Long connectBackoffMaxDelayMs = 120000L;
     /**
      * Maximum number of failed connection attempts to a replica set primary
      * before an exception occurs and task is aborted. Defaults to 16, which
@@ -197,7 +198,7 @@ public class DebeziumMongodbComponentConfiguration
      * disable heartbeat messages. Disabled by default. The option is a int
      * type.
      */
-    private String heartbeatIntervalMs = "0ms";
+    private Integer heartbeatIntervalMs = 0;
     /**
      * The prefix that is used to name heartbeat topics.Defaults to
      * __debezium-heartbeat.
@@ -225,7 +226,7 @@ public class DebeziumMongodbComponentConfiguration
     /**
      * The connection timeout in milliseconds. The option is a int type.
      */
-    private String mongodbConnectTimeoutMs = "10s";
+    private Integer mongodbConnectTimeoutMs = 10000;
     /**
      * The hostname and port pairs (in the form 'host' or 'host:port') of the
      * MongoDB server(s) in the replica set.
@@ -253,15 +254,15 @@ public class DebeziumMongodbComponentConfiguration
      * Frequency in milliseconds to look for new, removed, or changed replica
      * sets. Defaults to 30000 milliseconds. The option is a long type.
      */
-    private String mongodbPollIntervalMs = "30s";
+    private Long mongodbPollIntervalMs = 30000L;
     /**
      * The server selection timeout in milliseconds. The option is a int type.
      */
-    private String mongodbServerSelectionTimeoutMs = "30s";
+    private Integer mongodbServerSelectionTimeoutMs = 30000;
     /**
      * The socket timeout in milliseconds. The option is a int type.
      */
-    private String mongodbSocketTimeoutMs = "0ms";
+    private Integer mongodbSocketTimeoutMs = 0;
     /**
      * Should connector use SSL to connect to MongoDB instances
      */
@@ -279,7 +280,7 @@ public class DebeziumMongodbComponentConfiguration
      * Frequency in milliseconds to wait for new change events to appear after
      * receiving no events. Defaults to 500ms. The option is a long type.
      */
-    private String pollIntervalMs = "500ms";
+    private Long pollIntervalMs = 500L;
     /**
      * Enables transaction metadata extraction together with event counting
      */
@@ -293,7 +294,7 @@ public class DebeziumMongodbComponentConfiguration
      * Time to wait before restarting connector after retriable exception
      * occurs. Defaults to 10000ms. The option is a long type.
      */
-    private String retriableRestartConnectorWaitMs = "10s";
+    private Long retriableRestartConnectorWaitMs = 10000L;
     /**
      * Whether field names will be sanitized to Avro naming conventions
      */
@@ -308,7 +309,7 @@ public class DebeziumMongodbComponentConfiguration
      * The number of milliseconds to delay before a snapshot will begin. The
      * option is a long type.
      */
-    private String snapshotDelayMs = "0ms";
+    private Long snapshotDelayMs = 0L;
     /**
      * The maximum number of records that should be loaded into memory while
      * performing a snapshot
@@ -351,11 +352,12 @@ public class DebeziumMongodbComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public MongoDbConnectorEmbeddedDebeziumConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(
+            MongoDbConnectorEmbeddedDebeziumConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -383,19 +385,19 @@ public class DebeziumMongodbComponentConfiguration
         this.offsetCommitPolicy = offsetCommitPolicy;
     }
 
-    public String getOffsetCommitTimeoutMs() {
+    public Long getOffsetCommitTimeoutMs() {
         return offsetCommitTimeoutMs;
     }
 
-    public void setOffsetCommitTimeoutMs(String offsetCommitTimeoutMs) {
+    public void setOffsetCommitTimeoutMs(Long offsetCommitTimeoutMs) {
         this.offsetCommitTimeoutMs = offsetCommitTimeoutMs;
     }
 
-    public String getOffsetFlushIntervalMs() {
+    public Long getOffsetFlushIntervalMs() {
         return offsetFlushIntervalMs;
     }
 
-    public void setOffsetFlushIntervalMs(String offsetFlushIntervalMs) {
+    public void setOffsetFlushIntervalMs(Long offsetFlushIntervalMs) {
         this.offsetFlushIntervalMs = offsetFlushIntervalMs;
     }
 
@@ -467,20 +469,20 @@ public class DebeziumMongodbComponentConfiguration
         this.collectionIncludeList = collectionIncludeList;
     }
 
-    public String getConnectBackoffInitialDelayMs() {
+    public Long getConnectBackoffInitialDelayMs() {
         return connectBackoffInitialDelayMs;
     }
 
     public void setConnectBackoffInitialDelayMs(
-            String connectBackoffInitialDelayMs) {
+            Long connectBackoffInitialDelayMs) {
         this.connectBackoffInitialDelayMs = connectBackoffInitialDelayMs;
     }
 
-    public String getConnectBackoffMaxDelayMs() {
+    public Long getConnectBackoffMaxDelayMs() {
         return connectBackoffMaxDelayMs;
     }
 
-    public void setConnectBackoffMaxDelayMs(String connectBackoffMaxDelayMs) {
+    public void setConnectBackoffMaxDelayMs(Long connectBackoffMaxDelayMs) {
         this.connectBackoffMaxDelayMs = connectBackoffMaxDelayMs;
     }
 
@@ -550,11 +552,11 @@ public class DebeziumMongodbComponentConfiguration
         this.fieldRenames = fieldRenames;
     }
 
-    public String getHeartbeatIntervalMs() {
+    public Integer getHeartbeatIntervalMs() {
         return heartbeatIntervalMs;
     }
 
-    public void setHeartbeatIntervalMs(String heartbeatIntervalMs) {
+    public void setHeartbeatIntervalMs(Integer heartbeatIntervalMs) {
         this.heartbeatIntervalMs = heartbeatIntervalMs;
     }
 
@@ -598,11 +600,11 @@ public class DebeziumMongodbComponentConfiguration
         this.mongodbAuthsource = mongodbAuthsource;
     }
 
-    public String getMongodbConnectTimeoutMs() {
+    public Integer getMongodbConnectTimeoutMs() {
         return mongodbConnectTimeoutMs;
     }
 
-    public void setMongodbConnectTimeoutMs(String mongodbConnectTimeoutMs) {
+    public void setMongodbConnectTimeoutMs(Integer mongodbConnectTimeoutMs) {
         this.mongodbConnectTimeoutMs = mongodbConnectTimeoutMs;
     }
 
@@ -638,28 +640,28 @@ public class DebeziumMongodbComponentConfiguration
         this.mongodbPassword = mongodbPassword;
     }
 
-    public String getMongodbPollIntervalMs() {
+    public Long getMongodbPollIntervalMs() {
         return mongodbPollIntervalMs;
     }
 
-    public void setMongodbPollIntervalMs(String mongodbPollIntervalMs) {
+    public void setMongodbPollIntervalMs(Long mongodbPollIntervalMs) {
         this.mongodbPollIntervalMs = mongodbPollIntervalMs;
     }
 
-    public String getMongodbServerSelectionTimeoutMs() {
+    public Integer getMongodbServerSelectionTimeoutMs() {
         return mongodbServerSelectionTimeoutMs;
     }
 
     public void setMongodbServerSelectionTimeoutMs(
-            String mongodbServerSelectionTimeoutMs) {
+            Integer mongodbServerSelectionTimeoutMs) {
         this.mongodbServerSelectionTimeoutMs = mongodbServerSelectionTimeoutMs;
     }
 
-    public String getMongodbSocketTimeoutMs() {
+    public Integer getMongodbSocketTimeoutMs() {
         return mongodbSocketTimeoutMs;
     }
 
-    public void setMongodbSocketTimeoutMs(String mongodbSocketTimeoutMs) {
+    public void setMongodbSocketTimeoutMs(Integer mongodbSocketTimeoutMs) {
         this.mongodbSocketTimeoutMs = mongodbSocketTimeoutMs;
     }
 
@@ -688,11 +690,11 @@ public class DebeziumMongodbComponentConfiguration
         this.mongodbUser = mongodbUser;
     }
 
-    public String getPollIntervalMs() {
+    public Long getPollIntervalMs() {
         return pollIntervalMs;
     }
 
-    public void setPollIntervalMs(String pollIntervalMs) {
+    public void setPollIntervalMs(Long pollIntervalMs) {
         this.pollIntervalMs = pollIntervalMs;
     }
 
@@ -712,12 +714,12 @@ public class DebeziumMongodbComponentConfiguration
         this.queryFetchSize = queryFetchSize;
     }
 
-    public String getRetriableRestartConnectorWaitMs() {
+    public Long getRetriableRestartConnectorWaitMs() {
         return retriableRestartConnectorWaitMs;
     }
 
     public void setRetriableRestartConnectorWaitMs(
-            String retriableRestartConnectorWaitMs) {
+            Long retriableRestartConnectorWaitMs) {
         this.retriableRestartConnectorWaitMs = retriableRestartConnectorWaitMs;
     }
 
@@ -737,11 +739,11 @@ public class DebeziumMongodbComponentConfiguration
         this.skippedOperations = skippedOperations;
     }
 
-    public String getSnapshotDelayMs() {
+    public Long getSnapshotDelayMs() {
         return snapshotDelayMs;
     }
 
-    public void setSnapshotDelayMs(String snapshotDelayMs) {
+    public void setSnapshotDelayMs(Long snapshotDelayMs) {
         this.snapshotDelayMs = snapshotDelayMs;
     }
 
diff --git a/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql-starter.adoc b/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql-starter.adoc
index 2828f02..87edbe2 100644
--- a/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql-starter.adoc
+++ b/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql-starter.adoc
@@ -32,16 +32,16 @@ The component supports 80 options, which are listed below.
 | *camel.component.debezium-mysql.column-blacklist* | Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead) |  | String
 | *camel.component.debezium-mysql.column-exclude-list* | Regular expressions matching columns to exclude from change events |  | String
 | *camel.component.debezium-mysql.column-include-list* | Regular expressions matching columns to include in change events |  | String
-| *camel.component.debezium-mysql.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration type. |  | String
+| *camel.component.debezium-mysql.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration type. |  | MySqlConnectorEmbeddedDebeziumConfiguration
 | *camel.component.debezium-mysql.connect-keep-alive* | Whether a separate thread should be used to ensure the connection is kept alive. | true | Boolean
-| *camel.component.debezium-mysql.connect-keep-alive-interval-ms* | Interval in milliseconds to wait for connection checking if keep alive thread is used. The option is a long type. | 1m | String
-| *camel.component.debezium-mysql.connect-timeout-ms* | Maximum time in milliseconds to wait after trying to connect to the database before timing out. The option is a int type. | 30s | String
+| *camel.component.debezium-mysql.connect-keep-alive-interval-ms* | Interval in milliseconds to wait for connection checking if keep alive thread is used. The option is a long type. | 60000 | Long
+| *camel.component.debezium-mysql.connect-timeout-ms* | Maximum time in milliseconds to wait after trying to connect to the database before timing out. The option is a int type. | 30000 | Integer
 | *camel.component.debezium-mysql.database-exclude-list* | A comma-separated list of regular expressions that match database names to be excluded from monitoring |  | String
 | *camel.component.debezium-mysql.database-history* | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
 | *camel.component.debezium-mysql.database-history-file-filename* | The path to the file that will be used to record the database history |  | String
 | *camel.component.debezium-mysql.database-history-kafka-bootstrap-servers* | A list of host/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process. |  | String
 | *camel.component.debezium-mysql.database-history-kafka-recovery-attempts* | The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms). | 100 | Integer
-| *camel.component.debezium-mysql.database-history-kafka-recovery-poll-interval-ms* | The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type. | 100ms | String
+| *camel.component.debezium-mysql.database-history-kafka-recovery-poll-interval-ms* | The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type. | 100 | Integer
 | *camel.component.debezium-mysql.database-history-kafka-topic* | The name of the topic for the database schema history |  | String
 | *camel.component.debezium-mysql.database-history-skip-unparseable-ddl* | Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes. | false | Boolean
 | *camel.component.debezium-mysql.database-history-store-only-monitored-tables-ddl* | Controls what DDL will Debezium store in database history.By default (false) Debezium will store all incoming DDL statements. If set to truethen only DDL that manipulates a monitored table will be stored. | false | Boolean
@@ -69,7 +69,7 @@ The component supports 80 options, which are listed below.
 | *camel.component.debezium-mysql.gtid-source-excludes* | The source UUIDs used to exclude GTID ranges when determine the starting position in the MySQL server's binlog. |  | String
 | *camel.component.debezium-mysql.gtid-source-filter-dml-events* | If set to true, we will only produce DML events into Kafka for transactions that were written on mysql servers with UUIDs matching the filters defined by the gtid.source.includes or gtid.source.excludes configuration options, if they are specified. | true | Boolean
 | *camel.component.debezium-mysql.gtid-source-includes* | The source UUIDs used to include GTID ranges when determine the starting position in the MySQL server's binlog. |  | String
-| *camel.component.debezium-mysql.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0ms | String
+| *camel.component.debezium-mysql.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0 | Integer
 | *camel.component.debezium-mysql.heartbeat-topics-prefix* | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
 | *camel.component.debezium-mysql.include-query* | Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default val [...]
 | *camel.component.debezium-mysql.include-schema-changes* | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | Boolean
@@ -80,16 +80,16 @@ The component supports 80 options, which are listed below.
 | *camel.component.debezium-mysql.max-queue-size* | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | Integer
 | *camel.component.debezium-mysql.message-key-columns* | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the tabl [...]
 | *camel.component.debezium-mysql.offset-commit-policy* | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
-| *camel.component.debezium-mysql.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5s | String
-| *camel.component.debezium-mysql.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60s | String
+| *camel.component.debezium-mysql.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5000 | Long
+| *camel.component.debezium-mysql.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60000 | Long
 | *camel.component.debezium-mysql.offset-storage* | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
 | *camel.component.debezium-mysql.offset-storage-file-name* | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
 | *camel.component.debezium-mysql.offset-storage-partitions* | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | Integer
 | *camel.component.debezium-mysql.offset-storage-replication-factor* | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | Integer
 | *camel.component.debezium-mysql.offset-storage-topic* | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
-| *camel.component.debezium-mysql.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500ms | String
+| *camel.component.debezium-mysql.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500 | Long
 | *camel.component.debezium-mysql.skipped-operations* | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. |  | String
-| *camel.component.debezium-mysql.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0ms | String
+| *camel.component.debezium-mysql.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0 | Long
 | *camel.component.debezium-mysql.snapshot-fetch-size* | The maximum number of records that should be loaded into memory while performing a snapshot |  | Integer
 | *camel.component.debezium-mysql.snapshot-locking-mode* | Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapsho [...]
 | *camel.component.debezium-mysql.snapshot-mode* | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'schema_only' to only take a snapshot of the schema (table structures) but no actual data; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initia [...]
diff --git a/components-starter/camel-debezium-mysql-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMySqlComponentConfiguration.java b/components-starter/camel-debezium-mysql-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMySqlComponentConfiguration.java
index c239b83..e7d7e29 100644
--- a/components-starter/camel-debezium-mysql-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMySqlComponentConfiguration.java
+++ b/components-starter/camel-debezium-mysql-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMySqlComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.debezium.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -60,7 +61,7 @@ public class DebeziumMySqlComponentConfiguration
      * Allow pre-configured Configurations to be set. The option is a
      * org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration type.
      */
-    private String configuration;
+    private MySqlConnectorEmbeddedDebeziumConfiguration configuration;
     /**
      * The Converter class that should be used to serialize and deserialize key
      * data for offsets. The default is JSON converter.
@@ -85,12 +86,12 @@ public class DebeziumMySqlComponentConfiguration
      * process and restoring the offset data to be committed in a future
      * attempt. The default is 5 seconds. The option is a long type.
      */
-    private String offsetCommitTimeoutMs = "5s";
+    private Long offsetCommitTimeoutMs = 5000L;
     /**
      * Interval at which to try committing offsets. The default is 1 minute. The
      * option is a long type.
      */
-    private String offsetFlushIntervalMs = "60s";
+    private Long offsetFlushIntervalMs = 60000L;
     /**
      * The name of the Java class that is responsible for persistence of
      * connector offsets.
@@ -168,12 +169,12 @@ public class DebeziumMySqlComponentConfiguration
      * Interval in milliseconds to wait for connection checking if keep alive
      * thread is used. The option is a long type.
      */
-    private String connectKeepAliveIntervalMs = "1m";
+    private Long connectKeepAliveIntervalMs = 60000L;
     /**
      * Maximum time in milliseconds to wait after trying to connect to the
      * database before timing out. The option is a int type.
      */
-    private String connectTimeoutMs = "30s";
+    private Integer connectTimeoutMs = 30000;
     /**
      * A comma-separated list of regular expressions that match database names
      * to be excluded from monitoring
@@ -206,7 +207,7 @@ public class DebeziumMySqlComponentConfiguration
      * The number of milliseconds to wait while polling for persisted data
      * during recovery. The option is a int type.
      */
-    private String databaseHistoryKafkaRecoveryPollIntervalMs = "100ms";
+    private Integer databaseHistoryKafkaRecoveryPollIntervalMs = 100;
     /**
      * The name of the topic for the database schema history
      */
@@ -385,7 +386,7 @@ public class DebeziumMySqlComponentConfiguration
      * disable heartbeat messages. Disabled by default. The option is a int
      * type.
      */
-    private String heartbeatIntervalMs = "0ms";
+    private Integer heartbeatIntervalMs = 0;
     /**
      * The prefix that is used to name heartbeat topics.Defaults to
      * __debezium-heartbeat.
@@ -446,7 +447,7 @@ public class DebeziumMySqlComponentConfiguration
      * Frequency in milliseconds to wait for new change events to appear after
      * receiving no events. Defaults to 500ms. The option is a long type.
      */
-    private String pollIntervalMs = "500ms";
+    private Long pollIntervalMs = 500L;
     /**
      * The comma-separated list of operations to skip during streaming, defined
      * as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no
@@ -457,7 +458,7 @@ public class DebeziumMySqlComponentConfiguration
      * The number of milliseconds to delay before a snapshot will begin. The
      * option is a long type.
      */
-    private String snapshotDelayMs = "0ms";
+    private Long snapshotDelayMs = 0L;
     /**
      * The maximum number of records that should be loaded into memory while
      * performing a snapshot
@@ -589,11 +590,12 @@ public class DebeziumMySqlComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public MySqlConnectorEmbeddedDebeziumConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(
+            MySqlConnectorEmbeddedDebeziumConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -621,19 +623,19 @@ public class DebeziumMySqlComponentConfiguration
         this.offsetCommitPolicy = offsetCommitPolicy;
     }
 
-    public String getOffsetCommitTimeoutMs() {
+    public Long getOffsetCommitTimeoutMs() {
         return offsetCommitTimeoutMs;
     }
 
-    public void setOffsetCommitTimeoutMs(String offsetCommitTimeoutMs) {
+    public void setOffsetCommitTimeoutMs(Long offsetCommitTimeoutMs) {
         this.offsetCommitTimeoutMs = offsetCommitTimeoutMs;
     }
 
-    public String getOffsetFlushIntervalMs() {
+    public Long getOffsetFlushIntervalMs() {
         return offsetFlushIntervalMs;
     }
 
-    public void setOffsetFlushIntervalMs(String offsetFlushIntervalMs) {
+    public void setOffsetFlushIntervalMs(Long offsetFlushIntervalMs) {
         this.offsetFlushIntervalMs = offsetFlushIntervalMs;
     }
 
@@ -745,19 +747,19 @@ public class DebeziumMySqlComponentConfiguration
         this.connectKeepAlive = connectKeepAlive;
     }
 
-    public String getConnectKeepAliveIntervalMs() {
+    public Long getConnectKeepAliveIntervalMs() {
         return connectKeepAliveIntervalMs;
     }
 
-    public void setConnectKeepAliveIntervalMs(String connectKeepAliveIntervalMs) {
+    public void setConnectKeepAliveIntervalMs(Long connectKeepAliveIntervalMs) {
         this.connectKeepAliveIntervalMs = connectKeepAliveIntervalMs;
     }
 
-    public String getConnectTimeoutMs() {
+    public Integer getConnectTimeoutMs() {
         return connectTimeoutMs;
     }
 
-    public void setConnectTimeoutMs(String connectTimeoutMs) {
+    public void setConnectTimeoutMs(Integer connectTimeoutMs) {
         this.connectTimeoutMs = connectTimeoutMs;
     }
 
@@ -804,12 +806,12 @@ public class DebeziumMySqlComponentConfiguration
         this.databaseHistoryKafkaRecoveryAttempts = databaseHistoryKafkaRecoveryAttempts;
     }
 
-    public String getDatabaseHistoryKafkaRecoveryPollIntervalMs() {
+    public Integer getDatabaseHistoryKafkaRecoveryPollIntervalMs() {
         return databaseHistoryKafkaRecoveryPollIntervalMs;
     }
 
     public void setDatabaseHistoryKafkaRecoveryPollIntervalMs(
-            String databaseHistoryKafkaRecoveryPollIntervalMs) {
+            Integer databaseHistoryKafkaRecoveryPollIntervalMs) {
         this.databaseHistoryKafkaRecoveryPollIntervalMs = databaseHistoryKafkaRecoveryPollIntervalMs;
     }
 
@@ -1027,11 +1029,11 @@ public class DebeziumMySqlComponentConfiguration
         this.gtidSourceIncludes = gtidSourceIncludes;
     }
 
-    public String getHeartbeatIntervalMs() {
+    public Integer getHeartbeatIntervalMs() {
         return heartbeatIntervalMs;
     }
 
-    public void setHeartbeatIntervalMs(String heartbeatIntervalMs) {
+    public void setHeartbeatIntervalMs(Integer heartbeatIntervalMs) {
         this.heartbeatIntervalMs = heartbeatIntervalMs;
     }
 
@@ -1092,11 +1094,11 @@ public class DebeziumMySqlComponentConfiguration
         this.messageKeyColumns = messageKeyColumns;
     }
 
-    public String getPollIntervalMs() {
+    public Long getPollIntervalMs() {
         return pollIntervalMs;
     }
 
-    public void setPollIntervalMs(String pollIntervalMs) {
+    public void setPollIntervalMs(Long pollIntervalMs) {
         this.pollIntervalMs = pollIntervalMs;
     }
 
@@ -1108,11 +1110,11 @@ public class DebeziumMySqlComponentConfiguration
         this.skippedOperations = skippedOperations;
     }
 
-    public String getSnapshotDelayMs() {
+    public Long getSnapshotDelayMs() {
         return snapshotDelayMs;
     }
 
-    public void setSnapshotDelayMs(String snapshotDelayMs) {
+    public void setSnapshotDelayMs(Long snapshotDelayMs) {
         this.snapshotDelayMs = snapshotDelayMs;
     }
 
diff --git a/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres-starter.adoc b/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres-starter.adoc
index 2db52b2..15bbee9 100644
--- a/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres-starter.adoc
+++ b/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres-starter.adoc
@@ -32,7 +32,7 @@ The component supports 85 options, which are listed below.
 | *camel.component.debezium-postgres.column-include-list* | Regular expressions matching columns to include in change events |  | String
 | *camel.component.debezium-postgres.column-propagate-source-type* | A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records. |  | String
 | *camel.component.debezium-postgres.column-whitelist* | Regular expressions matching columns to include in change events (deprecated, use column.include.list instead) |  | String
-| *camel.component.debezium-postgres.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration type. |  | String
+| *camel.component.debezium-postgres.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration type. |  | PostgresConnectorEmbeddedDebeziumConfiguration
 | *camel.component.debezium-postgres.converters* | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' |  | String
 | *camel.component.debezium-postgres.database-dbname* | The name of the database the connector should be monitoring |  | String
 | *camel.component.debezium-postgres.database-history-file-filename* | The path to the file that will be used to record the database history |  | String
@@ -54,7 +54,7 @@ The component supports 85 options, which are listed below.
 | *camel.component.debezium-postgres.enabled* | Whether to enable auto configuration of the debezium-postgres component. This is enabled by default. |  | Boolean
 | *camel.component.debezium-postgres.event-processing-failure-handling-mode* | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
 | *camel.component.debezium-postgres.heartbeat-action-query* | The query executed with every heartbeat. |  | String
-| *camel.component.debezium-postgres.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0ms | String
+| *camel.component.debezium-postgres.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0 | Integer
 | *camel.component.debezium-postgres.heartbeat-topics-prefix* | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
 | *camel.component.debezium-postgres.hstore-handling-mode* | Specify how HSTORE columns should be represented in change events, including:'json' represents values as string-ified JSON (default)'map' represents values as a key/value map | json | String
 | *camel.component.debezium-postgres.include-unknown-datatypes* | Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation. | false | Boolean
@@ -65,20 +65,20 @@ The component supports 85 options, which are listed below.
 | *camel.component.debezium-postgres.max-queue-size* | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | Integer
 | *camel.component.debezium-postgres.message-key-columns* | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the t [...]
 | *camel.component.debezium-postgres.offset-commit-policy* | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
-| *camel.component.debezium-postgres.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5s | String
-| *camel.component.debezium-postgres.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60s | String
+| *camel.component.debezium-postgres.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5000 | Long
+| *camel.component.debezium-postgres.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60000 | Long
 | *camel.component.debezium-postgres.offset-storage* | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
 | *camel.component.debezium-postgres.offset-storage-file-name* | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
 | *camel.component.debezium-postgres.offset-storage-partitions* | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | Integer
 | *camel.component.debezium-postgres.offset-storage-replication-factor* | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | Integer
 | *camel.component.debezium-postgres.offset-storage-topic* | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
 | *camel.component.debezium-postgres.plugin-name* | The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs' and 'wal2json'. Defaults to 'decoderbufs'. | decoderbufs | String
-| *camel.component.debezium-postgres.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500ms | String
+| *camel.component.debezium-postgres.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500 | Long
 | *camel.component.debezium-postgres.provide-transaction-metadata* | Enables transaction metadata extraction together with event counting | false | Boolean
 | *camel.component.debezium-postgres.publication-autocreate-mode* | Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the conne [...]
 | *camel.component.debezium-postgres.publication-name* | The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication' | dbz_publication | String
 | *camel.component.debezium-postgres.query-fetch-size* | The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size. | 0 | Integer
-| *camel.component.debezium-postgres.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10s | String
+| *camel.component.debezium-postgres.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10000 | Long
 | *camel.component.debezium-postgres.sanitize-field-names* | Whether field names will be sanitized to Avro naming conventions | false | Boolean
 | *camel.component.debezium-postgres.schema-blacklist* | The schemas for which events must not be captured (deprecated, use schema.exclude.list instead) |  | String
 | *camel.component.debezium-postgres.schema-exclude-list* | The schemas for which events must not be captured |  | String
@@ -89,16 +89,16 @@ The component supports 85 options, which are listed below.
 | *camel.component.debezium-postgres.slot-drop-on-stop* | Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location | false | Boolean
 | *camel.component.debezium-postgres.slot-max-retries* | How many times to retry connecting to a replication slot when an attempt fails. | 6 | Integer
 | *camel.component.debezium-postgres.slot-name* | The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium | debezium | String
-| *camel.component.debezium-postgres.slot-retry-delay-ms* | The number of milli-seconds to wait between retry attempts when the connector fails to connect to a replication slot. The option is a long type. | 10s | String
+| *camel.component.debezium-postgres.slot-retry-delay-ms* | The number of milli-seconds to wait between retry attempts when the connector fails to connect to a replication slot. The option is a long type. | 10000 | Long
 | *camel.component.debezium-postgres.slot-stream-params* | Any optional parameters used by logical decoding plugin. Semi-colon separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true' |  | String
 | *camel.component.debezium-postgres.snapshot-custom-class* | When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries. |  | String
-| *camel.component.debezium-postgres.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0ms | String
+| *camel.component.debezium-postgres.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0 | Long
 | *camel.component.debezium-postgres.snapshot-fetch-size* | The maximum number of records that should be loaded into memory while performing a snapshot |  | Integer
-| *camel.component.debezium-postgres.snapshot-lock-timeout-ms* | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type. | 10s | String
+| *camel.component.debezium-postgres.snapshot-lock-timeout-ms* | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type. | 10000 | Long
 | *camel.component.debezium-postgres.snapshot-mode* | The criteria for running a snapshot upon startup of the connector. Options include: 'always' to specify that the connector run a snapshot each time it starts up; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally start emitting chan [...]
 | *camel.component.debezium-postgres.snapshot-select-statement-overrides* | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME' [...]
 | *camel.component.debezium-postgres.source-struct-version* | A version of the format of the publicly visible source part in the message | v2 | String
-| *camel.component.debezium-postgres.status-update-interval-ms* | Frequency in milliseconds for sending replication connection status updates to the server. Defaults to 10 seconds (10000 ms). The option is a int type. | 10s | String
+| *camel.component.debezium-postgres.status-update-interval-ms* | Frequency in milliseconds for sending replication connection status updates to the server. Defaults to 10 seconds (10000 ms). The option is a int type. | 10000 | Integer
 | *camel.component.debezium-postgres.table-blacklist* | A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead) |  | String
 | *camel.component.debezium-postgres.table-exclude-list* | A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring |  | String
 | *camel.component.debezium-postgres.table-ignore-builtin* | Flag specifying whether built-in tables should be ignored. | true | Boolean
@@ -107,7 +107,7 @@ The component supports 85 options, which are listed below.
 | *camel.component.debezium-postgres.time-precision-mode* | Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date [...]
 | *camel.component.debezium-postgres.toasted-value-placeholder* | Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database. If starts with 'hex:' prefix it is expected that the rest of the string repesents hexadecimally encoded octets. | __debezium_unavailable_value | String
 | *camel.component.debezium-postgres.tombstones-on-delete* | Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted. | false | Boolean
-| *camel.component.debezium-postgres.xmin-fetch-interval-ms* | Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance pe [...]
+| *camel.component.debezium-postgres.xmin-fetch-interval-ms* | Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance pe [...]
 | *camel.component.debezium-postgres.basic-property-binding* | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-debezium-postgres-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumPostgresComponentConfiguration.java b/components-starter/camel-debezium-postgres-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumPostgresComponentConfiguration.java
index a8799af..44f9205 100644
--- a/components-starter/camel-debezium-postgres-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumPostgresComponentConfiguration.java
+++ b/components-starter/camel-debezium-postgres-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumPostgresComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.debezium.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -60,7 +61,7 @@ public class DebeziumPostgresComponentConfiguration
      * Allow pre-configured Configurations to be set. The option is a
      * org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration type.
      */
-    private String configuration;
+    private PostgresConnectorEmbeddedDebeziumConfiguration configuration;
     /**
      * The Converter class that should be used to serialize and deserialize key
      * data for offsets. The default is JSON converter.
@@ -85,12 +86,12 @@ public class DebeziumPostgresComponentConfiguration
      * process and restoring the offset data to be committed in a future
      * attempt. The default is 5 seconds. The option is a long type.
      */
-    private String offsetCommitTimeoutMs = "5s";
+    private Long offsetCommitTimeoutMs = 5000L;
     /**
      * Interval at which to try committing offsets. The default is 1 minute. The
      * option is a long type.
      */
-    private String offsetFlushIntervalMs = "60s";
+    private Long offsetFlushIntervalMs = 60000L;
     /**
      * The name of the Java class that is responsible for persistence of
      * connector offsets.
@@ -279,7 +280,7 @@ public class DebeziumPostgresComponentConfiguration
      * disable heartbeat messages. Disabled by default. The option is a int
      * type.
      */
-    private String heartbeatIntervalMs = "0ms";
+    private Integer heartbeatIntervalMs = 0;
     /**
      * The prefix that is used to name heartbeat topics.Defaults to
      * __debezium-heartbeat.
@@ -336,7 +337,7 @@ public class DebeziumPostgresComponentConfiguration
      * Frequency in milliseconds to wait for new change events to appear after
      * receiving no events. Defaults to 500ms. The option is a long type.
      */
-    private String pollIntervalMs = "500ms";
+    private Long pollIntervalMs = 500L;
     /**
      * Enables transaction metadata extraction together with event counting
      */
@@ -371,7 +372,7 @@ public class DebeziumPostgresComponentConfiguration
      * Time to wait before restarting connector after retriable exception
      * occurs. Defaults to 10000ms. The option is a long type.
      */
-    private String retriableRestartConnectorWaitMs = "10s";
+    private Long retriableRestartConnectorWaitMs = 10000L;
     /**
      * Whether field names will be sanitized to Avro naming conventions
      */
@@ -435,7 +436,7 @@ public class DebeziumPostgresComponentConfiguration
      * connector fails to connect to a replication slot. The option is a long
      * type.
      */
-    private String slotRetryDelayMs = "10s";
+    private Long slotRetryDelayMs = 10000L;
     /**
      * Any optional parameters used by logical decoding plugin. Semi-colon
      * separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true'
@@ -453,7 +454,7 @@ public class DebeziumPostgresComponentConfiguration
      * The number of milliseconds to delay before a snapshot will begin. The
      * option is a long type.
      */
-    private String snapshotDelayMs = "0ms";
+    private Long snapshotDelayMs = 0L;
     /**
      * The maximum number of records that should be loaded into memory while
      * performing a snapshot
@@ -464,7 +465,7 @@ public class DebeziumPostgresComponentConfiguration
      * a snapshot. If locks cannot be acquired in this time frame, the snapshot
      * will be aborted. Defaults to 10 seconds. The option is a long type.
      */
-    private String snapshotLockTimeoutMs = "10s";
+    private Long snapshotLockTimeoutMs = 10000L;
     /**
      * The criteria for running a snapshot upon startup of the connector.
      * Options include: 'always' to specify that the connector run a snapshot
@@ -506,7 +507,7 @@ public class DebeziumPostgresComponentConfiguration
      * updates to the server. Defaults to 10 seconds (10000 ms). The option is a
      * int type.
      */
-    private String statusUpdateIntervalMs = "10s";
+    private Integer statusUpdateIntervalMs = 10000;
     /**
      * A comma-separated list of regular expressions that match the
      * fully-qualified names of tables to be excluded from monitoring
@@ -567,7 +568,7 @@ public class DebeziumPostgresComponentConfiguration
      * The default is set to 0 ms, which disables tracking xmin. The option is a
      * long type.
      */
-    private String xminFetchIntervalMs = "0ms";
+    private Long xminFetchIntervalMs = 0L;
 
     public Map<String, Object> getAdditionalProperties() {
         return additionalProperties;
@@ -585,11 +586,12 @@ public class DebeziumPostgresComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public PostgresConnectorEmbeddedDebeziumConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(
+            PostgresConnectorEmbeddedDebeziumConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -617,19 +619,19 @@ public class DebeziumPostgresComponentConfiguration
         this.offsetCommitPolicy = offsetCommitPolicy;
     }
 
-    public String getOffsetCommitTimeoutMs() {
+    public Long getOffsetCommitTimeoutMs() {
         return offsetCommitTimeoutMs;
     }
 
-    public void setOffsetCommitTimeoutMs(String offsetCommitTimeoutMs) {
+    public void setOffsetCommitTimeoutMs(Long offsetCommitTimeoutMs) {
         this.offsetCommitTimeoutMs = offsetCommitTimeoutMs;
     }
 
-    public String getOffsetFlushIntervalMs() {
+    public Long getOffsetFlushIntervalMs() {
         return offsetFlushIntervalMs;
     }
 
-    public void setOffsetFlushIntervalMs(String offsetFlushIntervalMs) {
+    public void setOffsetFlushIntervalMs(Long offsetFlushIntervalMs) {
         this.offsetFlushIntervalMs = offsetFlushIntervalMs;
     }
 
@@ -896,11 +898,11 @@ public class DebeziumPostgresComponentConfiguration
         this.heartbeatActionQuery = heartbeatActionQuery;
     }
 
-    public String getHeartbeatIntervalMs() {
+    public Integer getHeartbeatIntervalMs() {
         return heartbeatIntervalMs;
     }
 
-    public void setHeartbeatIntervalMs(String heartbeatIntervalMs) {
+    public void setHeartbeatIntervalMs(Integer heartbeatIntervalMs) {
         this.heartbeatIntervalMs = heartbeatIntervalMs;
     }
 
@@ -968,11 +970,11 @@ public class DebeziumPostgresComponentConfiguration
         this.pluginName = pluginName;
     }
 
-    public String getPollIntervalMs() {
+    public Long getPollIntervalMs() {
         return pollIntervalMs;
     }
 
-    public void setPollIntervalMs(String pollIntervalMs) {
+    public void setPollIntervalMs(Long pollIntervalMs) {
         this.pollIntervalMs = pollIntervalMs;
     }
 
@@ -1008,12 +1010,12 @@ public class DebeziumPostgresComponentConfiguration
         this.queryFetchSize = queryFetchSize;
     }
 
-    public String getRetriableRestartConnectorWaitMs() {
+    public Long getRetriableRestartConnectorWaitMs() {
         return retriableRestartConnectorWaitMs;
     }
 
     public void setRetriableRestartConnectorWaitMs(
-            String retriableRestartConnectorWaitMs) {
+            Long retriableRestartConnectorWaitMs) {
         this.retriableRestartConnectorWaitMs = retriableRestartConnectorWaitMs;
     }
 
@@ -1097,11 +1099,11 @@ public class DebeziumPostgresComponentConfiguration
         this.slotName = slotName;
     }
 
-    public String getSlotRetryDelayMs() {
+    public Long getSlotRetryDelayMs() {
         return slotRetryDelayMs;
     }
 
-    public void setSlotRetryDelayMs(String slotRetryDelayMs) {
+    public void setSlotRetryDelayMs(Long slotRetryDelayMs) {
         this.slotRetryDelayMs = slotRetryDelayMs;
     }
 
@@ -1121,11 +1123,11 @@ public class DebeziumPostgresComponentConfiguration
         this.snapshotCustomClass = snapshotCustomClass;
     }
 
-    public String getSnapshotDelayMs() {
+    public Long getSnapshotDelayMs() {
         return snapshotDelayMs;
     }
 
-    public void setSnapshotDelayMs(String snapshotDelayMs) {
+    public void setSnapshotDelayMs(Long snapshotDelayMs) {
         this.snapshotDelayMs = snapshotDelayMs;
     }
 
@@ -1137,11 +1139,11 @@ public class DebeziumPostgresComponentConfiguration
         this.snapshotFetchSize = snapshotFetchSize;
     }
 
-    public String getSnapshotLockTimeoutMs() {
+    public Long getSnapshotLockTimeoutMs() {
         return snapshotLockTimeoutMs;
     }
 
-    public void setSnapshotLockTimeoutMs(String snapshotLockTimeoutMs) {
+    public void setSnapshotLockTimeoutMs(Long snapshotLockTimeoutMs) {
         this.snapshotLockTimeoutMs = snapshotLockTimeoutMs;
     }
 
@@ -1170,11 +1172,11 @@ public class DebeziumPostgresComponentConfiguration
         this.sourceStructVersion = sourceStructVersion;
     }
 
-    public String getStatusUpdateIntervalMs() {
+    public Integer getStatusUpdateIntervalMs() {
         return statusUpdateIntervalMs;
     }
 
-    public void setStatusUpdateIntervalMs(String statusUpdateIntervalMs) {
+    public void setStatusUpdateIntervalMs(Integer statusUpdateIntervalMs) {
         this.statusUpdateIntervalMs = statusUpdateIntervalMs;
     }
 
@@ -1242,11 +1244,11 @@ public class DebeziumPostgresComponentConfiguration
         this.tombstonesOnDelete = tombstonesOnDelete;
     }
 
-    public String getXminFetchIntervalMs() {
+    public Long getXminFetchIntervalMs() {
         return xminFetchIntervalMs;
     }
 
-    public void setXminFetchIntervalMs(String xminFetchIntervalMs) {
+    public void setXminFetchIntervalMs(Long xminFetchIntervalMs) {
         this.xminFetchIntervalMs = xminFetchIntervalMs;
     }
 }
\ No newline at end of file
diff --git a/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver-starter.adoc b/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver-starter.adoc
index c6f3707..7878db4 100644
--- a/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver-starter.adoc
+++ b/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver-starter.adoc
@@ -31,14 +31,14 @@ The component supports 65 options, which are listed below.
 | *camel.component.debezium-sqlserver.column-include-list* | Regular expressions matching columns to include in change events |  | String
 | *camel.component.debezium-sqlserver.column-propagate-source-type* | A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records. |  | String
 | *camel.component.debezium-sqlserver.column-whitelist* | Regular expressions matching columns to include in change events (deprecated, use column.include.list instead) |  | String
-| *camel.component.debezium-sqlserver.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration type. |  | String
+| *camel.component.debezium-sqlserver.configuration* | Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration type. |  | SqlServerConnectorEmbeddedDebeziumConfiguration
 | *camel.component.debezium-sqlserver.converters* | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' |  | String
 | *camel.component.debezium-sqlserver.database-dbname* | The name of the database the connector should be monitoring. When working with a multi-tenant set-up, must be set to the CDB name. |  | String
 | *camel.component.debezium-sqlserver.database-history* | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
 | *camel.component.debezium-sqlserver.database-history-file-filename* | The path to the file that will be used to record the database history |  | String
 | *camel.component.debezium-sqlserver.database-history-kafka-bootstrap-servers* | A list of host/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process. |  | String
 | *camel.component.debezium-sqlserver.database-history-kafka-recovery-attempts* | The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms). | 100 | Integer
-| *camel.component.debezium-sqlserver.database-history-kafka-recovery-poll-interval-ms* | The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type. | 100ms | String
+| *camel.component.debezium-sqlserver.database-history-kafka-recovery-poll-interval-ms* | The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type. | 100 | Integer
 | *camel.component.debezium-sqlserver.database-history-kafka-topic* | The name of the topic for the database schema history |  | String
 | *camel.component.debezium-sqlserver.database-hostname* | Resolvable hostname or IP address of the SQL Server database server. |  | String
 | *camel.component.debezium-sqlserver.database-instance* | The SQL Server instance name |  | String
@@ -51,7 +51,7 @@ The component supports 65 options, which are listed below.
 | *camel.component.debezium-sqlserver.decimal-handling-mode* | Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but wil [...]
 | *camel.component.debezium-sqlserver.enabled* | Whether to enable auto configuration of the debezium-sqlserver component. This is enabled by default. |  | Boolean
 | *camel.component.debezium-sqlserver.event-processing-failure-handling-mode* | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
-| *camel.component.debezium-sqlserver.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0ms | String
+| *camel.component.debezium-sqlserver.heartbeat-interval-ms* | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type. | 0 | Integer
 | *camel.component.debezium-sqlserver.heartbeat-topics-prefix* | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
 | *camel.component.debezium-sqlserver.include-schema-changes* | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | Boolean
 | *camel.component.debezium-sqlserver.internal-key-converter* | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
@@ -60,23 +60,23 @@ The component supports 65 options, which are listed below.
 | *camel.component.debezium-sqlserver.max-queue-size* | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | Integer
 | *camel.component.debezium-sqlserver.message-key-columns* | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the  [...]
 | *camel.component.debezium-sqlserver.offset-commit-policy* | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
-| *camel.component.debezium-sqlserver.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5s | String
-| *camel.component.debezium-sqlserver.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60s | String
+| *camel.component.debezium-sqlserver.offset-commit-timeout-ms* | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type. | 5000 | Long
+| *camel.component.debezium-sqlserver.offset-flush-interval-ms* | Interval at which to try committing offsets. The default is 1 minute. The option is a long type. | 60000 | Long
 | *camel.component.debezium-sqlserver.offset-storage* | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
 | *camel.component.debezium-sqlserver.offset-storage-file-name* | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
 | *camel.component.debezium-sqlserver.offset-storage-partitions* | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | Integer
 | *camel.component.debezium-sqlserver.offset-storage-replication-factor* | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | Integer
 | *camel.component.debezium-sqlserver.offset-storage-topic* | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
-| *camel.component.debezium-sqlserver.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500ms | String
+| *camel.component.debezium-sqlserver.poll-interval-ms* | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. The option is a long type. | 500 | Long
 | *camel.component.debezium-sqlserver.provide-transaction-metadata* | Enables transaction metadata extraction together with event counting | false | Boolean
 | *camel.component.debezium-sqlserver.query-fetch-size* | The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size. | 0 | Integer
-| *camel.component.debezium-sqlserver.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10s | String
+| *camel.component.debezium-sqlserver.retriable-restart-connector-wait-ms* | Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type. | 10000 | Long
 | *camel.component.debezium-sqlserver.sanitize-field-names* | Whether field names will be sanitized to Avro naming conventions | false | Boolean
 | *camel.component.debezium-sqlserver.skipped-operations* | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. |  | String
-| *camel.component.debezium-sqlserver.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0ms | String
+| *camel.component.debezium-sqlserver.snapshot-delay-ms* | The number of milliseconds to delay before a snapshot will begin. The option is a long type. | 0 | Long
 | *camel.component.debezium-sqlserver.snapshot-fetch-size* | The maximum number of records that should be loaded into memory while performing a snapshot |  | Integer
 | *camel.component.debezium-sqlserver.snapshot-isolation-mode* | Controls which transaction isolation level is used and how long the connector locks the monitored tables. The default is 'repeatable_read', which means that repeatable read isolation level is used. In addition, exclusive locks are taken only during schema snapshot. Using a value of 'exclusive' ensures that the connector holds the exclusive lock (and thus prevents any reads and updates) for all monitored tables during the en [...]
-| *camel.component.debezium-sqlserver.snapshot-lock-timeout-ms* | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type. | 10s | String
+| *camel.component.debezium-sqlserver.snapshot-lock-timeout-ms* | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type. | 10000 | Long
 | *camel.component.debezium-sqlserver.snapshot-mode* | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name. | initial | String
 | *camel.component.debezium-sqlserver.snapshot-select-statement-overrides* | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME [...]
 | *camel.component.debezium-sqlserver.source-struct-version* | A version of the format of the publicly visible source part in the message | v2 | String
diff --git a/components-starter/camel-debezium-sqlserver-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumSqlserverComponentConfiguration.java b/components-starter/camel-debezium-sqlserver-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumSqlserverComponentConfiguration.java
index 1c06ea5..1517d31 100644
--- a/components-starter/camel-debezium-sqlserver-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumSqlserverComponentConfiguration.java
+++ b/components-starter/camel-debezium-sqlserver-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumSqlserverComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.debezium.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -60,7 +61,7 @@ public class DebeziumSqlserverComponentConfiguration
      * Allow pre-configured Configurations to be set. The option is a
      * org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration type.
      */
-    private String configuration;
+    private SqlServerConnectorEmbeddedDebeziumConfiguration configuration;
     /**
      * The Converter class that should be used to serialize and deserialize key
      * data for offsets. The default is JSON converter.
@@ -85,12 +86,12 @@ public class DebeziumSqlserverComponentConfiguration
      * process and restoring the offset data to be committed in a future
      * attempt. The default is 5 seconds. The option is a long type.
      */
-    private String offsetCommitTimeoutMs = "5s";
+    private Long offsetCommitTimeoutMs = 5000L;
     /**
      * Interval at which to try committing offsets. The default is 1 minute. The
      * option is a long type.
      */
-    private String offsetFlushIntervalMs = "60s";
+    private Long offsetFlushIntervalMs = 60000L;
     /**
      * The name of the Java class that is responsible for persistence of
      * connector offsets.
@@ -185,7 +186,7 @@ public class DebeziumSqlserverComponentConfiguration
      * The number of milliseconds to wait while polling for persisted data
      * during recovery. The option is a int type.
      */
-    private String databaseHistoryKafkaRecoveryPollIntervalMs = "100ms";
+    private Integer databaseHistoryKafkaRecoveryPollIntervalMs = 100;
     /**
      * The name of the topic for the database schema history
      */
@@ -256,7 +257,7 @@ public class DebeziumSqlserverComponentConfiguration
      * disable heartbeat messages. Disabled by default. The option is a int
      * type.
      */
-    private String heartbeatIntervalMs = "0ms";
+    private Integer heartbeatIntervalMs = 0;
     /**
      * The prefix that is used to name heartbeat topics.Defaults to
      * __debezium-heartbeat.
@@ -297,7 +298,7 @@ public class DebeziumSqlserverComponentConfiguration
      * Frequency in milliseconds to wait for new change events to appear after
      * receiving no events. Defaults to 500ms. The option is a long type.
      */
-    private String pollIntervalMs = "500ms";
+    private Long pollIntervalMs = 500L;
     /**
      * Enables transaction metadata extraction together with event counting
      */
@@ -311,7 +312,7 @@ public class DebeziumSqlserverComponentConfiguration
      * Time to wait before restarting connector after retriable exception
      * occurs. Defaults to 10000ms. The option is a long type.
      */
-    private String retriableRestartConnectorWaitMs = "10s";
+    private Long retriableRestartConnectorWaitMs = 10000L;
     /**
      * Whether field names will be sanitized to Avro naming conventions
      */
@@ -326,7 +327,7 @@ public class DebeziumSqlserverComponentConfiguration
      * The number of milliseconds to delay before a snapshot will begin. The
      * option is a long type.
      */
-    private String snapshotDelayMs = "0ms";
+    private Long snapshotDelayMs = 0L;
     /**
      * The maximum number of records that should be loaded into memory while
      * performing a snapshot
@@ -355,7 +356,7 @@ public class DebeziumSqlserverComponentConfiguration
      * a snapshot. If locks cannot be acquired in this time frame, the snapshot
      * will be aborted. Defaults to 10 seconds. The option is a long type.
      */
-    private String snapshotLockTimeoutMs = "10s";
+    private Long snapshotLockTimeoutMs = 10000L;
     /**
      * The criteria for running a snapshot upon startup of the connector.
      * Options include: 'initial' (the default) to specify the connector should
@@ -452,11 +453,12 @@ public class DebeziumSqlserverComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public String getConfiguration() {
+    public SqlServerConnectorEmbeddedDebeziumConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(
+            SqlServerConnectorEmbeddedDebeziumConfiguration configuration) {
         this.configuration = configuration;
     }
 
@@ -484,19 +486,19 @@ public class DebeziumSqlserverComponentConfiguration
         this.offsetCommitPolicy = offsetCommitPolicy;
     }
 
-    public String getOffsetCommitTimeoutMs() {
+    public Long getOffsetCommitTimeoutMs() {
         return offsetCommitTimeoutMs;
     }
 
-    public void setOffsetCommitTimeoutMs(String offsetCommitTimeoutMs) {
+    public void setOffsetCommitTimeoutMs(Long offsetCommitTimeoutMs) {
         this.offsetCommitTimeoutMs = offsetCommitTimeoutMs;
     }
 
-    public String getOffsetFlushIntervalMs() {
+    public Long getOffsetFlushIntervalMs() {
         return offsetFlushIntervalMs;
     }
 
-    public void setOffsetFlushIntervalMs(String offsetFlushIntervalMs) {
+    public void setOffsetFlushIntervalMs(Long offsetFlushIntervalMs) {
         this.offsetFlushIntervalMs = offsetFlushIntervalMs;
     }
 
@@ -643,12 +645,12 @@ public class DebeziumSqlserverComponentConfiguration
         this.databaseHistoryKafkaRecoveryAttempts = databaseHistoryKafkaRecoveryAttempts;
     }
 
-    public String getDatabaseHistoryKafkaRecoveryPollIntervalMs() {
+    public Integer getDatabaseHistoryKafkaRecoveryPollIntervalMs() {
         return databaseHistoryKafkaRecoveryPollIntervalMs;
     }
 
     public void setDatabaseHistoryKafkaRecoveryPollIntervalMs(
-            String databaseHistoryKafkaRecoveryPollIntervalMs) {
+            Integer databaseHistoryKafkaRecoveryPollIntervalMs) {
         this.databaseHistoryKafkaRecoveryPollIntervalMs = databaseHistoryKafkaRecoveryPollIntervalMs;
     }
 
@@ -742,11 +744,11 @@ public class DebeziumSqlserverComponentConfiguration
         this.eventProcessingFailureHandlingMode = eventProcessingFailureHandlingMode;
     }
 
-    public String getHeartbeatIntervalMs() {
+    public Integer getHeartbeatIntervalMs() {
         return heartbeatIntervalMs;
     }
 
-    public void setHeartbeatIntervalMs(String heartbeatIntervalMs) {
+    public void setHeartbeatIntervalMs(Integer heartbeatIntervalMs) {
         this.heartbeatIntervalMs = heartbeatIntervalMs;
     }
 
@@ -790,11 +792,11 @@ public class DebeziumSqlserverComponentConfiguration
         this.messageKeyColumns = messageKeyColumns;
     }
 
-    public String getPollIntervalMs() {
+    public Long getPollIntervalMs() {
         return pollIntervalMs;
     }
 
-    public void setPollIntervalMs(String pollIntervalMs) {
+    public void setPollIntervalMs(Long pollIntervalMs) {
         this.pollIntervalMs = pollIntervalMs;
     }
 
@@ -814,12 +816,12 @@ public class DebeziumSqlserverComponentConfiguration
         this.queryFetchSize = queryFetchSize;
     }
 
-    public String getRetriableRestartConnectorWaitMs() {
+    public Long getRetriableRestartConnectorWaitMs() {
         return retriableRestartConnectorWaitMs;
     }
 
     public void setRetriableRestartConnectorWaitMs(
-            String retriableRestartConnectorWaitMs) {
+            Long retriableRestartConnectorWaitMs) {
         this.retriableRestartConnectorWaitMs = retriableRestartConnectorWaitMs;
     }
 
@@ -839,11 +841,11 @@ public class DebeziumSqlserverComponentConfiguration
         this.skippedOperations = skippedOperations;
     }
 
-    public String getSnapshotDelayMs() {
+    public Long getSnapshotDelayMs() {
         return snapshotDelayMs;
     }
 
-    public void setSnapshotDelayMs(String snapshotDelayMs) {
+    public void setSnapshotDelayMs(Long snapshotDelayMs) {
         this.snapshotDelayMs = snapshotDelayMs;
     }
 
@@ -863,11 +865,11 @@ public class DebeziumSqlserverComponentConfiguration
         this.snapshotIsolationMode = snapshotIsolationMode;
     }
 
-    public String getSnapshotLockTimeoutMs() {
+    public Long getSnapshotLockTimeoutMs() {
         return snapshotLockTimeoutMs;
     }
 
-    public void setSnapshotLockTimeoutMs(String snapshotLockTimeoutMs) {
+    public void setSnapshotLockTimeoutMs(Long snapshotLockTimeoutMs) {
         this.snapshotLockTimeoutMs = snapshotLockTimeoutMs;
     }
 
diff --git a/components-starter/camel-directvm-starter/src/main/docs/directvm-starter.adoc b/components-starter/camel-directvm-starter/src/main/docs/directvm-starter.adoc
index 82e4f5b..8b8c422 100644
--- a/components-starter/camel-directvm-starter/src/main/docs/directvm-starter.adoc
+++ b/components-starter/camel-directvm-starter/src/main/docs/directvm-starter.adoc
@@ -27,7 +27,7 @@ The component supports 8 options, which are listed below.
 | *camel.component.direct-vm.block* | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | Boolean
 | *camel.component.direct-vm.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.direct-vm.enabled* | Whether to enable auto configuration of the direct-vm component. This is enabled by default. |  | Boolean
-| *camel.component.direct-vm.header-filter-strategy* | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
+| *camel.component.direct-vm.header-filter-strategy* | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
 | *camel.component.direct-vm.lazy-start-producer* | 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  [...]
 | *camel.component.direct-vm.propagate-properties* | Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true. | true | Boolean
 | *camel.component.direct-vm.timeout* | The timeout value to use if block is enabled. | 30000 | Long
diff --git a/components-starter/camel-directvm-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java b/components-starter/camel-directvm-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
index 33795de..de270c4 100644
--- a/components-starter/camel-directvm-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
+++ b/components-starter/camel-directvm-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.directvm.springboot;
 
 import javax.annotation.Generated;
+import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -78,7 +79,7 @@ public class DirectVmComponentConfiguration
      * endpoints (on both directions: request and response). Default value:
      * none. The option is a org.apache.camel.spi.HeaderFilterStrategy type.
      */
-    private String headerFilterStrategy;
+    private HeaderFilterStrategy headerFilterStrategy;
     /**
      * Whether to propagate or not properties from the producer side to the
      * consumer side, and vice versa. Default value: true.
@@ -128,11 +129,12 @@ public class DirectVmComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getHeaderFilterStrategy() {
+    public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }
 
-    public void setHeaderFilterStrategy(String headerFilterStrategy) {
+    public void setHeaderFilterStrategy(
+            HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
 
diff --git a/components-starter/camel-docker-starter/src/main/docs/docker-starter.adoc b/components-starter/camel-docker-starter/src/main/docs/docker-starter.adoc
index 95e375e..1ab0f00 100644
--- a/components-starter/camel-docker-starter/src/main/docs/docker-starter.adoc
+++ b/components-starter/camel-docker-starter/src/main/docs/docker-starter.adoc
@@ -27,7 +27,7 @@ The component supports 22 options, which are listed below.
 | *camel.component.docker.bridge-error-handler* | 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. | false | Boolean
 | *camel.component.docker.cert-path* | Location containing the SSL certificate chain |  | String
 | *camel.component.docker.cmd-exec-factory* | The fully qualified class name of the DockerCmdExecFactory implementation to use | com.github.dockerjava.netty.NettyDockerCmdExecFactory | String
-| *camel.component.docker.configuration* | To use the shared docker configuration. The option is a org.apache.camel.component.docker.DockerConfiguration type. |  | String
+| *camel.component.docker.configuration* | To use the shared docker configuration. The option is a org.apache.camel.component.docker.DockerConfiguration type. |  | DockerConfiguration
 | *camel.component.docker.email* | Email address associated with the user |  | String
 | *camel.component.docker.enabled* | Whether to enable auto configuration of the docker component. This is enabled by default. |  | Boolean
 | *camel.component.docker.follow-redirect-filter* | Whether to follow redirect filter | false | Boolean
diff --git a/components-starter/camel-docker-starter/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java b/components-starter/camel-docker-starter/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
index 254b804..fd15bb4 100644
--- a/components-starter/camel-docker-starter/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
+++ b/components-starter/camel-docker-starter/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.docker.springboot;
 
 import java.util.Map;
 import javax.annotation.Generated;
+import org.apache.camel.component.docker.DockerConfiguration;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
@@ -42,7 +43,7 @@ public class DockerComponentConfiguration
      * To use the shared docker configuration. The option is a
      * org.apache.camel.component.docker.DockerConfiguration type.
      */
-    private String configuration;
+    private DockerConfiguration configuration;
     /**
      * Email address associated with the user
      */
@@ -139,11 +140,11 @@ public class DockerComponentConfiguration
      */
     private String username;
 
-    public String getConfiguration() {
+    public DockerConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(DockerConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-ehcache-starter/src/main/docs/ehcache-starter.adoc b/components-starter/camel-ehcache-starter/src/main/docs/ehcache-starter.adoc
index 3bc9fea..2d694b2 100644
--- a/components-starter/camel-ehcache-starter/src/main/docs/ehcache-starter.adoc
+++ b/components-starter/camel-ehcache-starter/src/main/docs/ehcache-starter.adoc
@@ -26,9 +26,9 @@ The component supports 21 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.ehcache.action* | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
 | *camel.component.ehcache.bridge-error-handler* | 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. | false | Boolean
-| *camel.component.ehcache.cache-manager* | The cache manager. The option is a org.ehcache.CacheManager type. |  | String
-| *camel.component.ehcache.cache-manager-configuration* | The cache manager configuration. The option is a org.ehcache.config.Configuration type. |  | String
-| *camel.component.ehcache.configuration* | The default cache configuration to be used to create caches. The option is a org.ehcache.config.CacheConfiguration type. |  | String
+| *camel.component.ehcache.cache-manager* | The cache manager. The option is a org.ehcache.CacheManager type. |  | CacheManager
+| *camel.component.ehcache.cache-manager-configuration* | The cache manager configuration. The option is a org.ehcache.config.Configuration type. |  | Configuration
+| *camel.component.ehcache.configuration* | The default cache configuration to be used to create caches. The option is a org.ehcache.config.CacheConfiguration type. |  | CacheConfiguration
 | *camel.component.ehcache.configuration-uri* | URI pointing to the Ehcache XML configuration file's location |  | String
 | *camel.component.ehcache.configurations* | A map of cache configuration to be used to create caches. |  | Map
 | *camel.component.ehcache.create-cache-if-not-exist* | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | Boolean
@@ -40,7 +40,7 @@ The component supports 21 options, which are listed below.
 | *camel.component.ehcache.event-firing* | Set the delivery mode (synchronous, asynchronous) |  | EventFiring
 | *camel.component.ehcache.event-ordering* | Set the delivery mode (ordered, unordered) |  | EventOrdering
 | *camel.component.ehcache.event-types* | Set the type of events to listen for (EVICTED,EXPIRED,REMOVED,CREATED,UPDATED). You can specify multiple entries separated by comma. |  | String
-| *camel.component.ehcache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | String
+| *camel.component.ehcache.key* | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type. |  | Object
 | *camel.component.ehcache.key-type* | The cache key type, default java.lang.Object |  | String
 | *camel.component.ehcache.lazy-start-producer* | 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 th [...]
 | *camel.component.ehcache.value-type* | The cache value type, default java.lang.Object |  | String
diff --git a/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java b/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
index 32906b3..8b2c696 100644
--- a/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
+++ b/components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConfiguration.java
@@ -20,7 +20,9 @@ import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.component.ehcache.EhcacheComponent;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.ehcache.CacheManager;
 import org.ehcache.config.CacheConfiguration;
+import org.ehcache.config.Configuration;
 import org.ehcache.event.EventFiring;
 import org.ehcache.event.EventOrdering;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -45,12 +47,12 @@ public class EhcacheComponentConfiguration
     /**
      * The cache manager. The option is a org.ehcache.CacheManager type.
      */
-    private String cacheManager;
+    private CacheManager cacheManager;
     /**
      * The cache manager configuration. The option is a
      * org.ehcache.config.Configuration type.
      */
-    private String cacheManagerConfiguration;
+    private Configuration cacheManagerConfiguration;
     /**
      * URI pointing to the Ehcache XML configuration file's location
      */
@@ -93,7 +95,7 @@ public class EhcacheComponentConfiguration
      * header, then the key from the header takes precedence. The option is a
      * java.lang.Object type.
      */
-    private String key;
+    private Object key;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -115,7 +117,7 @@ public class EhcacheComponentConfiguration
      * The default cache configuration to be used to create caches. The option
      * is a org.ehcache.config.CacheConfiguration type.
      */
-    private String configuration;
+    private CacheConfiguration configuration;
     /**
      * A map of cache configuration to be used to create caches.
      */
@@ -129,19 +131,20 @@ public class EhcacheComponentConfiguration
      */
     private String valueType;
 
-    public String getCacheManager() {
+    public CacheManager getCacheManager() {
         return cacheManager;
     }
 
-    public void setCacheManager(String cacheManager) {
+    public void setCacheManager(CacheManager cacheManager) {
         this.cacheManager = cacheManager;
     }
 
-    public String getCacheManagerConfiguration() {
+    public Configuration getCacheManagerConfiguration() {
         return cacheManagerConfiguration;
     }
 
-    public void setCacheManagerConfiguration(String cacheManagerConfiguration) {
+    public void setCacheManagerConfiguration(
+            Configuration cacheManagerConfiguration) {
         this.cacheManagerConfiguration = cacheManagerConfiguration;
     }
 
@@ -201,11 +204,11 @@ public class EhcacheComponentConfiguration
         this.action = action;
     }
 
-    public String getKey() {
+    public Object getKey() {
         return key;
     }
 
-    public void setKey(String key) {
+    public void setKey(Object key) {
         this.key = key;
     }
 
@@ -228,11 +231,11 @@ public class EhcacheComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getConfiguration() {
+    public CacheConfiguration getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(String configuration) {
+    public void setConfiguration(CacheConfiguration configuration) {
         this.configuration = configuration;
     }
 
diff --git a/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest-starter.adoc b/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest-starter.adoc
index 2f2b8ec..463926b 100644
--- a/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest-starter.adoc
+++ b/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest-starter.adoc
@@ -24,7 +24,7 @@ The component supports 14 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.elasticsearch-rest.client* | To use an existing configured Elasticsearch client, instead of creating a client per endpoint. This allow to customize the client with specific settings. The option is a org.elasticsearch.client.RestClient type. |  | String
+| *camel.component.elasticsearch-rest.client* | To use an existing configured Elasticsearch client, instead of creating a client per endpoint. This allow to customize the client with specific settings. The option is a org.elasticsearch.client.RestClient type. |  | RestClient
 | *camel.component.elasticsearch-rest.connection-timeout* | The time in ms to wait before connection will timeout. | 30000 | Integer
 | *camel.component.elasticsearch-rest.enable-s-s-l* | Enable SSL | false | Boolean
 | *camel.component.elasticsearch-rest.enable-sniffer* | Enable automatically discover nodes from a running Elasticsearch cluster | false | Boolean
diff --git a/components-starter/camel-elasticsearch-rest-starter/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java b/components-starter/camel-elasticsearch-rest-starter/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
index 2e59e0e..22617c6 100644
--- a/components-starter/camel-elasticsearch-rest-starter/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
+++ b/components-starter/camel-elasticsearch-rest-starter/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.elasticsearch.springboot;
 
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.elasticsearch.client.RestClient;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -59,7 +60,7 @@ public class ElasticsearchComponentConfiguration
      * client per endpoint. This allow to customize the client with specific
      * settings. The option is a org.elasticsearch.client.RestClient type.
      */
-    private String client;
+    private RestClient client;
     /**
      * The time in ms to wait before connection will timeout.
      */
@@ -125,11 +126,11 @@ public class ElasticsearchComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public String getClient() {
... 17158 lines suppressed ...