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/02/29 19:54:17 UTC

[camel-spring-boot] 02/03: CAMEL-14568: 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 6eeb98502f55bb6b9b49799d56341564bc71879c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 29 15:19:14 2020 +0100

    CAMEL-14568: Regen
---
 .../ActiveMQComponentAutoConfiguration.java        |   20 -
 .../springboot/AhcComponentAutoConfiguration.java  |   20 -
 .../springboot/WsComponentAutoConfiguration.java   |   20 -
 .../springboot/AMQPComponentAutoConfiguration.java |   20 -
 .../springboot/ApnsComponentAutoConfiguration.java |   20 -
 .../src/main/docs/as2-starter.adoc                 |   32 +-
 .../springboot/AS2ComponentAutoConfiguration.java  |   20 -
 .../as2/springboot/AS2ComponentConfiguration.java  |  377 +-----
 .../AsteriskComponentAutoConfiguration.java        |   20 -
 .../AtmosComponentAutoConfiguration.java           |   20 -
 .../WebsocketComponentAutoConfiguration.java       |   20 -
 .../springboot/AtomComponentAutoConfiguration.java |   20 -
 .../src/main/docs/atomix-starter.adoc              |   29 +-
 .../AtomixMapComponentAutoConfiguration.java       |   20 -
 .../AtomixMapComponentConfiguration.java           |   63 +-
 .../AtomixMessagingComponentAutoConfiguration.java |   20 -
 .../AtomixMessagingComponentConfiguration.java     |   74 +-
 .../AtomixMultiMapComponentAutoConfiguration.java  |   20 -
 .../AtomixMultiMapComponentConfiguration.java      |   63 +-
 .../AtomixQueueComponentAutoConfiguration.java     |   20 -
 .../AtomixQueueComponentConfiguration.java         |   39 +-
 .../AtomixSetComponentAutoConfiguration.java       |   20 -
 .../AtomixSetComponentConfiguration.java           |   50 +-
 .../AtomixValueComponentAutoConfiguration.java     |   20 -
 .../AtomixValueComponentConfiguration.java         |   51 +-
 .../src/main/docs/avro-starter.adoc                |   13 +-
 .../springboot/AvroComponentAutoConfiguration.java |   20 -
 .../springboot/AvroComponentConfiguration.java     |  139 +-
 .../src/main/docs/aws-cw-starter.adoc              |   15 +-
 .../springboot/CwComponentAutoConfiguration.java   |   20 -
 .../cw/springboot/CwComponentConfiguration.java    |  162 +--
 .../src/main/docs/aws-ddb-starter.adoc             |   29 +-
 .../springboot/DdbComponentAutoConfiguration.java  |   20 -
 .../ddb/springboot/DdbComponentConfiguration.java  |  189 +--
 .../DdbStreamComponentAutoConfiguration.java       |   20 -
 .../DdbStreamComponentConfiguration.java           |  155 +--
 .../src/main/docs/aws-ec2-starter.adoc             |   11 +-
 .../springboot/EC2ComponentAutoConfiguration.java  |   20 -
 .../ec2/springboot/EC2ComponentConfiguration.java  |  117 +-
 .../src/main/docs/aws-ecs-starter.adoc             |   11 +-
 .../springboot/ECSComponentAutoConfiguration.java  |   20 -
 .../ecs/springboot/ECSComponentConfiguration.java  |  114 +-
 .../src/main/docs/aws-eks-starter.adoc             |   11 +-
 .../springboot/EKSComponentAutoConfiguration.java  |   20 -
 .../eks/springboot/EKSComponentConfiguration.java  |  114 +-
 .../src/main/docs/aws-iam-starter.adoc             |   11 +-
 .../springboot/IAMComponentAutoConfiguration.java  |   20 -
 .../iam/springboot/IAMComponentConfiguration.java  |  114 +-
 .../src/main/docs/aws-kinesis-starter.adoc         |   25 +-
 .../KinesisFirehoseComponentAutoConfiguration.java |   20 -
 .../KinesisFirehoseComponentConfiguration.java     |  118 +-
 .../KinesisComponentAutoConfiguration.java         |   20 -
 .../springboot/KinesisComponentConfiguration.java  |  180 +--
 .../src/main/docs/aws-kms-starter.adoc             |   11 +-
 .../springboot/KMSComponentAutoConfiguration.java  |   20 -
 .../kms/springboot/KMSComponentConfiguration.java  |  114 +-
 .../src/main/docs/aws-lambda-starter.adoc          |   11 +-
 .../LambdaComponentAutoConfiguration.java          |   20 -
 .../springboot/LambdaComponentConfiguration.java   |  114 +-
 .../src/main/docs/aws-mq-starter.adoc              |   11 +-
 .../springboot/MQComponentAutoConfiguration.java   |   20 -
 .../mq/springboot/MQComponentConfiguration.java    |  115 +-
 .../src/main/docs/aws-msk-starter.adoc             |   11 +-
 .../springboot/MSKComponentAutoConfiguration.java  |   20 -
 .../msk/springboot/MSKComponentConfiguration.java  |  114 +-
 .../src/main/docs/aws-s3-starter.adoc              |   37 +-
 .../springboot/S3ComponentAutoConfiguration.java   |   20 -
 .../s3/springboot/S3ComponentConfiguration.java    |  455 +------
 .../springboot/SdbComponentAutoConfiguration.java  |   20 -
 .../src/main/docs/aws-ses-starter.adoc             |   15 +-
 .../springboot/SesComponentAutoConfiguration.java  |   20 -
 .../ses/springboot/SesComponentConfiguration.java  |  166 +--
 .../src/main/docs/aws-sns-starter.adoc             |   21 +-
 .../springboot/SnsComponentAutoConfiguration.java  |   20 -
 .../sns/springboot/SnsComponentConfiguration.java  |  233 +---
 .../src/main/docs/aws-sqs-starter.adoc             |   38 +-
 .../springboot/SqsComponentAutoConfiguration.java  |   20 -
 .../sqs/springboot/SqsComponentConfiguration.java  |  479 +------
 .../src/main/docs/aws-swf-starter.adoc             |   30 +-
 .../springboot/SWFComponentAutoConfiguration.java  |   20 -
 .../swf/springboot/SWFComponentConfiguration.java  |  358 +----
 .../src/main/docs/aws-translate-starter.adoc       |   14 +-
 .../TranslateComponentAutoConfiguration.java       |   20 -
 .../TranslateComponentConfiguration.java           |  150 +--
 .../src/main/docs/aws2-cw-starter.adoc             |   15 +-
 .../springboot/Cw2ComponentAutoConfiguration.java  |   20 -
 .../cw/springboot/Cw2ComponentConfiguration.java   |  163 +--
 .../src/main/docs/aws2-ddb-starter.adoc            |   29 +-
 .../springboot/Ddb2ComponentAutoConfiguration.java |   20 -
 .../ddb/springboot/Ddb2ComponentConfiguration.java |  189 +--
 .../Ddb2StreamComponentAutoConfiguration.java      |   20 -
 .../Ddb2StreamComponentConfiguration.java          |  155 +--
 .../src/main/docs/aws2-ec2-starter.adoc            |   11 +-
 .../AWS2EC2ComponentAutoConfiguration.java         |   20 -
 .../springboot/AWS2EC2ComponentConfiguration.java  |  117 +-
 .../src/main/docs/aws2-ecs-starter.adoc            |   11 +-
 .../springboot/ECS2ComponentAutoConfiguration.java |   20 -
 .../ecs/springboot/ECS2ComponentConfiguration.java |  114 +-
 .../src/main/docs/aws2-eks-starter.adoc            |   11 +-
 .../springboot/EKS2ComponentAutoConfiguration.java |   20 -
 .../eks/springboot/EKS2ComponentConfiguration.java |  114 +-
 .../src/main/docs/aws2-iam-starter.adoc            |   11 +-
 .../springboot/IAM2ComponentAutoConfiguration.java |   20 -
 .../iam/springboot/IAM2ComponentConfiguration.java |  114 +-
 .../src/main/docs/aws2-kinesis-starter.adoc        |   25 +-
 ...KinesisFirehose2ComponentAutoConfiguration.java |   20 -
 .../KinesisFirehose2ComponentConfiguration.java    |  118 +-
 .../Kinesis2ComponentAutoConfiguration.java        |   20 -
 .../springboot/Kinesis2ComponentConfiguration.java |  180 +--
 .../src/main/docs/aws2-kms-starter.adoc            |   11 +-
 .../springboot/KMS2ComponentAutoConfiguration.java |   20 -
 .../kms/springboot/KMS2ComponentConfiguration.java |  114 +-
 .../src/main/docs/aws2-lambda-starter.adoc         |   11 +-
 .../Lambda2ComponentAutoConfiguration.java         |   20 -
 .../springboot/Lambda2ComponentConfiguration.java  |  115 +-
 .../src/main/docs/aws2-mq-starter.adoc             |   11 +-
 .../springboot/MQ2ComponentAutoConfiguration.java  |   20 -
 .../mq/springboot/MQ2ComponentConfiguration.java   |  115 +-
 .../src/main/docs/aws2-msk-starter.adoc            |   11 +-
 .../springboot/MSK2ComponentAutoConfiguration.java |   20 -
 .../msk/springboot/MSK2ComponentConfiguration.java |  114 +-
 .../src/main/docs/aws2-ses-starter.adoc            |   15 +-
 .../springboot/Ses2ComponentAutoConfiguration.java |   20 -
 .../ses/springboot/Ses2ComponentConfiguration.java |  166 +--
 .../src/main/docs/aws2-sns-starter.adoc            |   20 +-
 .../springboot/Sns2ComponentAutoConfiguration.java |   20 -
 .../sns/springboot/Sns2ComponentConfiguration.java |  220 +---
 .../src/main/docs/aws2-sqs-starter.adoc            |   38 +-
 .../springboot/Sqs2ComponentAutoConfiguration.java |   20 -
 .../sqs/springboot/Sqs2ComponentConfiguration.java |  478 +------
 .../src/main/docs/aws2-translate-starter.adoc      |   14 +-
 .../Translate2ComponentAutoConfiguration.java      |   20 -
 .../Translate2ComponentConfiguration.java          |  150 +--
 .../src/main/docs/azure-starter.adoc               |   30 +-
 .../BlobServiceComponentAutoConfiguration.java     |   20 -
 .../BlobServiceComponentConfiguration.java         |  225 +---
 .../QueueServiceComponentAutoConfiguration.java    |   20 -
 .../QueueServiceComponentConfiguration.java        |  106 +-
 .../springboot/BeanComponentAutoConfiguration.java |   20 -
 .../ClassComponentAutoConfiguration.java           |   20 -
 .../BeanValidatorComponentAutoConfiguration.java   |   20 -
 .../BeanstalkComponentAutoConfiguration.java       |   20 -
 .../BonitaComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/box-starter.adoc                 |   20 +-
 .../springboot/BoxComponentAutoConfiguration.java  |   20 -
 .../box/springboot/BoxComponentConfiguration.java  |  227 +---
 .../src/main/docs/braintree-starter.adoc           |   16 +-
 .../BraintreeComponentAutoConfiguration.java       |   20 -
 .../BraintreeComponentConfiguration.java           |  177 +--
 .../BrowseComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/caffeine-starter.adoc            |   34 +-
 .../CaffeineCacheComponentAutoConfiguration.java   |   20 -
 .../CaffeineCacheComponentConfiguration.java       |  203 +--
 ...affeineLoadCacheComponentAutoConfiguration.java |   20 -
 .../CaffeineLoadCacheComponentConfiguration.java   |  203 +--
 .../CassandraComponentAutoConfiguration.java       |   20 -
 .../ChatScriptComponentAutoConfiguration.java      |   20 -
 .../ChunkComponentAutoConfiguration.java           |   20 -
 .../springboot/CMComponentAutoConfiguration.java   |   20 -
 .../springboot/CMISComponentAutoConfiguration.java |   20 -
 .../springboot/CoAPComponentAutoConfiguration.java |   20 -
 .../CometdComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/consul-starter.adoc              |   25 +-
 .../ConsulComponentAutoConfiguration.java          |   20 -
 .../springboot/ConsulComponentConfiguration.java   |  288 +----
 .../ControlBusComponentAutoConfiguration.java      |   20 -
 .../src/main/docs/corda-starter.adoc               |   14 +-
 .../CordaComponentAutoConfiguration.java           |   20 -
 .../springboot/CordaComponentConfiguration.java    |  170 +--
 .../CouchbaseComponentAutoConfiguration.java       |   20 -
 .../CouchDbComponentAutoConfiguration.java         |   20 -
 .../springboot/CronComponentAutoConfiguration.java |   20 -
 .../CryptoCmsComponentAutoConfiguration.java       |   20 -
 .../src/main/docs/crypto-starter.adoc              |   23 +-
 ...DigitalSignatureComponentAutoConfiguration.java |   20 -
 .../DigitalSignatureComponentConfiguration.java    |  291 +----
 .../CxfRsComponentAutoConfiguration.java           |   20 -
 .../springboot/CxfComponentAutoConfiguration.java  |   20 -
 .../DataFormatComponentAutoConfiguration.java      |   20 -
 .../DataSetComponentAutoConfiguration.java         |   20 -
 .../DataSetTestComponentAutoConfiguration.java     |   20 -
 .../src/main/docs/debezium-mongodb-starter.adoc    |   31 +-
 .../DebeziumMongodbComponentAutoConfiguration.java |   20 -
 .../DebeziumMongodbComponentConfiguration.java     |  389 +-----
 .../src/main/docs/debezium-mysql-starter.adoc      |   61 +-
 .../DebeziumMySqlComponentAutoConfiguration.java   |   20 -
 .../DebeziumMySqlComponentConfiguration.java       |  907 +------------
 .../src/main/docs/debezium-postgres-starter.adoc   |   53 +-
 ...DebeziumPostgresComponentAutoConfiguration.java |   20 -
 .../DebeziumPostgresComponentConfiguration.java    |  747 +----------
 .../src/main/docs/debezium-sqlserver-starter.adoc  |   35 +-
 ...ebeziumSqlserverComponentAutoConfiguration.java |   20 -
 .../DebeziumSqlserverComponentConfiguration.java   |  476 +------
 .../DigitalOceanComponentAutoConfiguration.java    |   20 -
 .../DirectComponentAutoConfiguration.java          |   20 -
 .../DirectVmComponentAutoConfiguration.java        |   20 -
 .../DisruptorComponentAutoConfiguration.java       |   20 -
 .../DisruptorVmComponentAutoConfiguration.java     |   20 -
 .../springboot/DnsComponentAutoConfiguration.java  |   20 -
 .../src/main/docs/docker-starter.adoc              |   21 +-
 .../DockerComponentAutoConfiguration.java          |   20 -
 .../springboot/DockerComponentConfiguration.java   |  232 +---
 .../DozerComponentAutoConfiguration.java           |   20 -
 .../DrillComponentAutoConfiguration.java           |   20 -
 .../DropboxComponentAutoConfiguration.java         |   20 -
 .../EhcacheComponentAutoConfiguration.java         |   20 -
 .../ElasticsearchComponentAutoConfiguration.java   |   20 -
 .../ElsqlComponentAutoConfiguration.java           |   20 -
 .../ElytronComponentAutoConfiguration.java         |   20 -
 .../src/main/docs/etcd-starter.adoc                |   35 +-
 .../EtcdKeysComponentAutoConfiguration.java        |   20 -
 .../springboot/EtcdKeysComponentConfiguration.java |  137 +-
 .../EtcdStatsComponentAutoConfiguration.java       |   20 -
 .../EtcdStatsComponentConfiguration.java           |  137 +-
 .../EtcdWatchComponentAutoConfiguration.java       |   20 -
 .../EtcdWatchComponentConfiguration.java           |  137 +-
 .../springboot/ExecComponentAutoConfiguration.java |   20 -
 .../src/main/docs/facebook-starter.adoc            |   30 +-
 .../FacebookComponentAutoConfiguration.java        |   20 -
 .../springboot/FacebookComponentConfiguration.java |  340 +----
 .../src/main/docs/fhir-starter.adoc                |   28 +-
 .../springboot/FhirComponentAutoConfiguration.java |   20 -
 .../springboot/FhirComponentConfiguration.java     |  322 +----
 .../springboot/FileComponentAutoConfiguration.java |   20 -
 .../FileWatchComponentAutoConfiguration.java       |   20 -
 .../FlatpackComponentAutoConfiguration.java        |   20 -
 .../FlinkComponentAutoConfiguration.java           |   20 -
 .../springboot/FopComponentAutoConfiguration.java  |   20 -
 .../FreemarkerComponentAutoConfiguration.java      |   20 -
 .../springboot/FtpComponentAutoConfiguration.java  |   20 -
 .../springboot/FtpsComponentAutoConfiguration.java |   20 -
 .../springboot/SftpComponentAutoConfiguration.java |   20 -
 .../src/main/docs/ganglia-starter.adoc             |   17 +-
 .../GangliaComponentAutoConfiguration.java         |   20 -
 .../springboot/GangliaComponentConfiguration.java  |  188 +--
 .../GeoCoderComponentAutoConfiguration.java        |   20 -
 .../springboot/GitComponentAutoConfiguration.java  |   20 -
 .../GitHubComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/google-bigquery-starter.adoc     |   13 +-
 .../GoogleBigQueryComponentAutoConfiguration.java  |   20 -
 .../GoogleBigQueryComponentConfiguration.java      |   50 +-
 ...oogleBigQuerySQLComponentAutoConfiguration.java |   20 -
 .../GoogleBigQuerySQLComponentConfiguration.java   |   50 +-
 .../src/main/docs/google-calendar-starter.adoc     |   27 +-
 .../GoogleCalendarComponentAutoConfiguration.java  |   20 -
 .../GoogleCalendarComponentConfiguration.java      |  157 +--
 ...leCalendarStreamComponentAutoConfiguration.java |   20 -
 ...GoogleCalendarStreamComponentConfiguration.java |  165 +--
 .../src/main/docs/google-drive-starter.adoc        |   11 +-
 .../GoogleDriveComponentAutoConfiguration.java     |   20 -
 .../GoogleDriveComponentConfiguration.java         |  117 +-
 .../src/main/docs/google-mail-starter.adoc         |   21 +-
 .../GoogleMailComponentAutoConfiguration.java      |   20 -
 .../GoogleMailComponentConfiguration.java          |  102 +-
 ...GoogleMailStreamComponentAutoConfiguration.java |   20 -
 .../GoogleMailStreamComponentConfiguration.java    |  137 +-
 .../GooglePubsubComponentAutoConfiguration.java    |   20 -
 .../src/main/docs/google-sheets-starter.adoc       |   25 +-
 .../GoogleSheetsComponentAutoConfiguration.java    |   20 -
 .../GoogleSheetsComponentConfiguration.java        |  103 +-
 ...ogleSheetsStreamComponentAutoConfiguration.java |   20 -
 .../GoogleSheetsStreamComponentConfiguration.java  |  195 +--
 .../springboot/GoraComponentAutoConfiguration.java |   20 -
 .../GrapeComponentAutoConfiguration.java           |   20 -
 .../GraphqlComponentAutoConfiguration.java         |   20 -
 .../springboot/GrpcComponentAutoConfiguration.java |   20 -
 .../GuavaEventBusComponentAutoConfiguration.java   |   20 -
 ...castAtomicnumberComponentAutoConfiguration.java |   20 -
 ...azelcastInstanceComponentAutoConfiguration.java |   20 -
 .../HazelcastListComponentAutoConfiguration.java   |   20 -
 .../HazelcastMapComponentAutoConfiguration.java    |   20 -
 ...azelcastMultimapComponentAutoConfiguration.java |   20 -
 .../HazelcastQueueComponentAutoConfiguration.java  |   20 -
 ...astReplicatedmapComponentAutoConfiguration.java |   20 -
 ...elcastRingbufferComponentAutoConfiguration.java |   20 -
 .../HazelcastSedaComponentAutoConfiguration.java   |   20 -
 .../HazelcastSetComponentAutoConfiguration.java    |   20 -
 .../HazelcastTopicComponentAutoConfiguration.java  |   20 -
 .../HBaseComponentAutoConfiguration.java           |   20 -
 .../springboot/HdfsComponentAutoConfiguration.java |   20 -
 .../HipchatComponentAutoConfiguration.java         |   20 -
 .../springboot/HttpComponentAutoConfiguration.java |   20 -
 .../src/main/docs/iec60870-starter.adoc            |   15 +-
 .../ClientComponentAutoConfiguration.java          |   20 -
 .../springboot/ClientComponentConfiguration.java   |   64 +-
 .../ServerComponentAutoConfiguration.java          |   20 -
 .../springboot/ServerComponentConfiguration.java   |   72 +-
 .../IgniteCacheComponentAutoConfiguration.java     |   20 -
 .../IgniteComputeComponentAutoConfiguration.java   |   20 -
 .../IgniteEventsComponentAutoConfiguration.java    |   20 -
 .../IgniteIdGenComponentAutoConfiguration.java     |   20 -
 .../IgniteMessagingComponentAutoConfiguration.java |   20 -
 .../IgniteQueueComponentAutoConfiguration.java     |   20 -
 .../IgniteSetComponentAutoConfiguration.java       |   20 -
 .../src/main/docs/infinispan-starter.adoc          |   18 +-
 .../InfinispanComponentAutoConfiguration.java      |   20 -
 .../InfinispanComponentConfiguration.java          |  224 +---
 .../InfluxDbComponentAutoConfiguration.java        |   20 -
 .../springboot/IOTAComponentAutoConfiguration.java |   20 -
 .../springboot/IPFSComponentAutoConfiguration.java |   20 -
 .../springboot/IrcComponentAutoConfiguration.java  |   20 -
 .../IronMQComponentAutoConfiguration.java          |   20 -
 .../springboot/JBPMComponentAutoConfiguration.java |   20 -
 .../JCacheComponentAutoConfiguration.java          |   20 -
 .../JcloudsComponentAutoConfiguration.java         |   20 -
 .../springboot/JcrComponentAutoConfiguration.java  |   20 -
 .../springboot/JdbcComponentAutoConfiguration.java |   20 -
 .../JettyHttpComponentAutoConfiguration9.java      |   20 -
 .../JGroupsRaftComponentAutoConfiguration.java     |   20 -
 .../JGroupsComponentAutoConfiguration.java         |   20 -
 .../springboot/JingComponentAutoConfiguration.java |   20 -
 .../src/main/docs/jira-starter.adoc                |   11 +-
 .../springboot/JiraComponentAutoConfiguration.java |   20 -
 .../springboot/JiraComponentConfiguration.java     |  116 +-
 .../springboot/JmsComponentAutoConfiguration.java  |   20 -
 .../springboot/JMXComponentAutoConfiguration.java  |   20 -
 .../springboot/JoltComponentAutoConfiguration.java |   20 -
 .../src/main/docs/jooq-starter.adoc                |    8 +-
 .../springboot/JooqComponentAutoConfiguration.java |   20 -
 .../springboot/JooqComponentConfiguration.java     |   76 +-
 .../springboot/JpaComponentAutoConfiguration.java  |   20 -
 .../springboot/ScpComponentAutoConfiguration.java  |   20 -
 .../springboot/JsltComponentAutoConfiguration.java |   20 -
 .../JsonValidatorComponentAutoConfiguration.java   |   20 -
 .../Jt400ComponentAutoConfiguration.java           |   20 -
 .../src/main/docs/kafka-starter.adoc               |   94 +-
 .../KafkaComponentAutoConfiguration.java           |   20 -
 .../springboot/KafkaComponentConfiguration.java    | 1367 +-------------------
 ...rnetesConfigMapsComponentAutoConfiguration.java |   20 -
 ...netesDeploymentsComponentAutoConfiguration.java |   20 -
 .../KubernetesHPAComponentAutoConfiguration.java   |   20 -
 .../KubernetesJobComponentAutoConfiguration.java   |   20 -
 ...rnetesNamespacesComponentAutoConfiguration.java |   20 -
 .../KubernetesNodesComponentAutoConfiguration.java |   20 -
 ...ersistentVolumesComponentAutoConfiguration.java |   20 -
 ...entVolumesClaimsComponentAutoConfiguration.java |   20 -
 .../KubernetesPodsComponentAutoConfiguration.java  |   20 -
 ...ationControllersComponentAutoConfiguration.java |   20 -
 ...esResourcesQuotaComponentAutoConfiguration.java |   20 -
 ...ubernetesSecretsComponentAutoConfiguration.java |   20 -
 ...sServiceAccountsComponentAutoConfiguration.java |   20 -
 ...bernetesServicesComponentAutoConfiguration.java |   20 -
 ...hiftBuildConfigsComponentAutoConfiguration.java |   20 -
 .../OpenshiftBuildsComponentAutoConfiguration.java |   20 -
 .../springboot/KuduComponentAutoConfiguration.java |   20 -
 .../LanguageComponentAutoConfiguration.java        |   20 -
 .../springboot/LdapComponentAutoConfiguration.java |   20 -
 .../springboot/LdifComponentAutoConfiguration.java |   20 -
 .../springboot/LogComponentAutoConfiguration.java  |   20 -
 .../src/main/docs/lucene-starter.adoc              |    9 +-
 .../LuceneComponentAutoConfiguration.java          |   20 -
 .../springboot/LuceneComponentConfiguration.java   |   93 +-
 .../LumberjackComponentAutoConfiguration.java      |   20 -
 .../src/main/docs/mail-starter.adoc                |   39 +-
 .../springboot/MailComponentAutoConfiguration.java |   20 -
 .../springboot/MailComponentConfiguration.java     |  519 +-------
 .../MasterComponentAutoConfiguration.java          |   20 -
 .../MetricsComponentAutoConfiguration.java         |   20 -
 .../MicrometerComponentAutoConfiguration.java      |   20 -
 .../src/main/docs/milo-starter.adoc                |   22 +-
 .../MiloClientComponentAutoConfiguration.java      |   20 -
 .../MiloClientComponentConfiguration.java          |  246 +---
 .../MiloServerComponentAutoConfiguration.java      |   20 -
 .../src/main/docs/mina-starter.adoc                |   29 +-
 .../springboot/MinaComponentAutoConfiguration.java |   20 -
 .../springboot/MinaComponentConfiguration.java     |  361 +-----
 .../springboot/MllpComponentAutoConfiguration.java |   20 -
 .../springboot/MockComponentAutoConfiguration.java |   20 -
 .../GridFsComponentAutoConfiguration.java          |   20 -
 .../MongoDbComponentAutoConfiguration.java         |   20 -
 .../springboot/MsvComponentAutoConfiguration.java  |   20 -
 .../MustacheComponentAutoConfiguration.java        |   20 -
 .../springboot/MvelComponentAutoConfiguration.java |   20 -
 .../MyBatisBeanComponentAutoConfiguration.java     |   20 -
 .../MyBatisComponentAutoConfiguration.java         |   20 -
 .../src/main/docs/nagios-starter.adoc              |    9 +-
 .../NagiosComponentAutoConfiguration.java          |   20 -
 .../springboot/NagiosComponentConfiguration.java   |   86 +-
 .../springboot/NatsComponentAutoConfiguration.java |   20 -
 .../src/main/docs/netty-http-starter.adoc          |    9 +-
 .../NettyHttpComponentAutoConfiguration.java       |   20 -
 .../NettyHttpComponentConfiguration.java           |   95 +-
 .../src/main/docs/netty-starter.adoc               |   73 +-
 .../NettyComponentAutoConfiguration.java           |   20 -
 .../springboot/NettyComponentConfiguration.java    |  996 +-------------
 .../NitriteComponentAutoConfiguration.java         |   20 -
 .../springboot/NsqComponentAutoConfiguration.java  |   20 -
 .../src/main/docs/olingo2-starter.adoc             |   16 +-
 .../Olingo2ComponentAutoConfiguration.java         |   20 -
 .../springboot/Olingo2ComponentConfiguration.java  |  190 +--
 .../src/main/docs/olingo4-starter.adoc             |   16 +-
 .../Olingo4ComponentAutoConfiguration.java         |   20 -
 .../springboot/Olingo4ComponentConfiguration.java  |  190 +--
 .../CinderComponentAutoConfiguration.java          |   20 -
 .../GlanceComponentAutoConfiguration.java          |   20 -
 .../KeystoneComponentAutoConfiguration.java        |   20 -
 .../NeutronComponentAutoConfiguration.java         |   20 -
 .../springboot/NovaComponentAutoConfiguration.java |   20 -
 .../SwiftComponentAutoConfiguration.java           |   20 -
 .../OptaPlannerComponentAutoConfiguration.java     |   20 -
 .../src/main/docs/paho-starter.adoc                |   29 +-
 .../springboot/PahoComponentAutoConfiguration.java |   20 -
 .../springboot/PahoComponentConfiguration.java     |  457 +------
 .../springboot/PdfComponentAutoConfiguration.java  |   20 -
 ...gReplicationSlotComponentAutoConfiguration.java |   20 -
 .../PgEventComponentAutoConfiguration.java         |   20 -
 .../PlatformHttpComponentAutoConfiguration.java    |   20 -
 .../PrinterComponentAutoConfiguration.java         |   20 -
 .../PubNubComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/pulsar-starter.adoc              |   28 +-
 .../PulsarComponentAutoConfiguration.java          |   20 -
 .../springboot/PulsarComponentConfiguration.java   |  343 +----
 .../QuartzComponentAutoConfiguration.java          |   20 -
 .../QuickfixjComponentAutoConfiguration.java       |   20 -
 .../RabbitMQComponentAutoConfiguration.java        |   20 -
 .../src/main/docs/reactive-streams-starter.adoc    |    6 +-
 .../ReactiveStreamsComponentAutoConfiguration.java |   20 -
 .../ReactiveStreamsComponentConfiguration.java     |   52 +-
 .../springboot/RefComponentAutoConfiguration.java  |   20 -
 .../RestOpenApiComponentAutoConfiguration.java     |   20 -
 .../RestApiComponentAutoConfiguration.java         |   20 -
 .../springboot/RestComponentAutoConfiguration.java |   20 -
 .../RestSwaggerComponentAutoConfiguration.java     |   20 -
 .../src/main/docs/robotframework-starter.adoc      |   48 +-
 .../RobotFrameworkComponentAutoConfiguration.java  |   20 -
 .../RobotFrameworkComponentConfiguration.java      |  576 +--------
 .../springboot/RssComponentAutoConfiguration.java  |   20 -
 .../springboot/SagaComponentAutoConfiguration.java |   20 -
 .../src/main/docs/salesforce-starter.adoc          |   79 +-
 .../SalesforceComponentAutoConfiguration.java      |   20 -
 .../SalesforceComponentConfiguration.java          |  906 +------------
 .../NetWeaverComponentAutoConfiguration.java       |   20 -
 .../XQueryComponentAutoConfiguration.java          |   20 -
 .../SchedulerComponentAutoConfiguration.java       |   20 -
 .../SchematronComponentAutoConfiguration.java      |   20 -
 .../springboot/SedaComponentAutoConfiguration.java |   20 -
 .../ServiceComponentAutoConfiguration.java         |   20 -
 .../src/main/docs/servicenow-starter.adoc          |   46 +-
 .../ServiceNowComponentAutoConfiguration.java      |   20 -
 .../ServiceNowComponentConfiguration.java          |  569 +-------
 .../ServletComponentAutoConfiguration.java         |   20 -
 .../springboot/SipComponentAutoConfiguration.java  |   20 -
 .../SjmsBatchComponentAutoConfiguration.java       |   20 -
 .../springboot/SjmsComponentAutoConfiguration.java |   20 -
 .../Sjms2ComponentAutoConfiguration.java           |   20 -
 .../SlackComponentAutoConfiguration.java           |   20 -
 .../src/main/docs/smpp-starter.adoc                |   39 +-
 .../springboot/SmppComponentAutoConfiguration.java |   20 -
 .../springboot/SmppComponentConfiguration.java     |  527 +-------
 .../springboot/SnmpComponentAutoConfiguration.java |   20 -
 .../springboot/SolrComponentAutoConfiguration.java |   20 -
 .../SoroushBotComponentAutoConfiguration.java      |   20 -
 .../SparkComponentAutoConfiguration.java           |   20 -
 .../SplunkComponentAutoConfiguration.java          |   20 -
 .../SpringBatchComponentAutoConfiguration.java     |   20 -
 ...pringIntegrationComponentAutoConfiguration.java |   20 -
 .../SpringLdapComponentAutoConfiguration.java      |   20 -
 .../RedisComponentAutoConfiguration.java           |   20 -
 .../EventComponentAutoConfiguration.java           |   20 -
 ...SpringWebserviceComponentAutoConfiguration.java |   20 -
 .../springboot/SqlComponentAutoConfiguration.java  |   20 -
 .../SqlStoredComponentAutoConfiguration.java       |   20 -
 .../src/main/docs/ssh-starter.adoc                 |   18 +-
 .../springboot/SshComponentAutoConfiguration.java  |   20 -
 .../ssh/springboot/SshComponentConfiguration.java  |  212 +--
 .../springboot/StAXComponentAutoConfiguration.java |   20 -
 .../src/main/docs/stomp-starter.adoc               |   10 +-
 .../StompComponentAutoConfiguration.java           |   20 -
 .../springboot/StompComponentConfiguration.java    |  101 +-
 .../StreamComponentAutoConfiguration.java          |   20 -
 .../StringTemplateComponentAutoConfiguration.java  |   20 -
 .../springboot/StubComponentAutoConfiguration.java |   20 -
 .../TelegramComponentAutoConfiguration.java        |   20 -
 .../ThriftComponentAutoConfiguration.java          |   20 -
 .../springboot/TikaComponentAutoConfiguration.java |   20 -
 .../TimerComponentAutoConfiguration.java           |   20 -
 .../src/main/docs/twilio-starter.adoc              |    6 +-
 .../TwilioComponentAutoConfiguration.java          |   20 -
 .../springboot/TwilioComponentConfiguration.java   |   39 +-
 ...terDirectMessageComponentAutoConfiguration.java |   20 -
 .../TwitterSearchComponentAutoConfiguration.java   |   20 -
 .../TwitterTimelineComponentAutoConfiguration.java |   20 -
 .../src/main/docs/undertow-starter.adoc            |    8 +-
 .../UndertowComponentAutoConfiguration.java        |   20 -
 .../springboot/UndertowComponentConfiguration.java |   74 +-
 .../ValidatorComponentAutoConfiguration.java       |   20 -
 .../VelocityComponentAutoConfiguration.java        |   20 -
 .../VertxComponentAutoConfiguration.java           |   20 -
 .../springboot/VmComponentAutoConfiguration.java   |   20 -
 .../WeatherComponentAutoConfiguration.java         |   20 -
 .../src/main/docs/web3j-starter.adoc               |   37 +-
 .../Web3jComponentAutoConfiguration.java           |   20 -
 .../springboot/Web3jComponentConfiguration.java    |  434 +------
 .../src/main/docs/webhook-starter.adoc             |    9 +-
 .../WebhookComponentAutoConfiguration.java         |   20 -
 .../springboot/WebhookComponentConfiguration.java  |   91 +-
 .../JSR356WebSocketComponentAutoConfiguration.java |   20 -
 .../WebsocketComponentAutoConfiguration.java       |   20 -
 .../springboot/WekaComponentAutoConfiguration.java |   20 -
 .../src/main/docs/wordpress-starter.adoc           |   18 +-
 .../WordpressComponentAutoConfiguration.java       |   20 -
 .../WordpressComponentConfiguration.java           |  183 +--
 .../WorkdayComponentAutoConfiguration.java         |   20 -
 .../XChangeComponentAutoConfiguration.java         |   20 -
 .../springboot/XJComponentAutoConfiguration.java   |   20 -
 .../src/main/docs/xmlsecurity-starter.adoc         |   46 +-
 .../XmlSignatureComponentAutoConfiguration.java    |   20 -
 .../XmlSignatureComponentConfiguration.java        |  427 +-----
 .../XmlVerifierComponentAutoConfiguration.java     |   20 -
 .../XmlVerifierComponentConfiguration.java         |  280 +---
 .../springboot/XmppComponentAutoConfiguration.java |   20 -
 .../XsltSaxonComponentAutoConfiguration.java       |   20 -
 .../springboot/XsltComponentAutoConfiguration.java |   20 -
 .../src/main/docs/yammer-starter.adoc              |   15 +-
 .../YammerComponentAutoConfiguration.java          |   20 -
 .../springboot/YammerComponentConfiguration.java   |  176 +--
 .../src/main/docs/zendesk-starter.adoc             |   10 +-
 .../ZendeskComponentAutoConfiguration.java         |   20 -
 .../springboot/ZendeskComponentConfiguration.java  |   86 +-
 .../MasterComponentAutoConfiguration.java          |   20 -
 .../src/main/docs/zookeeper-starter.adoc           |   12 +-
 .../ZooKeeperComponentAutoConfiguration.java       |   20 -
 .../ZooKeeperComponentConfiguration.java           |  121 +-
 docs/modules/ROOT/pages/as2-starter.adoc           |   32 +-
 docs/modules/ROOT/pages/atomix-starter.adoc        |   29 +-
 docs/modules/ROOT/pages/avro-starter.adoc          |   13 +-
 docs/modules/ROOT/pages/aws-cw-starter.adoc        |   15 +-
 docs/modules/ROOT/pages/aws-ddb-starter.adoc       |   29 +-
 docs/modules/ROOT/pages/aws-ec2-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-ecs-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-eks-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-iam-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-kinesis-starter.adoc   |   25 +-
 docs/modules/ROOT/pages/aws-kms-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-lambda-starter.adoc    |   11 +-
 docs/modules/ROOT/pages/aws-mq-starter.adoc        |   11 +-
 docs/modules/ROOT/pages/aws-msk-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws-s3-starter.adoc        |   37 +-
 docs/modules/ROOT/pages/aws-ses-starter.adoc       |   15 +-
 docs/modules/ROOT/pages/aws-sns-starter.adoc       |   21 +-
 docs/modules/ROOT/pages/aws-sqs-starter.adoc       |   38 +-
 docs/modules/ROOT/pages/aws-swf-starter.adoc       |   30 +-
 docs/modules/ROOT/pages/aws-translate-starter.adoc |   14 +-
 docs/modules/ROOT/pages/aws2-cw-starter.adoc       |   15 +-
 docs/modules/ROOT/pages/aws2-ddb-starter.adoc      |   29 +-
 docs/modules/ROOT/pages/aws2-ec2-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-ecs-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-eks-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-iam-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-kinesis-starter.adoc  |   25 +-
 docs/modules/ROOT/pages/aws2-kms-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-lambda-starter.adoc   |   11 +-
 docs/modules/ROOT/pages/aws2-mq-starter.adoc       |   11 +-
 docs/modules/ROOT/pages/aws2-msk-starter.adoc      |   11 +-
 docs/modules/ROOT/pages/aws2-ses-starter.adoc      |   15 +-
 docs/modules/ROOT/pages/aws2-sns-starter.adoc      |   20 +-
 docs/modules/ROOT/pages/aws2-sqs-starter.adoc      |   38 +-
 .../modules/ROOT/pages/aws2-translate-starter.adoc |   14 +-
 docs/modules/ROOT/pages/azure-starter.adoc         |   30 +-
 docs/modules/ROOT/pages/box-starter.adoc           |   20 +-
 docs/modules/ROOT/pages/braintree-starter.adoc     |   16 +-
 docs/modules/ROOT/pages/caffeine-starter.adoc      |   34 +-
 docs/modules/ROOT/pages/consul-starter.adoc        |   25 +-
 docs/modules/ROOT/pages/corda-starter.adoc         |   14 +-
 docs/modules/ROOT/pages/crypto-starter.adoc        |   23 +-
 .../ROOT/pages/debezium-mongodb-starter.adoc       |   31 +-
 .../modules/ROOT/pages/debezium-mysql-starter.adoc |   61 +-
 .../ROOT/pages/debezium-postgres-starter.adoc      |   53 +-
 .../ROOT/pages/debezium-sqlserver-starter.adoc     |   35 +-
 docs/modules/ROOT/pages/docker-starter.adoc        |   21 +-
 docs/modules/ROOT/pages/etcd-starter.adoc          |   35 +-
 docs/modules/ROOT/pages/facebook-starter.adoc      |   30 +-
 docs/modules/ROOT/pages/fhir-starter.adoc          |   28 +-
 docs/modules/ROOT/pages/ganglia-starter.adoc       |   17 +-
 .../ROOT/pages/google-bigquery-starter.adoc        |   13 +-
 .../ROOT/pages/google-calendar-starter.adoc        |   27 +-
 docs/modules/ROOT/pages/google-drive-starter.adoc  |   11 +-
 docs/modules/ROOT/pages/google-mail-starter.adoc   |   21 +-
 docs/modules/ROOT/pages/google-sheets-starter.adoc |   25 +-
 docs/modules/ROOT/pages/iec60870-starter.adoc      |   15 +-
 docs/modules/ROOT/pages/infinispan-starter.adoc    |   18 +-
 docs/modules/ROOT/pages/jira-starter.adoc          |   11 +-
 docs/modules/ROOT/pages/jooq-starter.adoc          |    8 +-
 docs/modules/ROOT/pages/kafka-starter.adoc         |   94 +-
 docs/modules/ROOT/pages/lucene-starter.adoc        |    9 +-
 docs/modules/ROOT/pages/mail-starter.adoc          |   39 +-
 docs/modules/ROOT/pages/milo-starter.adoc          |   22 +-
 docs/modules/ROOT/pages/mina-starter.adoc          |   29 +-
 docs/modules/ROOT/pages/nagios-starter.adoc        |    9 +-
 docs/modules/ROOT/pages/netty-http-starter.adoc    |    9 +-
 docs/modules/ROOT/pages/netty-starter.adoc         |   73 +-
 docs/modules/ROOT/pages/olingo2-starter.adoc       |   16 +-
 docs/modules/ROOT/pages/olingo4-starter.adoc       |   16 +-
 docs/modules/ROOT/pages/paho-starter.adoc          |   29 +-
 docs/modules/ROOT/pages/pulsar-starter.adoc        |   28 +-
 .../ROOT/pages/reactive-streams-starter.adoc       |    6 +-
 .../modules/ROOT/pages/robotframework-starter.adoc |   48 +-
 docs/modules/ROOT/pages/salesforce-starter.adoc    |   79 +-
 docs/modules/ROOT/pages/servicenow-starter.adoc    |   46 +-
 docs/modules/ROOT/pages/smpp-starter.adoc          |   39 +-
 docs/modules/ROOT/pages/ssh-starter.adoc           |   18 +-
 docs/modules/ROOT/pages/stomp-starter.adoc         |   10 +-
 docs/modules/ROOT/pages/twilio-starter.adoc        |    6 +-
 docs/modules/ROOT/pages/undertow-starter.adoc      |    8 +-
 docs/modules/ROOT/pages/web3j-starter.adoc         |   37 +-
 docs/modules/ROOT/pages/webhook-starter.adoc       |    9 +-
 docs/modules/ROOT/pages/wordpress-starter.adoc     |   18 +-
 docs/modules/ROOT/pages/xmlsecurity-starter.adoc   |   46 +-
 docs/modules/ROOT/pages/yammer-starter.adoc        |   15 +-
 docs/modules/ROOT/pages/zendesk-starter.adoc       |   10 +-
 docs/modules/ROOT/pages/zookeeper-starter.adoc     |   12 +-
 611 files changed, 963 insertions(+), 34141 deletions(-)

diff --git a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
index f4e0e5b..7bc4108 100644
--- a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
+++ b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class ActiveMQComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
index 545b17e..42cfc37 100644
--- a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
+++ b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AhcComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
index 8839cb7..f8f84f4 100644
--- a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
+++ b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class WsComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
index dddf81d..019ef45 100644
--- a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
+++ b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AMQPComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
index 3a57660..7b5b5a1 100644
--- a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
+++ b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class ApnsComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 fe59291..6a231c5 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
@@ -17,7 +17,7 @@ When using as2 with Spring Boot make sure to use the following Maven dependency
 ----
 
 
-The component supports 32 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -26,36 +26,8 @@ The component supports 32 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.as2.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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.api-name* | What kind of operation to perform |  | AS2ApiName
-| *camel.component.as2.configuration.as2-from* | The value of the AS2From header of AS2 message. |  | String
-| *camel.component.as2.configuration.as2-message-structure* | The structure of AS2 Message. One of: PLAIN - No encryption, no signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption, no signature, ENCRYPTED_SIGNED - Encryption, signature |  | AS2MessageStructure
-| *camel.component.as2.configuration.as2-to* | The value of the AS2To header of AS2 message. |  | String
-| *camel.component.as2.configuration.as2-version* | The version of the AS2 protocol. | 1.1 | String
-| *camel.component.as2.configuration.client-fqdn* | The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
-| *camel.component.as2.configuration.compression-algorithm* | The algorithm used to compress EDI message. |  | AS2CompressionAlgorithm
-| *camel.component.as2.configuration.decrypting-private-key* | The key used to encrypt the EDI message. |  | PrivateKey
-| *camel.component.as2.configuration.disposition-notification-to* | The value of the Disposition-Notification-To header. Assigning a value to this parameter requests a message disposition notification (MDN) for the AS2 message. |  | String
-| *camel.component.as2.configuration.edi-message-transfer-encoding* | The transfer encoding of EDI message. |  | String
-| *camel.component.as2.configuration.edi-message-type* | The content type of EDI message. One of application/edifact, application/edi-x12, application/edi-consent |  | ContentType
-| *camel.component.as2.configuration.encrypting-algorithm* | The algorithm used to encrypt EDI message. |  | AS2EncryptionAlgorithm
-| *camel.component.as2.configuration.encrypting-certificate-chain* | The chain of certificates used to encrypt EDI message. |  | Certificate[]
-| *camel.component.as2.configuration.from* | The value of the From header of AS2 message. |  | String
-| *camel.component.as2.configuration.mdn-message-template* | The template used to format MDN message |  | String
-| *camel.component.as2.configuration.method-name* | What sub operation to use for the selected operation |  | String
-| *camel.component.as2.configuration.request-uri* | The request URI of EDI message. | / | String
-| *camel.component.as2.configuration.server* | The value included in the Server message header identifying the AS2 Server. | Camel AS2 Server Endpoint | String
-| *camel.component.as2.configuration.server-fqdn* | The Server Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
-| *camel.component.as2.configuration.server-port-number* | The port number of server. |  | Integer
-| *camel.component.as2.configuration.signed-receipt-mic-algorithms* | The list of algorithms, in order of preference, requested to generate a message integrity check (MIC) returned in message dispostion notification (MDN) |  | String[]
-| *camel.component.as2.configuration.signing-algorithm* | The algorithm used to sign EDI message. |  | AS2SignatureAlgorithm
-| *camel.component.as2.configuration.signing-certificate-chain* | The chain of certificates used to sign EDI message. |  | Certificate[]
-| *camel.component.as2.configuration.signing-private-key* | The key used to sign the EDI message. |  | PrivateKey
-| *camel.component.as2.configuration.subject* | The value of Subject header of AS2 message. |  | String
-| *camel.component.as2.configuration.target-hostname* | The host name (IP or DNS name) of target host. |  | String
-| *camel.component.as2.configuration.target-port-number* | The port number of target host. -1 indicates the scheme default port. |  | Integer
-| *camel.component.as2.configuration.user-agent* | The value included in the User-Agent message header identifying the AS2 user agent. | Camel AS2 Client Endpoint | String
+| *camel.component.as2.configuration* | To use the shared configuration. The option is a org.apache.camel.component.as2.AS2Configuration type. |  | String
 | *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 [...]
 |===
-
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
index ac96ac2..2f0bdac 100644
--- a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AS2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 cc90c87..f84fe84 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
@@ -16,16 +16,8 @@
  */
 package org.apache.camel.component.as2.springboot;
 
-import java.security.PrivateKey;
-import java.security.cert.Certificate;
 import javax.annotation.Generated;
-import org.apache.camel.component.as2.api.AS2CompressionAlgorithm;
-import org.apache.camel.component.as2.api.AS2EncryptionAlgorithm;
-import org.apache.camel.component.as2.api.AS2MessageStructure;
-import org.apache.camel.component.as2.api.AS2SignatureAlgorithm;
-import org.apache.camel.component.as2.internal.AS2ApiName;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
-import org.apache.http.entity.ContentType;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -46,9 +38,10 @@ public class AS2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * To use the shared configuration
+     * To use the shared configuration. The option is a
+     * org.apache.camel.component.as2.AS2Configuration type.
      */
-    private AS2ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * Allows for bridging the consumer to the Camel routing Error Handler,
      * which mean any exceptions occurred while the consumer is trying to pickup
@@ -75,12 +68,11 @@ public class AS2ComponentConfiguration
      */
     private Boolean basicPropertyBinding = false;
 
-    public AS2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AS2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -107,363 +99,4 @@ public class AS2ComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class AS2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.as2.AS2Configuration.class;
-        /**
-         * What kind of operation to perform
-         */
-        private AS2ApiName apiName;
-        /**
-         * The value of the AS2From header of AS2 message.
-         */
-        private String as2From;
-        /**
-         * The structure of AS2 Message. One of: PLAIN - No encryption, no
-         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
-         * no signature, ENCRYPTED_SIGNED - Encryption, signature
-         */
-        private AS2MessageStructure as2MessageStructure;
-        /**
-         * The value of the AS2To header of AS2 message.
-         */
-        private String as2To;
-        /**
-         * The version of the AS2 protocol.
-         */
-        private String as2Version = "1.1";
-        /**
-         * The Client Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint.
-         */
-        private String clientFqdn = "camel.apache.org";
-        /**
-         * The algorithm used to compress EDI message.
-         */
-        private AS2CompressionAlgorithm compressionAlgorithm;
-        /**
-         * The key used to encrypt the EDI message.
-         */
-        private PrivateKey decryptingPrivateKey;
-        /**
-         * The value of the Disposition-Notification-To header. Assigning a
-         * value to this parameter requests a message disposition notification
-         * (MDN) for the AS2 message.
-         */
-        private String dispositionNotificationTo;
-        /**
-         * The transfer encoding of EDI message.
-         */
-        private String ediMessageTransferEncoding;
-        /**
-         * The content type of EDI message. One of application/edifact,
-         * application/edi-x12, application/edi-consent
-         */
-        private ContentType ediMessageType;
-        /**
-         * The algorithm used to encrypt EDI message.
-         */
-        private AS2EncryptionAlgorithm encryptingAlgorithm;
-        /**
-         * The chain of certificates used to encrypt EDI message.
-         */
-        private Certificate[] encryptingCertificateChain;
-        /**
-         * The value of the From header of AS2 message.
-         */
-        private String from;
-        /**
-         * The template used to format MDN message
-         */
-        private String mdnMessageTemplate;
-        /**
-         * What sub operation to use for the selected operation
-         */
-        private String methodName;
-        /**
-         * The request URI of EDI message.
-         */
-        private String requestUri = "/";
-        /**
-         * The value included in the Server message header identifying the AS2
-         * Server.
-         */
-        private String server = "Camel AS2 Server Endpoint";
-        /**
-         * The Server Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint.
-         */
-        private String serverFqdn = "camel.apache.org";
-        /**
-         * The port number of server.
-         */
-        private Integer serverPortNumber;
-        /**
-         * The list of algorithms, in order of preference, requested to generate
-         * a message integrity check (MIC) returned in message dispostion
-         * notification (MDN)
-         */
-        private String[] signedReceiptMicAlgorithms;
-        /**
-         * The algorithm used to sign EDI message.
-         */
-        private AS2SignatureAlgorithm signingAlgorithm;
-        /**
-         * The chain of certificates used to sign EDI message.
-         */
-        private Certificate[] signingCertificateChain;
-        /**
-         * The key used to sign the EDI message.
-         */
-        private PrivateKey signingPrivateKey;
-        /**
-         * The value of Subject header of AS2 message.
-         */
-        private String subject;
-        /**
-         * The host name (IP or DNS name) of target host.
-         */
-        private String targetHostname;
-        /**
-         * The port number of target host. -1 indicates the scheme default port.
-         */
-        private Integer targetPortNumber;
-        /**
-         * The value included in the User-Agent message header identifying the
-         * AS2 user agent.
-         */
-        private String userAgent = "Camel AS2 Client Endpoint";
-
-        public AS2ApiName getApiName() {
-            return apiName;
-        }
-
-        public void setApiName(AS2ApiName apiName) {
-            this.apiName = apiName;
-        }
-
-        public String getAs2From() {
-            return as2From;
-        }
-
-        public void setAs2From(String as2From) {
-            this.as2From = as2From;
-        }
-
-        public AS2MessageStructure getAs2MessageStructure() {
-            return as2MessageStructure;
-        }
-
-        public void setAs2MessageStructure(
-                AS2MessageStructure as2MessageStructure) {
-            this.as2MessageStructure = as2MessageStructure;
-        }
-
-        public String getAs2To() {
-            return as2To;
-        }
-
-        public void setAs2To(String as2To) {
-            this.as2To = as2To;
-        }
-
-        public String getAs2Version() {
-            return as2Version;
-        }
-
-        public void setAs2Version(String as2Version) {
-            this.as2Version = as2Version;
-        }
-
-        public String getClientFqdn() {
-            return clientFqdn;
-        }
-
-        public void setClientFqdn(String clientFqdn) {
-            this.clientFqdn = clientFqdn;
-        }
-
-        public AS2CompressionAlgorithm getCompressionAlgorithm() {
-            return compressionAlgorithm;
-        }
-
-        public void setCompressionAlgorithm(
-                AS2CompressionAlgorithm compressionAlgorithm) {
-            this.compressionAlgorithm = compressionAlgorithm;
-        }
-
-        public PrivateKey getDecryptingPrivateKey() {
-            return decryptingPrivateKey;
-        }
-
-        public void setDecryptingPrivateKey(PrivateKey decryptingPrivateKey) {
-            this.decryptingPrivateKey = decryptingPrivateKey;
-        }
-
-        public String getDispositionNotificationTo() {
-            return dispositionNotificationTo;
-        }
-
-        public void setDispositionNotificationTo(
-                String dispositionNotificationTo) {
-            this.dispositionNotificationTo = dispositionNotificationTo;
-        }
-
-        public String getEdiMessageTransferEncoding() {
-            return ediMessageTransferEncoding;
-        }
-
-        public void setEdiMessageTransferEncoding(
-                String ediMessageTransferEncoding) {
-            this.ediMessageTransferEncoding = ediMessageTransferEncoding;
-        }
-
-        public ContentType getEdiMessageType() {
-            return ediMessageType;
-        }
-
-        public void setEdiMessageType(ContentType ediMessageType) {
-            this.ediMessageType = ediMessageType;
-        }
-
-        public AS2EncryptionAlgorithm getEncryptingAlgorithm() {
-            return encryptingAlgorithm;
-        }
-
-        public void setEncryptingAlgorithm(
-                AS2EncryptionAlgorithm encryptingAlgorithm) {
-            this.encryptingAlgorithm = encryptingAlgorithm;
-        }
-
-        public Certificate[] getEncryptingCertificateChain() {
-            return encryptingCertificateChain;
-        }
-
-        public void setEncryptingCertificateChain(
-                Certificate[] encryptingCertificateChain) {
-            this.encryptingCertificateChain = encryptingCertificateChain;
-        }
-
-        public String getFrom() {
-            return from;
-        }
-
-        public void setFrom(String from) {
-            this.from = from;
-        }
-
-        public String getMdnMessageTemplate() {
-            return mdnMessageTemplate;
-        }
-
-        public void setMdnMessageTemplate(String mdnMessageTemplate) {
-            this.mdnMessageTemplate = mdnMessageTemplate;
-        }
-
-        public String getMethodName() {
-            return methodName;
-        }
-
-        public void setMethodName(String methodName) {
-            this.methodName = methodName;
-        }
-
-        public String getRequestUri() {
-            return requestUri;
-        }
-
-        public void setRequestUri(String requestUri) {
-            this.requestUri = requestUri;
-        }
-
-        public String getServer() {
-            return server;
-        }
-
-        public void setServer(String server) {
-            this.server = server;
-        }
-
-        public String getServerFqdn() {
-            return serverFqdn;
-        }
-
-        public void setServerFqdn(String serverFqdn) {
-            this.serverFqdn = serverFqdn;
-        }
-
-        public Integer getServerPortNumber() {
-            return serverPortNumber;
-        }
-
-        public void setServerPortNumber(Integer serverPortNumber) {
-            this.serverPortNumber = serverPortNumber;
-        }
-
-        public String[] getSignedReceiptMicAlgorithms() {
-            return signedReceiptMicAlgorithms;
-        }
-
-        public void setSignedReceiptMicAlgorithms(
-                String[] signedReceiptMicAlgorithms) {
-            this.signedReceiptMicAlgorithms = signedReceiptMicAlgorithms;
-        }
-
-        public AS2SignatureAlgorithm getSigningAlgorithm() {
-            return signingAlgorithm;
-        }
-
-        public void setSigningAlgorithm(AS2SignatureAlgorithm signingAlgorithm) {
-            this.signingAlgorithm = signingAlgorithm;
-        }
-
-        public Certificate[] getSigningCertificateChain() {
-            return signingCertificateChain;
-        }
-
-        public void setSigningCertificateChain(
-                Certificate[] signingCertificateChain) {
-            this.signingCertificateChain = signingCertificateChain;
-        }
-
-        public PrivateKey getSigningPrivateKey() {
-            return signingPrivateKey;
-        }
-
-        public void setSigningPrivateKey(PrivateKey signingPrivateKey) {
-            this.signingPrivateKey = signingPrivateKey;
-        }
-
-        public String getSubject() {
-            return subject;
-        }
-
-        public void setSubject(String subject) {
-            this.subject = subject;
-        }
-
-        public String getTargetHostname() {
-            return targetHostname;
-        }
-
-        public void setTargetHostname(String targetHostname) {
-            this.targetHostname = targetHostname;
-        }
-
-        public Integer getTargetPortNumber() {
-            return targetPortNumber;
-        }
-
-        public void setTargetPortNumber(Integer targetPortNumber) {
-            this.targetPortNumber = targetPortNumber;
-        }
-
-        public String getUserAgent() {
-            return userAgent;
-        }
-
-        public void setUserAgent(String userAgent) {
-            this.userAgent = userAgent;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java b/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
index 1c933a2..4646ab2 100644
--- a/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
+++ b/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AsteriskComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java b/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
index b67ed3c..f059d39 100644
--- a/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
+++ b/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtmosComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
index 03f374f..6408d9f 100644
--- a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class WebsocketComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java b/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
index dc5d866..1d5db72 100644
--- a/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
+++ b/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtomComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 b302585..d67be1d 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
@@ -17,7 +17,7 @@ When using atomix with Spring Boot make sure to use the following Maven dependen
 ----
 
 
-The component supports 136 options, which are listed below.
+The component supports 121 options, which are listed below.
 
 
 
@@ -27,11 +27,8 @@ The component supports 136 options, which are listed below.
 | *camel.component.atomix-map.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
 | *camel.component.atomix-map.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-map.configuration.default-action* | The default action. |  | AtomixMap$Action
-| *camel.component.atomix-map.configuration.key* | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
-| *camel.component.atomix-map.configuration.result-header* | The header that wil carry the result. |  | String
-| *camel.component.atomix-map.configuration.ttl* | The resource ttl. |  | Long
 | *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
@@ -51,12 +48,8 @@ The component supports 136 options, which are listed below.
 | *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-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-messaging.configuration.broadcast-type* | The broadcast type. |  | AtomixMessaging$BroadcastType
-| *camel.component.atomix-messaging.configuration.channel-name* | The messaging channel name |  | String
-| *camel.component.atomix-messaging.configuration.default-action* | The default action. |  | AtomixMessaging$Action
-| *camel.component.atomix-messaging.configuration.member-name* | The Atomix Group member name |  | String
-| *camel.component.atomix-messaging.configuration.result-header* | The header that wil carry the result. |  | 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
@@ -72,11 +65,8 @@ The component supports 136 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
+| *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.configuration-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-multimap.configuration.default-action* | The default action. |  | AtomixMultiMap$Action
-| *camel.component.atomix-multimap.configuration.key* | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
-| *camel.component.atomix-multimap.configuration.result-header* | The header that wil carry the result. |  | String
-| *camel.component.atomix-multimap.configuration.ttl* | The resource ttl. |  | Long
 | *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
@@ -94,9 +84,8 @@ The component supports 136 options, which are listed below.
 | *camel.component.atomix-queue.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
 | *camel.component.atomix-queue.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-queue.configuration.default-action* | The default action. |  | AtomixQueue$Action
-| *camel.component.atomix-queue.configuration.result-header* | The header that wil carry the result. |  | 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
@@ -112,10 +101,8 @@ The component supports 136 options, which are listed below.
 | *camel.component.atomix-set.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
 | *camel.component.atomix-set.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-set.configuration.default-action* | The default action. |  | AtomixSet$Action
-| *camel.component.atomix-set.configuration.result-header* | The header that wil carry the result. |  | String
-| *camel.component.atomix-set.configuration.ttl* | The resource ttl. |  | Long
 | *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
@@ -132,10 +119,8 @@ The component supports 136 options, which are listed below.
 | *camel.component.atomix-value.atomix* | The Atomix instance to use. The option is a io.atomix.Atomix type. |  | String
 | *camel.component.atomix-value.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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-uri* | The path to the AtomixClient configuration |  | String
-| *camel.component.atomix-value.configuration.default-action* | The default action. |  | AtomixValue$Action
-| *camel.component.atomix-value.configuration.result-header* | The header that wil carry the result. |  | String
-| *camel.component.atomix-value.configuration.ttl* | The resource ttl. |  | Long
 | *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
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
index e7a451b..b84ac47 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtomixMapComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 e942e31..a9a837c 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
@@ -48,9 +48,10 @@ public class AtomixMapComponentConfiguration
      */
     private String atomix;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type.
      */
-    private AtomixMapConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -142,12 +143,11 @@ public class AtomixMapComponentConfiguration
         this.atomix = atomix;
     }
 
-    public AtomixMapConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixMapConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -278,57 +278,4 @@ public class AtomixMapComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixMapConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.map.AtomixMapConfiguration.class;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.PUT;
-        /**
-         * The key to use if none is set in the header or to listen for events
-         * for a specific key.
-         */
-        private Object key;
-        /**
-         * The resource ttl.
-         */
-        private Long ttl;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public Object getKey() {
-            return key;
-        }
-
-        public void setKey(Object key) {
-            this.key = key;
-        }
-
-        public Long getTtl() {
-            return ttl;
-        }
-
-        public void setTtl(Long ttl) {
-            this.ttl = ttl;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
index fe2eb84..d3eb163 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -84,25 +83,6 @@ public class AtomixMessagingComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 25f2f26..2c6b9fa 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
@@ -57,9 +57,10 @@ public class AtomixMessagingComponentConfiguration
      */
     private String channelName;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type.
      */
-    private AtomixMessagingConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -162,12 +163,11 @@ public class AtomixMessagingComponentConfiguration
         this.channelName = channelName;
     }
 
-    public AtomixMessagingConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixMessagingConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -290,68 +290,4 @@ public class AtomixMessagingComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixMessagingConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration.class;
-        /**
-         * The broadcast type.
-         */
-        private BroadcastType broadcastType = BroadcastType.ALL;
-        /**
-         * The messaging channel name
-         */
-        private String channelName;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.DIRECT;
-        /**
-         * The Atomix Group member name
-         */
-        private String memberName;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public BroadcastType getBroadcastType() {
-            return broadcastType;
-        }
-
-        public void setBroadcastType(BroadcastType broadcastType) {
-            this.broadcastType = broadcastType;
-        }
-
-        public String getChannelName() {
-            return channelName;
-        }
-
-        public void setChannelName(String channelName) {
-            this.channelName = channelName;
-        }
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public String getMemberName() {
-            return memberName;
-        }
-
-        public void setMemberName(String memberName) {
-            this.memberName = memberName;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
index db86186..394a1ac 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -84,25 +83,6 @@ public class AtomixMultiMapComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 1abe620..9da0c15 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
@@ -49,9 +49,10 @@ public class AtomixMultiMapComponentConfiguration
      */
     private String atomix;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type.
      */
-    private AtomixMultiMapConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -134,12 +135,11 @@ public class AtomixMultiMapComponentConfiguration
         this.atomix = atomix;
     }
 
-    public AtomixMultiMapConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixMultiMapConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -262,57 +262,4 @@ public class AtomixMultiMapComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixMultiMapConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration.class;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.PUT;
-        /**
-         * The key to use if none is set in the header or to listen for events
-         * for a specific key.
-         */
-        private Object key;
-        /**
-         * The resource ttl.
-         */
-        private Long ttl;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public Object getKey() {
-            return key;
-        }
-
-        public void setKey(Object key) {
-            this.key = key;
-        }
-
-        public Long getTtl() {
-            return ttl;
-        }
-
-        public void setTtl(Long ttl) {
-            this.ttl = ttl;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
index 339fd6a..0ea9478 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtomixQueueComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 9998ac9..7c2ee06 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
@@ -48,9 +48,11 @@ public class AtomixQueueComponentConfiguration
      */
     private String atomix;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration
+     * type.
      */
-    private AtomixQueueConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -133,12 +135,11 @@ public class AtomixQueueComponentConfiguration
         this.atomix = atomix;
     }
 
-    public AtomixQueueConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixQueueConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -253,32 +254,4 @@ public class AtomixQueueComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixQueueConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration.class;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.ADD;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
index 5dae664..7302ee0 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtomixSetComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 791ae70..5e06091 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
@@ -48,9 +48,10 @@ public class AtomixSetComponentConfiguration
      */
     private String atomix;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type.
      */
-    private AtomixSetConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -137,12 +138,11 @@ public class AtomixSetComponentConfiguration
         this.atomix = atomix;
     }
 
-    public AtomixSetConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixSetConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -265,44 +265,4 @@ public class AtomixSetComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixSetConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.set.AtomixSetConfiguration.class;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.ADD;
-        /**
-         * The resource ttl.
-         */
-        private Long ttl;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public Long getTtl() {
-            return ttl;
-        }
-
-        public void setTtl(Long ttl) {
-            this.ttl = ttl;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
index 0842591..8f47b7c 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AtomixValueComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 a6cb14b..4b87cda 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
@@ -48,9 +48,11 @@ public class AtomixValueComponentConfiguration
      */
     private String atomix;
     /**
-     * The shared component configuration
+     * The shared component configuration. The option is a
+     * org.apache.camel.component.atomix.client.value.AtomixValueConfiguration
+     * type.
      */
-    private AtomixValueConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The path to the AtomixClient configuration
      */
@@ -137,12 +139,11 @@ public class AtomixValueComponentConfiguration
         this.atomix = atomix;
     }
 
-    public AtomixValueConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AtomixValueConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -265,44 +266,4 @@ public class AtomixValueComponentConfiguration
     public void setResourceOptions(Map<String, Properties> resourceOptions) {
         this.resourceOptions = resourceOptions;
     }
-
-    public static class AtomixValueConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.atomix.client.value.AtomixValueConfiguration.class;
-        /**
-         * The default action.
-         */
-        private Action defaultAction = Action.SET;
-        /**
-         * The resource ttl.
-         */
-        private Long ttl;
-        /**
-         * The header that wil carry the result.
-         */
-        private String resultHeader;
-
-        public Action getDefaultAction() {
-            return defaultAction;
-        }
-
-        public void setDefaultAction(Action defaultAction) {
-            this.defaultAction = defaultAction;
-        }
-
-        public Long getTtl() {
-            return ttl;
-        }
-
-        public void setTtl(Long ttl) {
-            this.ttl = ttl;
-        }
-
-        public String getResultHeader() {
-            return resultHeader;
-        }
-
-        public void setResultHeader(String resultHeader) {
-            this.resultHeader = resultHeader;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-avro-starter/src/main/docs/avro-starter.adoc b/components-starter/camel-avro-starter/src/main/docs/avro-starter.adoc
index 654c9eb..04585ae 100644
--- a/components-starter/camel-avro-starter/src/main/docs/avro-starter.adoc
+++ b/components-starter/camel-avro-starter/src/main/docs/avro-starter.adoc
@@ -17,7 +17,7 @@ When using avro with Spring Boot make sure to use the following Maven dependency
 ----
 
 
-The component supports 23 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -26,16 +26,7 @@ The component supports 23 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.avro.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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.host* | Hostname to use |  | String
-| *camel.component.avro.configuration.message-name* | The name of the message to send. |  | String
-| *camel.component.avro.configuration.port* | Port number to use |  | Integer
-| *camel.component.avro.configuration.protocol* | Avro protocol to use |  | Protocol
-| *camel.component.avro.configuration.protocol-class-name* | Avro protocol to use defined by the FQN class name |  | String
-| *camel.component.avro.configuration.protocol-location* | Avro protocol location |  | String
-| *camel.component.avro.configuration.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
-| *camel.component.avro.configuration.single-parameter* | If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message | false | Boolean
-| *camel.component.avro.configuration.transport* | Transport to use, can be either http or netty |  | AvroTransport
-| *camel.component.avro.configuration.uri-authority* | Authority to use (username and password) |  | 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. |  | String
 | *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
diff --git a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
index 54ba469..0d084b6 100644
--- a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
+++ b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AvroComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
diff --git a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
index 6f13af0..0215389 100644
--- a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
+++ b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConfiguration.java
@@ -17,8 +17,6 @@
 package org.apache.camel.component.avro.springboot;
 
 import javax.annotation.Generated;
-import org.apache.avro.Protocol;
-import org.apache.camel.component.avro.AvroTransport;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -91,9 +89,10 @@ public class AvroComponentConfiguration
      */
     private Boolean basicPropertyBinding = false;
     /**
-     * To use a shared AvroConfiguration to configure options once
+     * To use a shared AvroConfiguration to configure options once. The option
+     * is a org.apache.camel.component.avro.AvroConfiguration type.
      */
-    private AvroConfigurationNestedConfiguration configuration;
+    private String configuration;
 
     public String getProtocol() {
         return protocol;
@@ -167,139 +166,11 @@ public class AvroComponentConfiguration
         this.basicPropertyBinding = basicPropertyBinding;
     }
 
-    public AvroConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AvroConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
-
-    public static class AvroConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.avro.AvroConfiguration.class;
-        /**
-         * Hostname to use
-         */
-        private String host;
-        /**
-         * The name of the message to send.
-         */
-        private String messageName;
-        /**
-         * Port number to use
-         */
-        private Integer port;
-        /**
-         * Avro protocol to use
-         */
-        private Protocol protocol;
-        /**
-         * Avro protocol to use defined by the FQN class name
-         */
-        private String protocolClassName;
-        /**
-         * Avro protocol location
-         */
-        private String protocolLocation;
-        /**
-         * If protocol object provided is reflection protocol. Should be used
-         * only with protocol parameter because for protocolClassName protocol
-         * type will be auto detected
-         */
-        private Boolean reflectionProtocol = false;
-        /**
-         * If true, consumer parameter won't be wrapped into array. Will fail if
-         * protocol specifies more then 1 parameter for the message
-         */
-        private Boolean singleParameter = false;
-        /**
-         * Transport to use, can be either http or netty
-         */
-        private AvroTransport transport;
-        /**
-         * Authority to use (username and password)
-         */
-        private String uriAuthority;
-
-        public String getHost() {
-            return host;
-        }
-
-        public void setHost(String host) {
-            this.host = host;
-        }
-
-        public String getMessageName() {
-            return messageName;
-        }
-
-        public void setMessageName(String messageName) {
-            this.messageName = messageName;
-        }
-
-        public Integer getPort() {
-            return port;
-        }
-
-        public void setPort(Integer port) {
-            this.port = port;
-        }
-
-        public Protocol getProtocol() {
-            return protocol;
-        }
-
-        public void setProtocol(Protocol protocol) {
-            this.protocol = protocol;
-        }
-
-        public String getProtocolClassName() {
-            return protocolClassName;
-        }
-
-        public void setProtocolClassName(String protocolClassName) {
-            this.protocolClassName = protocolClassName;
-        }
-
-        public String getProtocolLocation() {
-            return protocolLocation;
-        }
-
-        public void setProtocolLocation(String protocolLocation) {
-            this.protocolLocation = protocolLocation;
-        }
-
-        public Boolean getReflectionProtocol() {
-            return reflectionProtocol;
-        }
-
-        public void setReflectionProtocol(Boolean reflectionProtocol) {
-            this.reflectionProtocol = reflectionProtocol;
-        }
-
-        public Boolean getSingleParameter() {
-            return singleParameter;
-        }
-
-        public void setSingleParameter(Boolean singleParameter) {
-            this.singleParameter = singleParameter;
-        }
-
-        public AvroTransport getTransport() {
-            return transport;
-        }
-
-        public void setTransport(AvroTransport transport) {
-            this.transport = transport;
-        }
-
-        public String getUriAuthority() {
-            return uriAuthority;
-        }
-
-        public void setUriAuthority(String uriAuthority) {
-            this.uriAuthority = uriAuthority;
-        }
-    }
 }
\ 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 da9b75a..8d9538a 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
@@ -17,7 +17,7 @@ When using aws-cw with Spring Boot make sure to use the following Maven dependen
 ----
 
 
-The component supports 26 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -27,18 +27,7 @@ The component supports 26 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-cw.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-cw.configuration.amazon-cw-client* | To use the AmazonCloudWatch as the client |  | AmazonCloudWatch
-| *camel.component.aws-cw.configuration.name* | The metric name |  | String
-| *camel.component.aws-cw.configuration.namespace* | The metric namespace |  | String
-| *camel.component.aws-cw.configuration.proxy-host* | To define a proxy host when instantiating the CW client |  | String
-| *camel.component.aws-cw.configuration.proxy-port* | To define a proxy port when instantiating the CW client |  | Integer
-| *camel.component.aws-cw.configuration.proxy-protocol* | To define a proxy protocol when instantiating the CW client |  | Protocol
-| *camel.component.aws-cw.configuration.region* | The region in which CW 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-cw.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-cw.configuration.timestamp* | The metric timestamp |  | Date
-| *camel.component.aws-cw.configuration.unit* | The metric unit |  | String
-| *camel.component.aws-cw.configuration.value* | The metric value |  | Double
+| *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.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/CwComponentAutoConfiguration.java b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
index bef640e..5d28836 100644
--- a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class CwComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 cd50177..a4aba1b 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,6 @@ 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -46,9 +45,10 @@ public class CwComponentConfiguration
      */
     private String amazonCwClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.cw.CwConfiguration type.
      */
-    private CwConfigurationNestedConfiguration configuration;
+    private String 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,12 +116,11 @@ public class CwComponentConfiguration
         this.amazonCwClient = amazonCwClient;
     }
 
-    public CwConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            CwConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -220,155 +219,4 @@ public class CwComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class CwConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.cw.CwConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonCloudWatch as the client
-         */
-        private AmazonCloudWatch amazonCwClient;
-        /**
-         * The metric name
-         */
-        private String name;
-        /**
-         * The metric namespace
-         */
-        private String namespace;
-        /**
-         * To define a proxy host when instantiating the CW client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the CW client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the CW client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which CW 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The metric timestamp
-         */
-        private Date timestamp;
-        /**
-         * The metric unit
-         */
-        private String unit;
-        /**
-         * The metric value
-         */
-        private Double value;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonCloudWatch getAmazonCwClient() {
-            return amazonCwClient;
-        }
-
-        public void setAmazonCwClient(AmazonCloudWatch amazonCwClient) {
-            this.amazonCwClient = amazonCwClient;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public String getNamespace() {
-            return namespace;
-        }
-
-        public void setNamespace(String namespace) {
-            this.namespace = namespace;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public Date getTimestamp() {
-            return timestamp;
-        }
-
-        public void setTimestamp(Date timestamp) {
-            this.timestamp = timestamp;
-        }
-
-        public String getUnit() {
-            return unit;
-        }
-
-        public void setUnit(String unit) {
-            this.unit = unit;
-        }
-
-        public Double getValue() {
-            return value;
-        }
-
-        public void setValue(Double value) {
-            this.value = value;
-        }
-    }
 }
\ No newline at end of file
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 fbe347c..78ade13 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
@@ -17,7 +17,7 @@ When using aws-ddb with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 54 options, which are listed below.
+The component supports 31 options, which are listed below.
 
 
 
@@ -27,20 +27,7 @@ The component supports 54 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-ddb.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ddb.configuration.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client |  | AmazonDynamoDB
-| *camel.component.aws-ddb.configuration.consistent-read* | Determines whether or not strong consistency should be enforced when data is read. | false | Boolean
-| *camel.component.aws-ddb.configuration.key-attribute-name* | Attribute name when creating table |  | String
-| *camel.component.aws-ddb.configuration.key-attribute-type* | Attribute type when creating table |  | String
-| *camel.component.aws-ddb.configuration.operation* | What operation to perform |  | DdbOperations
-| *camel.component.aws-ddb.configuration.proxy-host* | To define a proxy host when instantiating the DDB client |  | String
-| *camel.component.aws-ddb.configuration.proxy-port* | To define a proxy port when instantiating the DDB client. 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() |  | Integer
-| *camel.component.aws-ddb.configuration.proxy-protocol* | To define a proxy protocol when instantiating the DDB client |  | Protocol
-| *camel.component.aws-ddb.configuration.read-capacity* | The provisioned throughput to reserve for reading resources from your table |  | Long
-| *camel.component.aws-ddb.configuration.region* | The region in which DDB client needs to work |  | String
-| *camel.component.aws-ddb.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-ddb.configuration.table-name* | The name of the table currently worked with. |  | String
-| *camel.component.aws-ddb.configuration.write-capacity* | The provisioned throughput to reserved for writing resources to your table |  | Long
+| *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.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
@@ -58,17 +45,7 @@ The component supports 54 options, which are listed below.
 | *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.basic-property-binding* | 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.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.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ddbstream.configuration.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint |  | AmazonDynamoDBStreams
-| *camel.component.aws-ddbstream.configuration.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.configuration.max-results-per-request* | Maximum number of records that will be fetched in each poll |  | Integer
-| *camel.component.aws-ddbstream.configuration.proxy-host* | To define a proxy host when instantiating the DDBStreams client |  | String
-| *camel.component.aws-ddbstream.configuration.proxy-port* | To define a proxy port when instantiating the DDBStreams client |  | Integer
-| *camel.component.aws-ddbstream.configuration.proxy-protocol* | To define a proxy protocol when instantiating the DDBStreams client |  | Protocol
-| *camel.component.aws-ddbstream.configuration.region* | The region in which DDBStreams client needs to work |  | String
-| *camel.component.aws-ddbstream.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-ddbstream.configuration.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. |  | SequenceNumberProvider
-| *camel.component.aws-ddbstream.configuration.table-name* | Name of the dynamodb table |  | String
+| *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.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
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
index ffbf0bc..91722f7 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class DdbComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 2d81f43..848410d 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,6 @@ 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.DdbOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -47,9 +46,10 @@ public class DdbComponentConfiguration
      */
     private String amazonDDBClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.ddb.DdbConfiguration type.
      */
-    private DdbConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * Determines whether or not strong consistency should be enforced when data
      * is read.
@@ -129,12 +129,11 @@ public class DdbComponentConfiguration
         this.amazonDDBClient = amazonDDBClient;
     }
 
-    public DdbConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            DdbConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -249,182 +248,4 @@ public class DdbComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class DdbConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.ddb.DdbConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonDynamoDB as the client
-         */
-        private AmazonDynamoDB amazonDDBClient;
-        /**
-         * Determines whether or not strong consistency should be enforced when
-         * data is read.
-         */
-        private Boolean consistentRead = false;
-        /**
-         * Attribute name when creating table
-         */
-        private String keyAttributeName;
-        /**
-         * Attribute type when creating table
-         */
-        private String keyAttributeType;
-        /**
-         * What operation to perform
-         */
-        private DdbOperations operation = DdbOperations.PutItem;
-        /**
-         * To define a proxy host when instantiating the DDB client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the DDB client. 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()
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the DDB client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The provisioned throughput to reserve for reading resources from your
-         * table
-         */
-        private Long readCapacity;
-        /**
-         * The region in which DDB client needs to work
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The name of the table currently worked with.
-         */
-        private String tableName;
-        /**
-         * The provisioned throughput to reserved for writing resources to your
-         * table
-         */
-        private Long writeCapacity;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonDynamoDB getAmazonDDBClient() {
-            return amazonDDBClient;
-        }
-
-        public void setAmazonDDBClient(AmazonDynamoDB amazonDDBClient) {
-            this.amazonDDBClient = amazonDDBClient;
-        }
-
-        public Boolean getConsistentRead() {
-            return consistentRead;
-        }
-
-        public void setConsistentRead(Boolean consistentRead) {
-            this.consistentRead = consistentRead;
-        }
-
-        public String getKeyAttributeName() {
-            return keyAttributeName;
-        }
-
-        public void setKeyAttributeName(String keyAttributeName) {
-            this.keyAttributeName = keyAttributeName;
-        }
-
-        public String getKeyAttributeType() {
-            return keyAttributeType;
-        }
-
-        public void setKeyAttributeType(String keyAttributeType) {
-            this.keyAttributeType = keyAttributeType;
-        }
-
-        public DdbOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(DdbOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public Long getReadCapacity() {
-            return readCapacity;
-        }
-
-        public void setReadCapacity(Long readCapacity) {
-            this.readCapacity = readCapacity;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getTableName() {
-            return tableName;
-        }
-
-        public void setTableName(String tableName) {
-            this.tableName = tableName;
-        }
-
-        public Long getWriteCapacity() {
-            return writeCapacity;
-        }
-
-        public void setWriteCapacity(Long writeCapacity) {
-            this.writeCapacity = writeCapacity;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
index 3918d39..b5fb775 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class DdbStreamComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 9205ab1..b5bc2cf 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,10 +18,8 @@ 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.SequenceNumberProvider;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -56,9 +54,10 @@ public class DdbStreamComponentConfiguration
      */
     private Boolean bridgeErrorHandler = false;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration type.
      */
-    private DdbStreamConfigurationNestedConfiguration configuration;
+    private String 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
@@ -124,12 +123,11 @@ public class DdbStreamComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public DdbStreamConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            DdbStreamConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -212,147 +210,4 @@ public class DdbStreamComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class DdbStreamConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Amazon DynamoDB client to use for all requests for this endpoint
-         */
-        private AmazonDynamoDBStreams amazonDynamoDbStreamsClient;
-        /**
-         * 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.
-         */
-        private ShardIteratorType iteratorType = ShardIteratorType.LATEST;
-        /**
-         * Maximum number of records that will be fetched in each poll
-         */
-        private Integer maxResultsPerRequest;
-        /**
-         * To define a proxy host when instantiating the DDBStreams client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the DDBStreams client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the DDBStreams client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which DDBStreams client needs to work
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * 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.
-         */
-        private SequenceNumberProvider sequenceNumberProvider;
-        /**
-         * Name of the dynamodb table
-         */
-        private String tableName;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonDynamoDBStreams getAmazonDynamoDbStreamsClient() {
-            return amazonDynamoDbStreamsClient;
-        }
-
-        public void setAmazonDynamoDbStreamsClient(
-                AmazonDynamoDBStreams amazonDynamoDbStreamsClient) {
-            this.amazonDynamoDbStreamsClient = amazonDynamoDbStreamsClient;
-        }
-
-        public ShardIteratorType getIteratorType() {
-            return iteratorType;
-        }
-
-        public void setIteratorType(ShardIteratorType iteratorType) {
-            this.iteratorType = iteratorType;
-        }
-
-        public Integer getMaxResultsPerRequest() {
-            return maxResultsPerRequest;
-        }
-
-        public void setMaxResultsPerRequest(Integer maxResultsPerRequest) {
-            this.maxResultsPerRequest = maxResultsPerRequest;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public SequenceNumberProvider getSequenceNumberProvider() {
-            return sequenceNumberProvider;
-        }
-
-        public void setSequenceNumberProvider(
-                SequenceNumberProvider sequenceNumberProvider) {
-            this.sequenceNumberProvider = sequenceNumberProvider;
-        }
-
-        public String getTableName() {
-            return tableName;
-        }
-
-        public void setTableName(String tableName) {
-            this.tableName = tableName;
-        }
-    }
 }
\ No newline at end of file
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 be5a7b1..9325778 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
@@ -17,7 +17,7 @@ When using aws-ec2 with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 19 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-ec2.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ec2.configuration.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client |  | AmazonEC2
-| *camel.component.aws-ec2.configuration.operation* | The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags |  | EC2Operations
-| *camel.component.aws-ec2.configuration.proxy-host* | To define a proxy host when instantiating the EC2 client |  | String
-| *camel.component.aws-ec2.configuration.proxy-port* | To define a proxy port when instantiating the EC2 client |  | Integer
-| *camel.component.aws-ec2.configuration.proxy-protocol* | To define a proxy protocol when instantiating the EC2 client |  | Protocol
-| *camel.component.aws-ec2.configuration.region* | The region in which ECS 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.aws-ec2.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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/EC2ComponentAutoConfiguration.java b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
index 7276a87..83df8df 100644
--- a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class EC2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 4fa1dec..8d6cea5 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,6 @@ 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.EC2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -50,9 +49,10 @@ public class EC2ComponentConfiguration
      */
     private String amazonEc2Client;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.ec2.EC2Configuration type.
      */
-    private EC2ConfigurationNestedConfiguration configuration;
+    private String 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
@@ -115,12 +115,11 @@ public class EC2ComponentConfiguration
         this.amazonEc2Client = amazonEc2Client;
     }
 
-    public EC2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            EC2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -187,110 +186,4 @@ public class EC2ComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class EC2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.ec2.EC2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AmazonEC2Client as client
-         */
-        private AmazonEC2 amazonEc2Client;
-        /**
-         * The operation to perform. It can be createAndRunInstances,
-         * startInstances, stopInstances, terminateInstances, describeInstances,
-         * describeInstancesStatus, rebootInstances, monitorInstances,
-         * unmonitorInstances, createTags or deleteTags
-         */
-        private EC2Operations operation;
-        /**
-         * To define a proxy host when instantiating the EC2 client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the EC2 client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the EC2 client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which ECS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonEC2 getAmazonEc2Client() {
-            return amazonEc2Client;
-        }
-
-        public void setAmazonEc2Client(AmazonEC2 amazonEc2Client) {
-            this.amazonEc2Client = amazonEc2Client;
-        }
-
-        public EC2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(EC2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 1404e9b..ce616cd 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
@@ -17,7 +17,7 @@ When using aws-ecs with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-ecs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-ecs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-ecs.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ecs.configuration.ecs-client* | To use a existing configured AWS ECS as client |  | AmazonECS
-| *camel.component.aws-ecs.configuration.operation* | The operation to perform |  | ECSOperations
-| *camel.component.aws-ecs.configuration.proxy-host* | To define a proxy host when instantiating the ECS client |  | String
-| *camel.component.aws-ecs.configuration.proxy-port* | To define a proxy port when instantiating the ECS client |  | Integer
-| *camel.component.aws-ecs.configuration.proxy-protocol* | To define a proxy protocol when instantiating the ECS client |  | Protocol
-| *camel.component.aws-ecs.configuration.region* | The region in which ECS 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-ecs.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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 [...]
diff --git a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
index 683873c..5d2e8e7 100644
--- a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class ECSComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 396a1ff..13e0938 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,6 @@ 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.ECSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,9 +44,10 @@ public class ECSComponentConfiguration
      */
     private String accessKey;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.ecs.ECSConfiguration type.
      */
-    private ECSConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS ECS as client. The option is a
      * com.amazonaws.services.ecs.AmazonECS type.
@@ -104,12 +104,11 @@ public class ECSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public ECSConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            ECSConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class ECSComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class ECSConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.ecs.ECSConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS ECS as client
-         */
-        private AmazonECS ecsClient;
-        /**
-         * The operation to perform
-         */
-        private ECSOperations operation;
-        /**
-         * To define a proxy host when instantiating the ECS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the ECS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the ECS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which ECS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonECS getEcsClient() {
-            return ecsClient;
-        }
-
-        public void setEcsClient(AmazonECS ecsClient) {
-            this.ecsClient = ecsClient;
-        }
-
-        public ECSOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(ECSOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 b7dbda5..d343a71 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
@@ -17,7 +17,7 @@ When using aws-eks with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-eks.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-eks.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-eks.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-eks.configuration.eks-client* | To use a existing configured AWS EKS as client |  | AmazonEKS
-| *camel.component.aws-eks.configuration.operation* | The operation to perform |  | EKSOperations
-| *camel.component.aws-eks.configuration.proxy-host* | To define a proxy host when instantiating the EKS client |  | String
-| *camel.component.aws-eks.configuration.proxy-port* | To define a proxy port when instantiating the EKS client |  | Integer
-| *camel.component.aws-eks.configuration.proxy-protocol* | To define a proxy protocol when instantiating the EKS client |  | Protocol
-| *camel.component.aws-eks.configuration.region* | The region in which EKS 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-eks.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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 [...]
diff --git a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
index a7346a8..a643822 100644
--- a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class EKSComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 a05120b..f47ae18 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,6 @@ 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.EKSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,9 +44,10 @@ public class EKSComponentConfiguration
      */
     private String accessKey;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.eks.EKSConfiguration type.
      */
-    private EKSConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS EKS as client. The option is a
      * com.amazonaws.services.eks.AmazonEKS type.
@@ -104,12 +104,11 @@ public class EKSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public EKSConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            EKSConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class EKSComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class EKSConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.eks.EKSConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS EKS as client
-         */
-        private AmazonEKS eksClient;
-        /**
-         * The operation to perform
-         */
-        private EKSOperations operation;
-        /**
-         * To define a proxy host when instantiating the EKS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the EKS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the EKS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which EKS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonEKS getEksClient() {
-            return eksClient;
-        }
-
-        public void setEksClient(AmazonEKS eksClient) {
-            this.eksClient = eksClient;
-        }
-
-        public EKSOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(EKSOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 c015f9f..d3378b8 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
@@ -17,7 +17,7 @@ When using aws-iam with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-iam.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-iam.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-iam.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-iam.configuration.iam-client* | To use a existing configured AWS IAM as client |  | AmazonIdentityManagement
-| *camel.component.aws-iam.configuration.operation* | The operation to perform |  | IAMOperations
-| *camel.component.aws-iam.configuration.proxy-host* | To define a proxy host when instantiating the IAM client |  | String
-| *camel.component.aws-iam.configuration.proxy-port* | To define a proxy port when instantiating the IAM client |  | Integer
-| *camel.component.aws-iam.configuration.proxy-protocol* | To define a proxy protocol when instantiating the IAM client |  | Protocol
-| *camel.component.aws-iam.configuration.region* | The region in which IAM 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-iam.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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.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-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
index 2c1a237..73f23fe 100644
--- a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class IAMComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 d2d230b..1ff866e 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,6 @@ 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.IAMOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,9 +44,10 @@ public class IAMComponentConfiguration
      */
     private String accessKey;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.iam.IAMConfiguration type.
      */
-    private IAMConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS IAM as client. The option is a
      * com.amazonaws.services.identitymanagement.AmazonIdentityManagement type.
@@ -104,12 +104,11 @@ public class IAMComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public IAMConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            IAMConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class IAMComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class IAMConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.iam.IAMConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS IAM as client
-         */
-        private AmazonIdentityManagement iamClient;
-        /**
-         * The operation to perform
-         */
-        private IAMOperations operation;
-        /**
-         * To define a proxy host when instantiating the IAM client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the IAM client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the IAM client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which IAM 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonIdentityManagement getIamClient() {
-            return iamClient;
-        }
-
-        public void setIamClient(AmazonIdentityManagement iamClient) {
-            this.iamClient = iamClient;
-        }
-
-        public IAMOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(IAMOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 c0933d8..48118b9 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
@@ -17,7 +17,7 @@ When using aws-kinesis with Spring Boot make sure to use the following Maven dep
 ----
 
 
-The component supports 47 options, which are listed below.
+The component supports 28 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 47 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-kinesis-firehose.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-kinesis-firehose.configuration.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | AmazonKinesisFirehose
-| *camel.component.aws-kinesis-firehose.configuration.proxy-host* | To define a proxy host when instantiating the Kinesis Firehose client |  | String
-| *camel.component.aws-kinesis-firehose.configuration.proxy-port* | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
-| *camel.component.aws-kinesis-firehose.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Kinesis Firehose client |  | Protocol
-| *camel.component.aws-kinesis-firehose.configuration.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.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-kinesis-firehose.configuration.stream-name* | Name of the stream |  | String
+| *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.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
@@ -46,19 +39,7 @@ The component supports 47 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | 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.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-kinesis.configuration.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint |  | AmazonKinesis
-| *camel.component.aws-kinesis.configuration.iterator-type* | Defines where in the Kinesis stream to start getting records |  | ShardIteratorType
-| *camel.component.aws-kinesis.configuration.max-results-per-request* | Maximum number of records that will be fetched in each poll | 1 | Integer
-| *camel.component.aws-kinesis.configuration.proxy-host* | To define a proxy host when instantiating the Kinesis client |  | String
-| *camel.component.aws-kinesis.configuration.proxy-port* | To define a proxy port when instantiating the Kinesis client |  | Integer
-| *camel.component.aws-kinesis.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Kinesis client |  | Protocol
-| *camel.component.aws-kinesis.configuration.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.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-kinesis.configuration.sequence-number* | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
-| *camel.component.aws-kinesis.configuration.shard-closed* | Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised |  | KinesisShardClosedStrategyEnum
-| *camel.component.aws-kinesis.configuration.shard-id* | Defines which shardId in the Kinesis stream to get records from |  | String
-| *camel.component.aws-kinesis.configuration.stream-name* | Name of the stream |  | String
+| *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.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/KinesisFirehoseComponentAutoConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
index d2bfe93..977d3dd 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -84,25 +83,6 @@ public class KinesisFirehoseComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 45bfe21..9ebe437 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,6 @@ 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -47,9 +46,11 @@ public class KinesisFirehoseComponentConfiguration
      */
     private String amazonKinesisFirehoseClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration
+     * type.
      */
-    private KinesisFirehoseConfigurationNestedConfiguration configuration;
+    private String 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
@@ -103,12 +104,11 @@ public class KinesisFirehoseComponentConfiguration
         this.amazonKinesisFirehoseClient = amazonKinesisFirehoseClient;
     }
 
-    public KinesisFirehoseConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            KinesisFirehoseConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -175,110 +175,4 @@ public class KinesisFirehoseComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class KinesisFirehoseConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Amazon Kinesis Firehose client to use for all requests for this
-         * endpoint
-         */
-        private AmazonKinesisFirehose amazonKinesisFirehoseClient;
-        /**
-         * To define a proxy host when instantiating the Kinesis Firehose client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the Kinesis Firehose client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the Kinesis Firehose
-         * client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * Name of the stream
-         */
-        private String streamName;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonKinesisFirehose getAmazonKinesisFirehoseClient() {
-            return amazonKinesisFirehoseClient;
-        }
-
-        public void setAmazonKinesisFirehoseClient(
-                AmazonKinesisFirehose amazonKinesisFirehoseClient) {
-            this.amazonKinesisFirehoseClient = amazonKinesisFirehoseClient;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getStreamName() {
-            return streamName;
-        }
-
-        public void setStreamName(String streamName) {
-            this.streamName = streamName;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
index aed7017..4dd5e3a 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class KinesisComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 8abb8d5..8cc19db 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,7 +18,6 @@ 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.KinesisShardClosedStrategyEnum;
@@ -48,9 +47,10 @@ public class KinesisComponentConfiguration
      */
     private String amazonKinesisClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.kinesis.KinesisConfiguration type.
      */
-    private KinesisConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To define a proxy host when instantiating the Kinesis client
      */
@@ -137,12 +137,11 @@ public class KinesisComponentConfiguration
         this.amazonKinesisClient = amazonKinesisClient;
     }
 
-    public KinesisConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            KinesisConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -257,173 +256,4 @@ public class KinesisComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class KinesisConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.kinesis.KinesisConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Amazon Kinesis client to use for all requests for this endpoint
-         */
-        private AmazonKinesis amazonKinesisClient;
-        /**
-         * Defines where in the Kinesis stream to start getting records
-         */
-        private ShardIteratorType iteratorType = ShardIteratorType.TRIM_HORIZON;
-        /**
-         * Maximum number of records that will be fetched in each poll
-         */
-        private Integer maxResultsPerRequest = 1;
-        /**
-         * To define a proxy host when instantiating the Kinesis client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the Kinesis client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the Kinesis client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The sequence number to start polling from. Required if iteratorType
-         * is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER
-         */
-        private String sequenceNumber;
-        /**
-         * Define what will be the behavior in case of shard closed. Possible
-         * value are ignore, silent and fail. In case of ignore a message will
-         * be logged and the consumer will restart from the beginning,in case of
-         * silent there will be no logging and the consumer will start from the
-         * beginning,in case of fail a ReachedClosedStateException will be
-         * raised
-         */
-        private KinesisShardClosedStrategyEnum shardClosed = KinesisShardClosedStrategyEnum.ignore;
-        /**
-         * Defines which shardId in the Kinesis stream to get records from
-         */
-        private String shardId;
-        /**
-         * Name of the stream
-         */
-        private String streamName;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonKinesis getAmazonKinesisClient() {
-            return amazonKinesisClient;
-        }
-
-        public void setAmazonKinesisClient(AmazonKinesis amazonKinesisClient) {
-            this.amazonKinesisClient = amazonKinesisClient;
-        }
-
-        public ShardIteratorType getIteratorType() {
-            return iteratorType;
-        }
-
-        public void setIteratorType(ShardIteratorType iteratorType) {
-            this.iteratorType = iteratorType;
-        }
-
-        public Integer getMaxResultsPerRequest() {
-            return maxResultsPerRequest;
-        }
-
-        public void setMaxResultsPerRequest(Integer maxResultsPerRequest) {
-            this.maxResultsPerRequest = maxResultsPerRequest;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getSequenceNumber() {
-            return sequenceNumber;
-        }
-
-        public void setSequenceNumber(String sequenceNumber) {
-            this.sequenceNumber = sequenceNumber;
-        }
-
-        public KinesisShardClosedStrategyEnum getShardClosed() {
-            return shardClosed;
-        }
-
-        public void setShardClosed(KinesisShardClosedStrategyEnum shardClosed) {
-            this.shardClosed = shardClosed;
-        }
-
-        public String getShardId() {
-            return shardId;
-        }
-
-        public void setShardId(String shardId) {
-            this.shardId = shardId;
-        }
-
-        public String getStreamName() {
-            return streamName;
-        }
-
-        public void setStreamName(String streamName) {
-            this.streamName = streamName;
-        }
-    }
 }
\ No newline at end of file
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 afcb051..a485f50 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
@@ -17,7 +17,7 @@ When using aws-kms with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-kms.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-kms.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-kms.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-kms.configuration.kms-client* | To use a existing configured AWS KMS as client |  | AWSKMS
-| *camel.component.aws-kms.configuration.operation* | The operation to perform |  | KMSOperations
-| *camel.component.aws-kms.configuration.proxy-host* | To define a proxy host when instantiating the KMS client |  | String
-| *camel.component.aws-kms.configuration.proxy-port* | To define a proxy port when instantiating the KMS client |  | Integer
-| *camel.component.aws-kms.configuration.proxy-protocol* | To define a proxy protocol when instantiating the KMS client |  | Protocol
-| *camel.component.aws-kms.configuration.region* | The region in which KMS 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-kms.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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.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-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
index 686b21a..74e94fd 100644
--- a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class KMSComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 2c380a0..bacc6e3 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,6 @@ 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.KMSOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,9 +44,10 @@ public class KMSComponentConfiguration
      */
     private String accessKey;
     /**
-     * The Component configuration
+     * The Component configuration. The option is a
+     * org.apache.camel.component.aws.kms.KMSConfiguration type.
      */
-    private KMSConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS KMS as client. The option is a
      * com.amazonaws.services.kms.AWSKMS type.
@@ -104,12 +104,11 @@ public class KMSComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public KMSConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            KMSConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class KMSComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class KMSConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.kms.KMSConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS KMS as client
-         */
-        private AWSKMS kmsClient;
-        /**
-         * The operation to perform
-         */
-        private KMSOperations operation;
-        /**
-         * To define a proxy host when instantiating the KMS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the KMS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the KMS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which KMS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AWSKMS getKmsClient() {
-            return kmsClient;
-        }
-
-        public void setKmsClient(AWSKMS kmsClient) {
-            this.kmsClient = kmsClient;
-        }
-
-        public KMSOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(KMSOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 156baa2..7966016 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
@@ -17,7 +17,7 @@ When using aws-lambda with Spring Boot make sure to use the following Maven depe
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 19 options, which are listed below.
 | *camel.component.aws-lambda.access-key* | Amazon AWS Access Key |  | 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. |  | String
 | *camel.component.aws-lambda.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-lambda.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-lambda.configuration.aws-lambda-client* | To use a existing configured AwsLambdaClient as client |  | AWSLambda
-| *camel.component.aws-lambda.configuration.operation* | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction |  | LambdaOperations
-| *camel.component.aws-lambda.configuration.proxy-host* | To define a proxy host when instantiating the Lambda client |  | String
-| *camel.component.aws-lambda.configuration.proxy-port* | To define a proxy port when instantiating the Lambda client |  | Integer
-| *camel.component.aws-lambda.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Lambda client |  | Protocol
-| *camel.component.aws-lambda.configuration.region* | Amazon AWS Region. 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-lambda.configuration.secret-key* | Amazon AWS Secret Key |  | 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.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/LambdaComponentAutoConfiguration.java b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
index 919800f..4676f52 100644
--- a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class LambdaComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 11b689c..032cdeb 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,6 @@ 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.LambdaOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -42,9 +41,10 @@ public class LambdaComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * The AWS Lambda default configuration
+     * The AWS Lambda default configuration. The option is a
+     * org.apache.camel.component.aws.lambda.LambdaConfiguration type.
      */
-    private LambdaConfigurationNestedConfiguration configuration;
+    private String 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
@@ -98,12 +98,11 @@ public class LambdaComponentConfiguration
      */
     private String secretKey;
 
-    public LambdaConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            LambdaConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -186,107 +185,4 @@ public class LambdaComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class LambdaConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.lambda.LambdaConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AwsLambdaClient as client
-         */
-        private AWSLambda awsLambdaClient;
-        /**
-         * The operation to perform. It can be listFunctions, getFunction,
-         * createFunction, deleteFunction or invokeFunction
-         */
-        private LambdaOperations operation = LambdaOperations.invokeFunction;
-        /**
-         * To define a proxy host when instantiating the Lambda client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the Lambda client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the Lambda client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * Amazon AWS Region. 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AWSLambda getAwsLambdaClient() {
-            return awsLambdaClient;
-        }
-
-        public void setAwsLambdaClient(AWSLambda awsLambdaClient) {
-            this.awsLambdaClient = awsLambdaClient;
-        }
-
-        public LambdaOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(LambdaOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 2badbb8..ea35a55 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
@@ -17,7 +17,7 @@ When using aws-mq with Spring Boot make sure to use the following Maven dependen
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 19 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-mq.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-mq.configuration.amazon-mq-client* | To use a existing configured AmazonMQClient as client |  | AmazonMQ
-| *camel.component.aws-mq.configuration.operation* | The operation to perform. It can be listBrokers,createBroker,deleteBroker |  | MQOperations
-| *camel.component.aws-mq.configuration.proxy-host* | To define a proxy host when instantiating the MQ client |  | String
-| *camel.component.aws-mq.configuration.proxy-port* | To define a proxy port when instantiating the MQ client |  | Integer
-| *camel.component.aws-mq.configuration.proxy-protocol* | To define a proxy protocol when instantiating the MQ client |  | Protocol
-| *camel.component.aws-mq.configuration.region* | The region in which MQ 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-mq.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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/MQComponentAutoConfiguration.java b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
index 5409d6c..98755d4 100644
--- a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class MQComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 696f7b2..e4ba1d5 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,6 @@ 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.MQOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -50,9 +49,10 @@ public class MQComponentConfiguration
      */
     private String amazonMqClient;
     /**
-     * The Component configuration
+     * The Component configuration. The option is a
+     * org.apache.camel.component.aws.mq.MQConfiguration type.
      */
-    private MQConfigurationNestedConfiguration configuration;
+    private String 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,12 +112,11 @@ public class MQComponentConfiguration
         this.amazonMqClient = amazonMqClient;
     }
 
-    public MQConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            MQConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,108 +183,4 @@ public class MQComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class MQConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.mq.MQConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AmazonMQClient as client
-         */
-        private AmazonMQ amazonMqClient;
-        /**
-         * The operation to perform. It can be
-         * listBrokers,createBroker,deleteBroker
-         */
-        private MQOperations operation;
-        /**
-         * To define a proxy host when instantiating the MQ client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the MQ client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the MQ client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which MQ 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonMQ getAmazonMqClient() {
-            return amazonMqClient;
-        }
-
-        public void setAmazonMqClient(AmazonMQ amazonMqClient) {
-            this.amazonMqClient = amazonMqClient;
-        }
-
-        public MQOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(MQOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 903f6d9..b02c561 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
@@ -17,7 +17,7 @@ When using aws-msk with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-msk.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-msk.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-msk.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-msk.configuration.msk-client* | To use a existing configured AWS MSK as client |  | AWSKafka
-| *camel.component.aws-msk.configuration.operation* | The operation to perform |  | MSKOperations
-| *camel.component.aws-msk.configuration.proxy-host* | To define a proxy host when instantiating the MSK client |  | String
-| *camel.component.aws-msk.configuration.proxy-port* | To define a proxy port when instantiating the MSK client |  | Integer
-| *camel.component.aws-msk.configuration.proxy-protocol* | To define a proxy protocol when instantiating the MSK client |  | Protocol
-| *camel.component.aws-msk.configuration.region* | The region in which MSK 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-msk.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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
diff --git a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
index 1058d9a..3d9f2db 100644
--- a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class MSKComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 269d585..521bbf7 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,6 @@ 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.MSKOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -45,9 +44,10 @@ public class MSKComponentConfiguration
      */
     private String accessKey;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.msk.MSKConfiguration type.
      */
-    private MSKConfigurationNestedConfiguration configuration;
+    private String 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,12 +104,11 @@ public class MSKComponentConfiguration
         this.accessKey = accessKey;
     }
 
-    public MSKConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            MSKConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class MSKComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class MSKConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.msk.MSKConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS MSK as client
-         */
-        private AWSKafka mskClient;
-        /**
-         * The operation to perform
-         */
-        private MSKOperations operation;
-        /**
-         * To define a proxy host when instantiating the MSK client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the MSK client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the MSK client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which MSK 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AWSKafka getMskClient() {
-            return mskClient;
-        }
-
-        public void setMskClient(AWSKafka mskClient) {
-            this.mskClient = mskClient;
-        }
-
-        public MSKOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(MSKOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 3975eda..93dacdd 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
@@ -17,7 +17,7 @@ When using aws-s3 with Spring Boot make sure to use the following Maven dependen
 ----
 
 
-The component supports 71 options, which are listed below.
+The component supports 38 options, which are listed below.
 
 
 
@@ -33,40 +33,7 @@ The component supports 71 options, which are listed below.
 | *camel.component.aws-s3.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *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.accelerate-mode-enabled* | Define if Accelerate Mode enabled is true or false | false | Boolean
-| *camel.component.aws-s3.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-s3.configuration.amazon-s3-client* | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
-| *camel.component.aws-s3.configuration.auto-create-bucket* | Setting the autocreation of the bucket | true | Boolean
-| *camel.component.aws-s3.configuration.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.configuration.aws-k-m-s-key-id* | Define the id of KMS key to use in case KMS is enabled |  | String
-| *camel.component.aws-s3.configuration.bucket-name* |  |  | String
-| *camel.component.aws-s3.configuration.chunked-encoding-disabled* | Define if disabled Chunked Encoding is true or false | false | Boolean
-| *camel.component.aws-s3.configuration.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, [...]
-| *camel.component.aws-s3.configuration.delete-after-write* | Delete file object after the S3 file has been uploaded | false | Boolean
-| *camel.component.aws-s3.configuration.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.configuration.dualstack-enabled* | Define if Dualstack enabled is true or false | false | Boolean
-| *camel.component.aws-s3.configuration.encryption-materials* | The encryption materials to use in case of Symmetric/Asymmetric client usage |  | EncryptionMaterials
-| *camel.component.aws-s3.configuration.file-name* | To get the object from the bucket with the given file name |  | String
-| *camel.component.aws-s3.configuration.force-global-bucket-access-enabled* | Define if Force Global Bucket Access enabled is true or false | false | Boolean
-| *camel.component.aws-s3.configuration.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. | [...]
-| *camel.component.aws-s3.configuration.key-name* | Setting the key name for an element in the bucket through endpoint parameter |  | String
-| *camel.component.aws-s3.configuration.multi-part-upload* | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | Boolean
-| *camel.component.aws-s3.configuration.operation* | The operation to do in case the user don't want to do only an upload |  | S3Operations
-| *camel.component.aws-s3.configuration.part-size* | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | Long
-| *camel.component.aws-s3.configuration.path-style-access* | Whether or not the S3 client should use path style access | false | Boolean
-| *camel.component.aws-s3.configuration.payload-signing-enabled* | Define if Payload Signing enabled is true or false | false | Boolean
-| *camel.component.aws-s3.configuration.policy* | The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
-| *camel.component.aws-s3.configuration.prefix* | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
-| *camel.component.aws-s3.configuration.proxy-host* | To define a proxy host when instantiating the SQS client |  | String
-| *camel.component.aws-s3.configuration.proxy-port* | Specify a proxy port to be used inside the client definition. |  | Integer
-| *camel.component.aws-s3.configuration.proxy-protocol* | To define a proxy protocol when instantiating the S3 client |  | Protocol
-| *camel.component.aws-s3.configuration.region* | The region in which S3 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-s3.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-s3.configuration.server-side-encryption* | Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256. |  | String
-| *camel.component.aws-s3.configuration.storage-class* | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
-| *camel.component.aws-s3.configuration.use-aws-k-m-s* | Define if KMS must be used or not | false | Boolean
-| *camel.component.aws-s3.configuration.use-encryption* | Define if encryption must be used or not | false | Boolean
-| *camel.component.aws-s3.configuration.use-i-a-m-credentials* | Set whether the S3 client should expect to load credentials on an EC2 instance or to expect static credentials to be passed in. | 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.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
diff --git a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
index 8cc8045..c1fb46f 100644
--- a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class S3ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 6f8fb62..b5ccbe6 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,8 +18,6 @@ package org.apache.camel.component.aws.s3.springboot;
 
 import javax.annotation.Generated;
 import com.amazonaws.Protocol;
-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.S3Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -52,9 +50,10 @@ public class S3ComponentConfiguration
      */
     private Boolean autoCreateBucket = true;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.s3.S3Configuration type.
      */
-    private S3ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * Whether or not the S3 client should use path style access
      */
@@ -253,12 +252,11 @@ public class S3ComponentConfiguration
         this.autoCreateBucket = autoCreateBucket;
     }
 
-    public S3ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            S3ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -534,447 +532,4 @@ public class S3ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class S3ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.s3.S3Configuration.class;
-        /**
-         * Define if Accelerate Mode enabled is true or false
-         */
-        private Boolean accelerateModeEnabled = false;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Reference to a com.amazonaws.services.s3.AmazonS3 in the registry.
-         */
-        private AmazonS3 amazonS3Client;
-        /**
-         * Setting the autocreation of the bucket
-         */
-        private Boolean autoCreateBucket = true;
-        /**
-         * 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.
-         */
-        private Boolean autocloseBody = true;
-        /**
-         * Define the id of KMS key to use in case KMS is enabled
-         */
-        private String awsKMSKeyId;
-        private String bucketName;
-        /**
-         * Define if disabled Chunked Encoding is true or false
-         */
-        private Boolean chunkedEncodingDisabled = false;
-        /**
-         * 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 S3Constants#KEY header.
-         */
-        private Boolean deleteAfterRead = true;
-        /**
-         * Delete file object after the S3 file has been uploaded
-         */
-        private Boolean deleteAfterWrite = false;
-        /**
-         * The delimiter which is used in the
-         * com.amazonaws.services.s3.model.ListObjectsRequest to only consume
-         * objects we are interested in.
-         */
-        private String delimiter;
-        /**
-         * Define if Dualstack enabled is true or false
-         */
-        private Boolean dualstackEnabled = false;
-        /**
-         * The encryption materials to use in case of Symmetric/Asymmetric
-         * client usage
-         */
-        private EncryptionMaterials encryptionMaterials;
-        /**
-         * To get the object from the bucket with the given file name
-         */
-        private String fileName;
-        /**
-         * Define if Force Global Bucket Access enabled is true or false
-         */
-        private Boolean forceGlobalBucketAccessEnabled = false;
-        /**
-         * 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.
-         */
-        private Boolean includeBody = true;
-        /**
-         * Setting the key name for an element in the bucket through endpoint
-         * parameter
-         */
-        private String keyName;
-        /**
-         * If it is true, camel will upload the file with multi part format, the
-         * part size is decided by the option of partSize
-         */
-        private Boolean multiPartUpload = false;
-        /**
-         * The operation to do in case the user don't want to do only an upload
-         */
-        private S3Operations operation;
-        /**
-         * Setup the partSize which is used in multi part upload, the default
-         * size is 25M.
-         */
-        private Long partSize = 26214400L;
-        /**
-         * Whether or not the S3 client should use path style access
-         */
-        private Boolean pathStyleAccess = false;
-        /**
-         * Define if Payload Signing enabled is true or false
-         */
-        private Boolean payloadSigningEnabled = false;
-        /**
-         * The policy for this queue to set in the
-         * com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method.
-         */
-        private String policy;
-        /**
-         * The prefix which is used in the
-         * com.amazonaws.services.s3.model.ListObjectsRequest to only consume
-         * objects we are interested in.
-         */
-        private String prefix;
-        /**
-         * To define a proxy host when instantiating the SQS client
-         */
-        private String proxyHost;
-        /**
-         * Specify a proxy port to be used inside the client definition.
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the S3 client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which S3 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * Sets the server-side encryption algorithm when encrypting the object
-         * using AWS-managed keys. For example use AES256.
-         */
-        private String serverSideEncryption;
-        /**
-         * The storage class to set in the
-         * com.amazonaws.services.s3.model.PutObjectRequest request.
-         */
-        private String storageClass;
-        /**
-         * Define if KMS must be used or not
-         */
-        private Boolean useAwsKMS = false;
-        /**
-         * Define if encryption must be used or not
-         */
-        private Boolean useEncryption = false;
-        /**
-         * Set whether the S3 client should expect to load credentials on an EC2
-         * instance or to expect static credentials to be passed in.
-         */
-        private Boolean useIAMCredentials = false;
-
-        public Boolean getAccelerateModeEnabled() {
-            return accelerateModeEnabled;
-        }
-
-        public void setAccelerateModeEnabled(Boolean accelerateModeEnabled) {
-            this.accelerateModeEnabled = accelerateModeEnabled;
-        }
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonS3 getAmazonS3Client() {
-            return amazonS3Client;
-        }
-
-        public void setAmazonS3Client(AmazonS3 amazonS3Client) {
-            this.amazonS3Client = amazonS3Client;
-        }
-
-        public Boolean getAutoCreateBucket() {
-            return autoCreateBucket;
-        }
-
-        public void setAutoCreateBucket(Boolean autoCreateBucket) {
-            this.autoCreateBucket = autoCreateBucket;
-        }
-
-        public Boolean getAutocloseBody() {
-            return autocloseBody;
-        }
-
-        public void setAutocloseBody(Boolean autocloseBody) {
-            this.autocloseBody = autocloseBody;
-        }
-
-        public String getAwsKMSKeyId() {
-            return awsKMSKeyId;
-        }
-
-        public void setAwsKMSKeyId(String awsKMSKeyId) {
-            this.awsKMSKeyId = awsKMSKeyId;
-        }
-
-        public String getBucketName() {
-            return bucketName;
-        }
-
-        public void setBucketName(String bucketName) {
-            this.bucketName = bucketName;
-        }
-
-        public Boolean getChunkedEncodingDisabled() {
-            return chunkedEncodingDisabled;
-        }
-
-        public void setChunkedEncodingDisabled(Boolean chunkedEncodingDisabled) {
-            this.chunkedEncodingDisabled = chunkedEncodingDisabled;
-        }
-
-        public Boolean getDeleteAfterRead() {
-            return deleteAfterRead;
-        }
-
-        public void setDeleteAfterRead(Boolean deleteAfterRead) {
-            this.deleteAfterRead = deleteAfterRead;
-        }
-
-        public Boolean getDeleteAfterWrite() {
-            return deleteAfterWrite;
-        }
-
-        public void setDeleteAfterWrite(Boolean deleteAfterWrite) {
-            this.deleteAfterWrite = deleteAfterWrite;
-        }
-
-        public String getDelimiter() {
-            return delimiter;
-        }
-
-        public void setDelimiter(String delimiter) {
-            this.delimiter = delimiter;
-        }
-
-        public Boolean getDualstackEnabled() {
-            return dualstackEnabled;
-        }
-
-        public void setDualstackEnabled(Boolean dualstackEnabled) {
-            this.dualstackEnabled = dualstackEnabled;
-        }
-
-        public EncryptionMaterials getEncryptionMaterials() {
-            return encryptionMaterials;
-        }
-
-        public void setEncryptionMaterials(
-                EncryptionMaterials encryptionMaterials) {
-            this.encryptionMaterials = encryptionMaterials;
-        }
-
-        public String getFileName() {
-            return fileName;
-        }
-
-        public void setFileName(String fileName) {
-            this.fileName = fileName;
-        }
-
-        public Boolean getForceGlobalBucketAccessEnabled() {
-            return forceGlobalBucketAccessEnabled;
-        }
-
-        public void setForceGlobalBucketAccessEnabled(
-                Boolean forceGlobalBucketAccessEnabled) {
-            this.forceGlobalBucketAccessEnabled = forceGlobalBucketAccessEnabled;
-        }
-
-        public Boolean getIncludeBody() {
-            return includeBody;
-        }
-
-        public void setIncludeBody(Boolean includeBody) {
-            this.includeBody = includeBody;
-        }
-
-        public String getKeyName() {
-            return keyName;
-        }
-
-        public void setKeyName(String keyName) {
-            this.keyName = keyName;
-        }
-
-        public Boolean getMultiPartUpload() {
-            return multiPartUpload;
-        }
-
-        public void setMultiPartUpload(Boolean multiPartUpload) {
-            this.multiPartUpload = multiPartUpload;
-        }
-
-        public S3Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(S3Operations operation) {
-            this.operation = operation;
-        }
-
-        public Long getPartSize() {
-            return partSize;
-        }
-
-        public void setPartSize(Long partSize) {
-            this.partSize = partSize;
-        }
-
-        public Boolean getPathStyleAccess() {
-            return pathStyleAccess;
-        }
-
-        public void setPathStyleAccess(Boolean pathStyleAccess) {
-            this.pathStyleAccess = pathStyleAccess;
-        }
-
-        public Boolean getPayloadSigningEnabled() {
-            return payloadSigningEnabled;
-        }
-
-        public void setPayloadSigningEnabled(Boolean payloadSigningEnabled) {
-            this.payloadSigningEnabled = payloadSigningEnabled;
-        }
-
-        public String getPolicy() {
-            return policy;
-        }
-
-        public void setPolicy(String policy) {
-            this.policy = policy;
-        }
-
-        public String getPrefix() {
-            return prefix;
-        }
-
-        public void setPrefix(String prefix) {
-            this.prefix = prefix;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getServerSideEncryption() {
-            return serverSideEncryption;
-        }
-
-        public void setServerSideEncryption(String serverSideEncryption) {
-            this.serverSideEncryption = serverSideEncryption;
-        }
-
-        public String getStorageClass() {
-            return storageClass;
-        }
-
-        public void setStorageClass(String storageClass) {
-            this.storageClass = storageClass;
-        }
-
-        public Boolean getUseAwsKMS() {
-            return useAwsKMS;
-        }
-
-        public void setUseAwsKMS(Boolean useAwsKMS) {
-            this.useAwsKMS = useAwsKMS;
-        }
-
-        public Boolean getUseEncryption() {
-            return useEncryption;
-        }
-
-        public void setUseEncryption(Boolean useEncryption) {
-            this.useEncryption = useEncryption;
-        }
-
-        public Boolean getUseIAMCredentials() {
-            return useIAMCredentials;
-        }
-
-        public void setUseIAMCredentials(Boolean useIAMCredentials) {
-            this.useIAMCredentials = useIAMCredentials;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java b/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
index c5fe373..42a2a98 100644
--- a/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class SdbComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 72ae938..663ee36 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
@@ -17,7 +17,7 @@ When using aws-ses with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 26 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -27,18 +27,7 @@ The component supports 26 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-ses.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-ses.configuration.amazon-s-e-s-client* | To use the AmazonSimpleEmailService as the client |  | AmazonSimpleEmailService
-| *camel.component.aws-ses.configuration.from* | The sender's email address. |  | String
-| *camel.component.aws-ses.configuration.proxy-host* | To define a proxy host when instantiating the SES client |  | String
-| *camel.component.aws-ses.configuration.proxy-port* | To define a proxy port when instantiating the SES client |  | Integer
-| *camel.component.aws-ses.configuration.proxy-protocol* | To define a proxy protocol when instantiating the SES client |  | Protocol
-| *camel.component.aws-ses.configuration.region* | The region in which SES 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-ses.configuration.reply-to-addresses* | List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header. |  | List
-| *camel.component.aws-ses.configuration.return-path* | The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header. |  | String
-| *camel.component.aws-ses.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-ses.configuration.subject* | The subject which is used if the message header 'CamelAwsSesSubject' is not present. |  | String
-| *camel.component.aws-ses.configuration.to* | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
+| *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.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/SesComponentAutoConfiguration.java b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
index 6c431ff..c675350 100644
--- a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class SesComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 07e1087..2e1fac5 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,6 @@ 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -46,9 +45,10 @@ public class SesComponentConfiguration
      */
     private String amazonSESClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.ses.SesConfiguration type.
      */
-    private SesConfigurationNestedConfiguration configuration;
+    private String 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,12 +120,11 @@ public class SesComponentConfiguration
         this.amazonSESClient = amazonSESClient;
     }
 
-    public SesConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            SesConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -224,159 +223,4 @@ public class SesComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class SesConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.ses.SesConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonSimpleEmailService as the client
-         */
-        private AmazonSimpleEmailService amazonSESClient;
-        /**
-         * The sender's email address.
-         */
-        private String from;
-        /**
-         * To define a proxy host when instantiating the SES client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the SES client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the SES client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which SES 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()
-         */
-        private String region;
-        /**
-         * List of reply-to email address(es) for the message, override it using
-         * 'CamelAwsSesReplyToAddresses' header.
-         */
-        private List replyToAddresses;
-        /**
-         * The email address to which bounce notifications are to be forwarded,
-         * override it using 'CamelAwsSesReturnPath' header.
-         */
-        private String returnPath;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The subject which is used if the message header 'CamelAwsSesSubject'
-         * is not present.
-         */
-        private String subject;
-        /**
-         * List of destination email address. Can be overriden with
-         * 'CamelAwsSesTo' header.
-         */
-        private List to;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonSimpleEmailService getAmazonSESClient() {
-            return amazonSESClient;
-        }
-
-        public void setAmazonSESClient(AmazonSimpleEmailService amazonSESClient) {
-            this.amazonSESClient = amazonSESClient;
-        }
-
-        public String getFrom() {
-            return from;
-        }
-
-        public void setFrom(String from) {
-            this.from = from;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public List getReplyToAddresses() {
-            return replyToAddresses;
-        }
-
-        public void setReplyToAddresses(List replyToAddresses) {
-            this.replyToAddresses = replyToAddresses;
-        }
-
-        public String getReturnPath() {
-            return returnPath;
-        }
-
-        public void setReturnPath(String returnPath) {
-            this.returnPath = returnPath;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getSubject() {
-            return subject;
-        }
-
-        public void setSubject(String subject) {
-            this.subject = subject;
-        }
-
-        public List getTo() {
-            return to;
-        }
-
-        public void setTo(List to) {
-            this.to = to;
-        }
-    }
 }
\ No newline at end of file
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 5f43a61..fd7177f 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
@@ -17,7 +17,7 @@ When using aws-sns with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 37 options, which are listed below.
+The component supports 20 options, which are listed below.
 
 
 
@@ -29,24 +29,7 @@ The component supports 37 options, which are listed below.
 | *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.auto-create-topic* | Setting the autocreation of the topic | true | Boolean
 | *camel.component.aws-sns.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-sns.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-sns.configuration.amazon-s-n-s-client* | To use the AmazonSNS as the client |  | AmazonSNS
-| *camel.component.aws-sns.configuration.amazon-s-q-s-client* | An SQS Client to use as bridge between SNS and SQS |  | AmazonSQS
-| *camel.component.aws-sns.configuration.auto-create-topic* | Setting the autocreation of the topic | true | Boolean
-| *camel.component.aws-sns.configuration.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.configuration.message-structure* | The message structure to use such as json |  | String
-| *camel.component.aws-sns.configuration.policy* | The policy for this queue |  | String
-| *camel.component.aws-sns.configuration.proxy-host* | To define a proxy host when instantiating the SNS client |  | String
-| *camel.component.aws-sns.configuration.proxy-port* | To define a proxy port when instantiating the SNS client |  | Integer
-| *camel.component.aws-sns.configuration.proxy-protocol* | To define a proxy protocol when instantiating the SNS client |  | Protocol
-| *camel.component.aws-sns.configuration.queue-url* | The queueUrl to subscribe to |  | String
-| *camel.component.aws-sns.configuration.region* | The region in which SNS 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-sns.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-sns.configuration.server-side-encryption-enabled* | Define if Server Side Encryption is enabled or not on the topic | false | Boolean
-| *camel.component.aws-sns.configuration.subject* | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |  | String
-| *camel.component.aws-sns.configuration.subscribe-s-n-sto-s-q-s* | Define if the subscription between SNS Topic and SQS must be done or not | false | Boolean
-| *camel.component.aws-sns.configuration.topic-arn* |  |  | String
-| *camel.component.aws-sns.configuration.topic-name* |  |  | String
+| *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.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/SnsComponentAutoConfiguration.java b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
index 9c9ec4c..6c05ed8 100644
--- a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class SnsComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 84c37ed..801a172 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,8 +18,6 @@ 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -56,9 +54,10 @@ public class SnsComponentConfiguration
      */
     private Boolean autoCreateTopic = true;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.sns.SnsConfiguration type.
      */
-    private SnsConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a
      * custom CMK.
@@ -156,12 +155,11 @@ public class SnsComponentConfiguration
         this.autoCreateTopic = autoCreateTopic;
     }
 
-    public SnsConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            SnsConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -285,225 +283,4 @@ public class SnsComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class SnsConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.sns.SnsConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonSNS as the client
-         */
-        private AmazonSNS amazonSNSClient;
-        /**
-         * An SQS Client to use as bridge between SNS and SQS
-         */
-        private AmazonSQS amazonSQSClient;
-        /**
-         * Setting the autocreation of the topic
-         */
-        private Boolean autoCreateTopic = true;
-        /**
-         * The ID of an AWS-managed customer master key (CMK) for Amazon SNS or
-         * a custom CMK.
-         */
-        private String kmsMasterKeyId;
-        /**
-         * The message structure to use such as json
-         */
-        private String messageStructure;
-        /**
-         * The policy for this queue
-         */
-        private String policy;
-        /**
-         * To define a proxy host when instantiating the SNS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the SNS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the SNS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The queueUrl to subscribe to
-         */
-        private String queueUrl;
-        /**
-         * The region in which SNS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * Define if Server Side Encryption is enabled or not on the topic
-         */
-        private Boolean serverSideEncryptionEnabled = false;
-        /**
-         * The subject which is used if the message header 'CamelAwsSnsSubject'
-         * is not present.
-         */
-        private String subject;
-        /**
-         * Define if the subscription between SNS Topic and SQS must be done or
-         * not
-         */
-        private Boolean subscribeSNStoSQS = false;
-        private String topicArn;
-        private String topicName;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public AmazonSNS getAmazonSNSClient() {
-            return amazonSNSClient;
-        }
-
-        public void setAmazonSNSClient(AmazonSNS amazonSNSClient) {
-            this.amazonSNSClient = amazonSNSClient;
-        }
-
-        public AmazonSQS getAmazonSQSClient() {
-            return amazonSQSClient;
-        }
-
-        public void setAmazonSQSClient(AmazonSQS amazonSQSClient) {
-            this.amazonSQSClient = amazonSQSClient;
-        }
-
-        public Boolean getAutoCreateTopic() {
-            return autoCreateTopic;
-        }
-
-        public void setAutoCreateTopic(Boolean autoCreateTopic) {
-            this.autoCreateTopic = autoCreateTopic;
-        }
-
-        public String getKmsMasterKeyId() {
-            return kmsMasterKeyId;
-        }
-
-        public void setKmsMasterKeyId(String kmsMasterKeyId) {
-            this.kmsMasterKeyId = kmsMasterKeyId;
-        }
-
-        public String getMessageStructure() {
-            return messageStructure;
-        }
-
-        public void setMessageStructure(String messageStructure) {
-            this.messageStructure = messageStructure;
-        }
-
-        public String getPolicy() {
-            return policy;
-        }
-
-        public void setPolicy(String policy) {
-            this.policy = policy;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getQueueUrl() {
-            return queueUrl;
-        }
-
-        public void setQueueUrl(String queueUrl) {
-            this.queueUrl = queueUrl;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public Boolean getServerSideEncryptionEnabled() {
-            return serverSideEncryptionEnabled;
-        }
-
-        public void setServerSideEncryptionEnabled(
-                Boolean serverSideEncryptionEnabled) {
-            this.serverSideEncryptionEnabled = serverSideEncryptionEnabled;
-        }
-
-        public String getSubject() {
-            return subject;
-        }
-
-        public void setSubject(String subject) {
-            this.subject = subject;
-        }
-
-        public Boolean getSubscribeSNStoSQS() {
-            return subscribeSNStoSQS;
-        }
-
-        public void setSubscribeSNStoSQS(Boolean subscribeSNStoSQS) {
-            this.subscribeSNStoSQS = subscribeSNStoSQS;
-        }
-
-        public String getTopicArn() {
-            return topicArn;
-        }
-
-        public void setTopicArn(String topicArn) {
-            this.topicArn = topicArn;
-        }
-
-        public String getTopicName() {
-            return topicName;
-        }
-
-        public void setTopicName(String topicName) {
-            this.topicName = topicName;
-        }
-    }
 }
\ No newline at end of file
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 99535aa..ca108b0 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
@@ -17,7 +17,7 @@ When using aws-sqs with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 73 options, which are listed below.
+The component supports 39 options, which are listed below.
 
 
 
@@ -32,41 +32,7 @@ The component supports 73 options, which are listed below.
 | *camel.component.aws-sqs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | 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.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-sqs.configuration.amazon-a-w-s-host* | The hostname of the Amazon AWS cloud. | amazonaws.com | String
-| *camel.component.aws-sqs.configuration.amazon-s-q-s-client* | To use the AmazonSQS as client |  | AmazonSQS
-| *camel.component.aws-sqs.configuration.attribute-names* | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
-| *camel.component.aws-sqs.configuration.auto-create-queue* | Setting the autocreation of the queue | true | Boolean
-| *camel.component.aws-sqs.configuration.concurrent-consumers* | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | Integer
-| *camel.component.aws-sqs.configuration.default-visibility-timeout* | The default visibility timeout (in seconds) |  | Integer
-| *camel.component.aws-sqs.configuration.delay-queue* | Define if you want to apply delaySeconds option to the queue or on single messages | false | Boolean
-| *camel.component.aws-sqs.configuration.delay-seconds* | Delay sending messages for a number of seconds. |  | Integer
-| *camel.component.aws-sqs.configuration.delete-after-read* | Delete message from SQS after it has been read | true | Boolean
-| *camel.component.aws-sqs.configuration.delete-if-filtered* | Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter. If 'false' and exchange does not make it through a Camel filter upstream in the route, then don't send DeleteMessage. | true | Boolean
-| *camel.component.aws-sqs.configuration.extend-message-visibility* | If enabled then a scheduled background task will keep extending the message visibility on SQS. This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set. See details at Amazon docs. | false | Boolean
-| *camel.component.aws-sqs.configuration.kms-data-key-reuse-period-seconds* | The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). |  | Integer
-| *camel.component.aws-sqs.configuration.kms-master-key-id* | The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. |  | String
-| *camel.component.aws-sqs.configuration.maximum-message-size* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. |  | Integer
-| *camel.component.aws-sqs.configuration.message-attribute-names* | A list of message attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
-| *camel.component.aws-sqs.configuration.message-deduplication-id-strategy* | Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. |  | MessageDeduplicationIdStrategy
-| *camel.component.aws-sqs.configuration.message-group-id-strategy* | Only for FIFO queues. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. |  | MessageGroupIdStrategy
-| *camel.component.aws-sqs.configuration.message-retention-period* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. |  | Integer
-| *camel.component.aws-sqs.configuration.operation* | The operation to do in case the user don't want to send only a message |  | SqsOperations
-| *camel.component.aws-sqs.configuration.policy* | The policy for this queue |  | String
-| *camel.component.aws-sqs.configuration.protocol* | The underlying protocol used to communicate with SQS | https | String
-| *camel.component.aws-sqs.configuration.proxy-host* | To define a proxy host when instantiating the SQS client |  | String
-| *camel.component.aws-sqs.configuration.proxy-port* | To define a proxy port when instantiating the SQS client |  | Integer
-| *camel.component.aws-sqs.configuration.proxy-protocol* | To define a proxy protocol when instantiating the SQS client |  | Protocol
-| *camel.component.aws-sqs.configuration.queue-name* |  |  | String
-| *camel.component.aws-sqs.configuration.queue-owner-a-w-s-account-id* | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
-| *camel.component.aws-sqs.configuration.queue-url* | To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes. |  | String
-| *camel.component.aws-sqs.configuration.receive-message-wait-time-seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. |  | Integer
-| *camel.component.aws-sqs.configuration.redrive-policy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. |  | String
-| *camel.component.aws-sqs.configuration.region* | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. 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-sqs.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-sqs.configuration.server-side-encryption-enabled* | Define if Server Side Encryption is enabled or not on the queue | false | Boolean
-| *camel.component.aws-sqs.configuration.visibility-timeout* | The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only make sense if its different from defaultVisibilityTimeout. It changes the queue visibility timeout attribute permanently. |  | Integer
-| *camel.component.aws-sqs.configuration.wait-time-seconds* | Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response. |  | 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.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/SqsComponentAutoConfiguration.java b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
index c47bfcd..5669e45 100644
--- a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class SqsComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 fa0aee5..5d02a02 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,9 +18,6 @@ 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.MessageDeduplicationIdStrategy;
-import org.apache.camel.component.aws.sqs.MessageGroupIdStrategy;
 import org.apache.camel.component.aws.sqs.SqsComponent;
 import org.apache.camel.component.aws.sqs.SqsOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -57,9 +54,10 @@ public class SqsComponentConfiguration
      */
     private Boolean autoCreateQueue = true;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.sqs.SqsConfiguration type.
      */
-    private SqsConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * The underlying protocol used to communicate with SQS
      */
@@ -270,12 +268,11 @@ public class SqsComponentConfiguration
         this.autoCreateQueue = autoCreateQueue;
     }
 
-    public SqsConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            SqsConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -554,470 +551,4 @@ public class SqsComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class SqsConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.sqs.SqsConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * The hostname of the Amazon AWS cloud.
-         */
-        private String amazonAWSHost = "amazonaws.com";
-        /**
-         * To use the AmazonSQS as client
-         */
-        private AmazonSQS amazonSQSClient;
-        /**
-         * A list of attribute names to receive when consuming. Multiple names
-         * can be separated by comma.
-         */
-        private String attributeNames;
-        /**
-         * Setting the autocreation of the queue
-         */
-        private Boolean autoCreateQueue = true;
-        /**
-         * Allows you to use multiple threads to poll the sqs queue to increase
-         * throughput
-         */
-        private Integer concurrentConsumers = 1;
-        /**
-         * The default visibility timeout (in seconds)
-         */
-        private Integer defaultVisibilityTimeout;
-        /**
-         * Define if you want to apply delaySeconds option to the queue or on
-         * single messages
-         */
-        private Boolean delayQueue = false;
-        /**
-         * Delay sending messages for a number of seconds.
-         */
-        private Integer delaySeconds;
-        /**
-         * Delete message from SQS after it has been read
-         */
-        private Boolean deleteAfterRead = true;
-        /**
-         * Whether or not to send the DeleteMessage to the SQS queue if an
-         * exchange fails to get through a filter. If 'false' and exchange does
-         * not make it through a Camel filter upstream in the route, then don't
-         * send DeleteMessage.
-         */
-        private Boolean deleteIfFiltered = true;
-        /**
-         * If enabled then a scheduled background task will keep extending the
-         * message visibility on SQS. This is needed if it takes a long time to
-         * process the message. If set to true defaultVisibilityTimeout must be
-         * set. See details at Amazon docs.
-         */
-        private Boolean extendMessageVisibility = false;
-        /**
-         * The length of time, in seconds, for which Amazon SQS can reuse a data
-         * key to encrypt or decrypt messages before calling AWS KMS again. An
-         * integer representing seconds, between 60 seconds (1 minute) and
-         * 86,400 seconds (24 hours). Default: 300 (5 minutes).
-         */
-        private Integer kmsDataKeyReusePeriodSeconds;
-        /**
-         * The ID of an AWS-managed customer master key (CMK) for Amazon SQS or
-         * a custom CMK.
-         */
-        private String kmsMasterKeyId;
-        /**
-         * The maximumMessageSize (in bytes) an SQS message can contain for this
-         * queue.
-         */
-        private Integer maximumMessageSize;
-        /**
-         * A list of message attribute names to receive when consuming. Multiple
-         * names can be separated by comma.
-         */
-        private String messageAttributeNames;
-        /**
-         * Only for FIFO queues. Strategy for setting the messageDeduplicationId
-         * on the message. Can be one of the following options: useExchangeId,
-         * useContentBasedDeduplication. For the useContentBasedDeduplication
-         * option, no messageDeduplicationId will be set on the message.
-         */
-        private MessageDeduplicationIdStrategy messageDeduplicationIdStrategy;
-        /**
-         * Only for FIFO queues. Strategy for setting the messageGroupId on the
-         * message. Can be one of the following options: useConstant,
-         * useExchangeId, usePropertyValue. For the usePropertyValue option, the
-         * value of property CamelAwsMessageGroupId will be used.
-         */
-        private MessageGroupIdStrategy messageGroupIdStrategy;
-        /**
-         * The messageRetentionPeriod (in seconds) a message will be retained by
-         * SQS for this queue.
-         */
-        private Integer messageRetentionPeriod;
-        /**
-         * The operation to do in case the user don't want to send only a
-         * message
-         */
-        private SqsOperations operation;
-        /**
-         * The policy for this queue
-         */
-        private String policy;
-        /**
-         * The underlying protocol used to communicate with SQS
-         */
-        private String protocol = "https";
-        /**
-         * To define a proxy host when instantiating the SQS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the SQS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the SQS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        private String queueName;
-        /**
-         * Specify the queue owner aws account id when you need to connect the
-         * queue with different account owner.
-         */
-        private String queueOwnerAWSAccountId;
-        /**
-         * To define the queueUrl explicitly. All other parameters, which would
-         * influence the queueUrl, are ignored. This parameter is intended to be
-         * used, to connect to a mock implementation of SQS, for testing
-         * purposes.
-         */
-        private String queueUrl;
-        /**
-         * If you do not specify WaitTimeSeconds in the request, the queue
-         * attribute ReceiveMessageWaitTimeSeconds is used to determine how long
-         * to wait.
-         */
-        private Integer receiveMessageWaitTimeSeconds;
-        /**
-         * Specify the policy that send message to DeadLetter queue. See detail
-         * at Amazon docs.
-         */
-        private String redrivePolicy;
-        /**
-         * Specify the queue region which could be used with
-         * queueOwnerAWSAccountId to build the service URL. 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * Define if Server Side Encryption is enabled or not on the queue
-         */
-        private Boolean serverSideEncryptionEnabled = false;
-        /**
-         * The duration (in seconds) that the received messages are hidden from
-         * subsequent retrieve requests after being retrieved by a
-         * ReceiveMessage request to set in the
-         * com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only
-         * make sense if its different from defaultVisibilityTimeout. It changes
-         * the queue visibility timeout attribute permanently.
-         */
-        private Integer visibilityTimeout;
-        /**
-         * Duration in seconds (0 to 20) that the ReceiveMessage action call
-         * will wait until a message is in the queue to include in the response.
-         */
-        private Integer waitTimeSeconds;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public String getAmazonAWSHost() {
-            return amazonAWSHost;
-        }
-
-        public void setAmazonAWSHost(String amazonAWSHost) {
-            this.amazonAWSHost = amazonAWSHost;
-        }
-
-        public AmazonSQS getAmazonSQSClient() {
-            return amazonSQSClient;
-        }
-
-        public void setAmazonSQSClient(AmazonSQS amazonSQSClient) {
-            this.amazonSQSClient = amazonSQSClient;
-        }
-
-        public String getAttributeNames() {
-            return attributeNames;
-        }
-
-        public void setAttributeNames(String attributeNames) {
-            this.attributeNames = attributeNames;
-        }
-
-        public Boolean getAutoCreateQueue() {
-            return autoCreateQueue;
-        }
-
-        public void setAutoCreateQueue(Boolean autoCreateQueue) {
-            this.autoCreateQueue = autoCreateQueue;
-        }
-
-        public Integer getConcurrentConsumers() {
-            return concurrentConsumers;
-        }
-
-        public void setConcurrentConsumers(Integer concurrentConsumers) {
-            this.concurrentConsumers = concurrentConsumers;
-        }
-
-        public Integer getDefaultVisibilityTimeout() {
-            return defaultVisibilityTimeout;
-        }
-
-        public void setDefaultVisibilityTimeout(Integer defaultVisibilityTimeout) {
-            this.defaultVisibilityTimeout = defaultVisibilityTimeout;
-        }
-
-        public Boolean getDelayQueue() {
-            return delayQueue;
-        }
-
-        public void setDelayQueue(Boolean delayQueue) {
-            this.delayQueue = delayQueue;
-        }
-
-        public Integer getDelaySeconds() {
-            return delaySeconds;
-        }
-
-        public void setDelaySeconds(Integer delaySeconds) {
-            this.delaySeconds = delaySeconds;
-        }
-
-        public Boolean getDeleteAfterRead() {
-            return deleteAfterRead;
-        }
-
-        public void setDeleteAfterRead(Boolean deleteAfterRead) {
-            this.deleteAfterRead = deleteAfterRead;
-        }
-
-        public Boolean getDeleteIfFiltered() {
-            return deleteIfFiltered;
-        }
-
-        public void setDeleteIfFiltered(Boolean deleteIfFiltered) {
-            this.deleteIfFiltered = deleteIfFiltered;
-        }
-
-        public Boolean getExtendMessageVisibility() {
-            return extendMessageVisibility;
-        }
-
-        public void setExtendMessageVisibility(Boolean extendMessageVisibility) {
-            this.extendMessageVisibility = extendMessageVisibility;
-        }
-
-        public Integer getKmsDataKeyReusePeriodSeconds() {
-            return kmsDataKeyReusePeriodSeconds;
-        }
-
-        public void setKmsDataKeyReusePeriodSeconds(
-                Integer kmsDataKeyReusePeriodSeconds) {
-            this.kmsDataKeyReusePeriodSeconds = kmsDataKeyReusePeriodSeconds;
-        }
-
-        public String getKmsMasterKeyId() {
-            return kmsMasterKeyId;
-        }
-
-        public void setKmsMasterKeyId(String kmsMasterKeyId) {
-            this.kmsMasterKeyId = kmsMasterKeyId;
-        }
-
-        public Integer getMaximumMessageSize() {
-            return maximumMessageSize;
-        }
-
-        public void setMaximumMessageSize(Integer maximumMessageSize) {
-            this.maximumMessageSize = maximumMessageSize;
-        }
-
-        public String getMessageAttributeNames() {
-            return messageAttributeNames;
-        }
-
-        public void setMessageAttributeNames(String messageAttributeNames) {
-            this.messageAttributeNames = messageAttributeNames;
-        }
-
-        public MessageDeduplicationIdStrategy getMessageDeduplicationIdStrategy() {
-            return messageDeduplicationIdStrategy;
-        }
-
-        public void setMessageDeduplicationIdStrategy(
-                MessageDeduplicationIdStrategy messageDeduplicationIdStrategy) {
-            this.messageDeduplicationIdStrategy = messageDeduplicationIdStrategy;
-        }
-
-        public MessageGroupIdStrategy getMessageGroupIdStrategy() {
-            return messageGroupIdStrategy;
-        }
-
-        public void setMessageGroupIdStrategy(
-                MessageGroupIdStrategy messageGroupIdStrategy) {
-            this.messageGroupIdStrategy = messageGroupIdStrategy;
-        }
-
-        public Integer getMessageRetentionPeriod() {
-            return messageRetentionPeriod;
-        }
-
-        public void setMessageRetentionPeriod(Integer messageRetentionPeriod) {
-            this.messageRetentionPeriod = messageRetentionPeriod;
-        }
-
-        public SqsOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(SqsOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getPolicy() {
-            return policy;
-        }
-
-        public void setPolicy(String policy) {
-            this.policy = policy;
-        }
-
-        public String getProtocol() {
-            return protocol;
-        }
-
-        public void setProtocol(String protocol) {
-            this.protocol = protocol;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getQueueName() {
-            return queueName;
-        }
-
-        public void setQueueName(String queueName) {
-            this.queueName = queueName;
-        }
-
-        public String getQueueOwnerAWSAccountId() {
-            return queueOwnerAWSAccountId;
-        }
-
-        public void setQueueOwnerAWSAccountId(String queueOwnerAWSAccountId) {
-            this.queueOwnerAWSAccountId = queueOwnerAWSAccountId;
-        }
-
-        public String getQueueUrl() {
-            return queueUrl;
-        }
-
-        public void setQueueUrl(String queueUrl) {
-            this.queueUrl = queueUrl;
-        }
-
-        public Integer getReceiveMessageWaitTimeSeconds() {
-            return receiveMessageWaitTimeSeconds;
-        }
-
-        public void setReceiveMessageWaitTimeSeconds(
-                Integer receiveMessageWaitTimeSeconds) {
-            this.receiveMessageWaitTimeSeconds = receiveMessageWaitTimeSeconds;
-        }
-
-        public String getRedrivePolicy() {
-            return redrivePolicy;
-        }
-
-        public void setRedrivePolicy(String redrivePolicy) {
-            this.redrivePolicy = redrivePolicy;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public Boolean getServerSideEncryptionEnabled() {
-            return serverSideEncryptionEnabled;
-        }
-
-        public void setServerSideEncryptionEnabled(
-                Boolean serverSideEncryptionEnabled) {
-            this.serverSideEncryptionEnabled = serverSideEncryptionEnabled;
-        }
-
-        public Integer getVisibilityTimeout() {
-            return visibilityTimeout;
-        }
-
-        public void setVisibilityTimeout(Integer visibilityTimeout) {
-            this.visibilityTimeout = visibilityTimeout;
-        }
-
-        public Integer getWaitTimeSeconds() {
-            return waitTimeSeconds;
-        }
-
-        public void setWaitTimeSeconds(Integer waitTimeSeconds) {
-            this.waitTimeSeconds = waitTimeSeconds;
-        }
-    }
 }
\ No newline at end of file
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 2bdb4a3..0d89a93 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
@@ -17,7 +17,7 @@ When using aws-swf with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 57 options, which are listed below.
+The component supports 31 options, which are listed below.
 
 
 
@@ -35,33 +35,7 @@ The component supports 57 options, which are listed below.
 | *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.access-key* | Amazon AWS Access Key. |  | String
-| *camel.component.aws-swf.configuration.activity-list* | The list name to consume activities from. |  | String
-| *camel.component.aws-swf.configuration.activity-scheduling-options* | Activity scheduling options |  | ActivitySchedulingOptions
-| *camel.component.aws-swf.configuration.activity-thread-pool-size* | Maximum number of threads in work pool for activity. | 100 | Integer
-| *camel.component.aws-swf.configuration.activity-type-execution-options* | Activity execution options |  | ActivityTypeExecutionOptions
-| *camel.component.aws-swf.configuration.activity-type-registration-options* | Activity registration options |  | ActivityTypeRegistrationOptions
-| *camel.component.aws-swf.configuration.amazon-s-w-client* | To use the given AmazonSimpleWorkflowClient as client |  | AmazonSimpleWorkflow
-| *camel.component.aws-swf.configuration.child-policy* | The policy to use on child workflows when terminating a workflow. |  | String
-| *camel.component.aws-swf.configuration.client-configuration-parameters* | To configure the ClientConfiguration using the key/values from the Map. |  | Map
-| *camel.component.aws-swf.configuration.data-converter* | An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter to use for serializing/deserializing the data. |  | DataConverter
-| *camel.component.aws-swf.configuration.domain-name* | The workflow domain to use. |  | String
-| *camel.component.aws-swf.configuration.event-name* | The workflow or activity event name to use. |  | String
-| *camel.component.aws-swf.configuration.execution-start-to-close-timeout* | Set the execution start to close timeout. | 3600 | String
-| *camel.component.aws-swf.configuration.operation* | Workflow operation | START | String
-| *camel.component.aws-swf.configuration.region* | Amazon AWS Region. 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-swf.configuration.s-w-client-parameters* | To configure the AmazonSimpleWorkflowClient using the key/values from the Map. |  | Map
-| *camel.component.aws-swf.configuration.secret-key* | Amazon AWS Secret Key. |  | String
-| *camel.component.aws-swf.configuration.signal-name* | The name of the signal to send to the workflow. |  | String
-| *camel.component.aws-swf.configuration.start-workflow-options-parameters* | To configure the StartWorkflowOptions using the key/values from the Map. |  | Map
-| *camel.component.aws-swf.configuration.state-result-type* | The type of the result when a workflow state is queried. |  | String
-| *camel.component.aws-swf.configuration.task-start-to-close-timeout* | Set the task start to close timeout. | 600 | String
-| *camel.component.aws-swf.configuration.termination-details* | Details for terminating a workflow. |  | String
-| *camel.component.aws-swf.configuration.termination-reason* | The reason for terminating a workflow. |  | String
-| *camel.component.aws-swf.configuration.type* | Activity or workflow |  | String
-| *camel.component.aws-swf.configuration.version* | The workflow or activity event version to use. |  | String
-| *camel.component.aws-swf.configuration.workflow-list* | The list name to consume workflows from. |  | String
-| *camel.component.aws-swf.configuration.workflow-type-registration-options* | Workflow registration options |  | WorkflowTypeRegistrationOptions
+| *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.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
diff --git a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
index d34bb90..a47ff30 100644
--- a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class SWFComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 4c91a8d..ecfcf1b 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,12 +18,6 @@ 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
@@ -50,9 +44,10 @@ public class SWFComponentConfiguration
      */
     private String amazonSWClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.swf.SWFConfiguration type.
      */
-    private SWFConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter
      * to use for serializing/deserializing the data. The option is a
@@ -197,12 +192,11 @@ public class SWFComponentConfiguration
         this.amazonSWClient = amazonSWClient;
     }
 
-    public SWFConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            SWFConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -435,346 +429,4 @@ public class SWFComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class SWFConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.swf.SWFConfiguration.class;
-        /**
-         * Amazon AWS Access Key.
-         */
-        private String accessKey;
-        /**
-         * The list name to consume activities from.
-         */
-        private String activityList;
-        /**
-         * Activity scheduling options
-         */
-        private ActivitySchedulingOptions activitySchedulingOptions;
-        /**
-         * Maximum number of threads in work pool for activity.
-         */
-        private Integer activityThreadPoolSize = 100;
-        /**
-         * Activity execution options
-         */
-        private ActivityTypeExecutionOptions activityTypeExecutionOptions;
-        /**
-         * Activity registration options
-         */
-        private ActivityTypeRegistrationOptions activityTypeRegistrationOptions;
-        /**
-         * To use the given AmazonSimpleWorkflowClient as client
-         */
-        private AmazonSimpleWorkflow amazonSWClient;
-        /**
-         * The policy to use on child workflows when terminating a workflow.
-         */
-        private String childPolicy;
-        /**
-         * To configure the ClientConfiguration using the key/values from the
-         * Map.
-         */
-        private Map clientConfigurationParameters;
-        /**
-         * An instance of
-         * com.amazonaws.services.simpleworkflow.flow.DataConverter to use for
-         * serializing/deserializing the data.
-         */
-        private DataConverter dataConverter;
-        /**
-         * The workflow domain to use.
-         */
-        private String domainName;
-        /**
-         * The workflow or activity event name to use.
-         */
-        private String eventName;
-        /**
-         * Set the execution start to close timeout.
-         */
-        private String executionStartToCloseTimeout = "3600";
-        /**
-         * Workflow operation
-         */
-        private String operation = "START";
-        /**
-         * Amazon AWS Region. 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()
-         */
-        private String region;
-        /**
-         * To configure the AmazonSimpleWorkflowClient using the key/values from
-         * the Map.
-         */
-        private Map sWClientParameters;
-        /**
-         * Amazon AWS Secret Key.
-         */
-        private String secretKey;
-        /**
-         * The name of the signal to send to the workflow.
-         */
-        private String signalName;
-        /**
-         * To configure the StartWorkflowOptions using the key/values from the
-         * Map.
-         */
-        private Map startWorkflowOptionsParameters;
-        /**
-         * The type of the result when a workflow state is queried.
-         */
-        private String stateResultType;
-        /**
-         * Set the task start to close timeout.
-         */
-        private String taskStartToCloseTimeout = "600";
-        /**
-         * Details for terminating a workflow.
-         */
-        private String terminationDetails;
-        /**
-         * The reason for terminating a workflow.
-         */
-        private String terminationReason;
-        /**
-         * Activity or workflow
-         */
-        private String type;
-        /**
-         * The workflow or activity event version to use.
-         */
-        private String version;
-        /**
-         * The list name to consume workflows from.
-         */
-        private String workflowList;
-        /**
-         * Workflow registration options
-         */
-        private WorkflowTypeRegistrationOptions workflowTypeRegistrationOptions;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public String getActivityList() {
-            return activityList;
-        }
-
-        public void setActivityList(String activityList) {
-            this.activityList = activityList;
-        }
-
-        public ActivitySchedulingOptions getActivitySchedulingOptions() {
-            return activitySchedulingOptions;
-        }
-
-        public void setActivitySchedulingOptions(
-                ActivitySchedulingOptions activitySchedulingOptions) {
-            this.activitySchedulingOptions = activitySchedulingOptions;
-        }
-
-        public Integer getActivityThreadPoolSize() {
-            return activityThreadPoolSize;
-        }
-
-        public void setActivityThreadPoolSize(Integer activityThreadPoolSize) {
-            this.activityThreadPoolSize = activityThreadPoolSize;
-        }
-
-        public ActivityTypeExecutionOptions getActivityTypeExecutionOptions() {
-            return activityTypeExecutionOptions;
-        }
-
-        public void setActivityTypeExecutionOptions(
-                ActivityTypeExecutionOptions activityTypeExecutionOptions) {
-            this.activityTypeExecutionOptions = activityTypeExecutionOptions;
-        }
-
-        public ActivityTypeRegistrationOptions getActivityTypeRegistrationOptions() {
-            return activityTypeRegistrationOptions;
-        }
-
-        public void setActivityTypeRegistrationOptions(
-                ActivityTypeRegistrationOptions activityTypeRegistrationOptions) {
-            this.activityTypeRegistrationOptions = activityTypeRegistrationOptions;
-        }
-
-        public AmazonSimpleWorkflow getAmazonSWClient() {
-            return amazonSWClient;
-        }
-
-        public void setAmazonSWClient(AmazonSimpleWorkflow amazonSWClient) {
-            this.amazonSWClient = amazonSWClient;
-        }
-
-        public String getChildPolicy() {
-            return childPolicy;
-        }
-
-        public void setChildPolicy(String childPolicy) {
-            this.childPolicy = childPolicy;
-        }
-
-        public Map getClientConfigurationParameters() {
-            return clientConfigurationParameters;
-        }
-
-        public void setClientConfigurationParameters(
-                Map clientConfigurationParameters) {
-            this.clientConfigurationParameters = clientConfigurationParameters;
-        }
-
-        public DataConverter getDataConverter() {
-            return dataConverter;
-        }
-
-        public void setDataConverter(DataConverter dataConverter) {
-            this.dataConverter = dataConverter;
-        }
-
-        public String getDomainName() {
-            return domainName;
-        }
-
-        public void setDomainName(String domainName) {
-            this.domainName = domainName;
-        }
-
-        public String getEventName() {
-            return eventName;
-        }
-
-        public void setEventName(String eventName) {
-            this.eventName = eventName;
-        }
-
-        public String getExecutionStartToCloseTimeout() {
-            return executionStartToCloseTimeout;
-        }
-
-        public void setExecutionStartToCloseTimeout(
-                String executionStartToCloseTimeout) {
-            this.executionStartToCloseTimeout = executionStartToCloseTimeout;
-        }
-
-        public String getOperation() {
-            return operation;
-        }
-
-        public void setOperation(String operation) {
-            this.operation = operation;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public Map getSWClientParameters() {
-            return sWClientParameters;
-        }
-
-        public void setSWClientParameters(Map sWClientParameters) {
-            this.sWClientParameters = sWClientParameters;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getSignalName() {
-            return signalName;
-        }
-
-        public void setSignalName(String signalName) {
-            this.signalName = signalName;
-        }
-
-        public Map getStartWorkflowOptionsParameters() {
-            return startWorkflowOptionsParameters;
-        }
-
-        public void setStartWorkflowOptionsParameters(
-                Map startWorkflowOptionsParameters) {
-            this.startWorkflowOptionsParameters = startWorkflowOptionsParameters;
-        }
-
-        public String getStateResultType() {
-            return stateResultType;
-        }
-
-        public void setStateResultType(String stateResultType) {
-            this.stateResultType = stateResultType;
-        }
-
-        public String getTaskStartToCloseTimeout() {
-            return taskStartToCloseTimeout;
-        }
-
-        public void setTaskStartToCloseTimeout(String taskStartToCloseTimeout) {
-            this.taskStartToCloseTimeout = taskStartToCloseTimeout;
-        }
-
-        public String getTerminationDetails() {
-            return terminationDetails;
-        }
-
-        public void setTerminationDetails(String terminationDetails) {
-            this.terminationDetails = terminationDetails;
-        }
-
-        public String getTerminationReason() {
-            return terminationReason;
-        }
-
-        public void setTerminationReason(String terminationReason) {
-            this.terminationReason = terminationReason;
-        }
-
-        public String getType() {
-            return type;
-        }
-
-        public void setType(String type) {
-            this.type = type;
-        }
-
-        public String getVersion() {
-            return version;
-        }
-
-        public void setVersion(String version) {
-            this.version = version;
-        }
-
-        public String getWorkflowList() {
-            return workflowList;
-        }
-
-        public void setWorkflowList(String workflowList) {
-            this.workflowList = workflowList;
-        }
-
-        public WorkflowTypeRegistrationOptions getWorkflowTypeRegistrationOptions() {
-            return workflowTypeRegistrationOptions;
-        }
-
-        public void setWorkflowTypeRegistrationOptions(
-                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 6fe450b..edd401d 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
@@ -17,7 +17,7 @@ When using aws-translate with Spring Boot make sure to use the following Maven d
 ----
 
 
-The component supports 25 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -27,17 +27,7 @@ The component supports 25 options, which are listed below.
 | *camel.component.aws-translate.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws-translate.autodetect-source-language* | Being able to autodetect the source language | false | Boolean
 | *camel.component.aws-translate.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws-translate.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws-translate.configuration.autodetect-source-language* | Being able to autodetect the source language | false | Boolean
-| *camel.component.aws-translate.configuration.operation* | The operation to perform |  | TranslateOperations
-| *camel.component.aws-translate.configuration.proxy-host* | To define a proxy host when instantiating the Translate client |  | String
-| *camel.component.aws-translate.configuration.proxy-port* | To define a proxy port when instantiating the Translate client |  | Integer
-| *camel.component.aws-translate.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Translate client |  | Protocol
-| *camel.component.aws-translate.configuration.region* | The region in which Translate 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-translate.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws-translate.configuration.source-language* | Source language to use |  | String
-| *camel.component.aws-translate.configuration.target-language* | Target language to use |  | String
-| *camel.component.aws-translate.configuration.translate-client* | To use a existing configured AWS Translate as client |  | AmazonTranslate
+| *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.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
diff --git a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
index 9d2ce38..15def12 100644
--- a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class TranslateComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 371609c..2997b54 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,6 @@ 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.TranslateOperations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
@@ -49,9 +48,10 @@ public class TranslateComponentConfiguration
      */
     private Boolean autodetectSourceLanguage = false;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws.translate.TranslateConfiguration type.
      */
-    private TranslateConfigurationNestedConfiguration configuration;
+    private String 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
@@ -125,12 +125,11 @@ public class TranslateComponentConfiguration
         this.autodetectSourceLanguage = autodetectSourceLanguage;
     }
 
-    public TranslateConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            TranslateConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -221,143 +220,4 @@ public class TranslateComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class TranslateConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.translate.TranslateConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Being able to autodetect the source language
-         */
-        private Boolean autodetectSourceLanguage = false;
-        /**
-         * The operation to perform
-         */
-        private TranslateOperations operation = TranslateOperations.translateText;
-        /**
-         * To define a proxy host when instantiating the Translate client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the Translate client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the Translate client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which Translate 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * Source language to use
-         */
-        private String sourceLanguage;
-        /**
-         * Target language to use
-         */
-        private String targetLanguage;
-        /**
-         * To use a existing configured AWS Translate as client
-         */
-        private AmazonTranslate translateClient;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public Boolean getAutodetectSourceLanguage() {
-            return autodetectSourceLanguage;
-        }
-
-        public void setAutodetectSourceLanguage(Boolean autodetectSourceLanguage) {
-            this.autodetectSourceLanguage = autodetectSourceLanguage;
-        }
-
-        public TranslateOperations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(TranslateOperations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getSourceLanguage() {
-            return sourceLanguage;
-        }
-
-        public void setSourceLanguage(String sourceLanguage) {
-            this.sourceLanguage = sourceLanguage;
-        }
-
-        public String getTargetLanguage() {
-            return targetLanguage;
-        }
-
-        public void setTargetLanguage(String targetLanguage) {
-            this.targetLanguage = targetLanguage;
-        }
-
-        public AmazonTranslate getTranslateClient() {
-            return translateClient;
-        }
-
-        public void setTranslateClient(AmazonTranslate translateClient) {
-            this.translateClient = translateClient;
-        }
-    }
 }
\ No newline at end of file
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 c5d4293..437e046 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
@@ -17,7 +17,7 @@ When using aws2-cw with Spring Boot make sure to use the following Maven depende
 ----
 
 
-The component supports 26 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -27,18 +27,7 @@ The component supports 26 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-cw.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-cw.configuration.amazon-cw-client* | To use the AmazonCloudWatch as the client |  | CloudWatchClient
-| *camel.component.aws2-cw.configuration.name* | The metric name |  | String
-| *camel.component.aws2-cw.configuration.namespace* | The metric namespace |  | String
-| *camel.component.aws2-cw.configuration.proxy-host* | To define a proxy host when instantiating the CW client |  | String
-| *camel.component.aws2-cw.configuration.proxy-port* | To define a proxy port when instantiating the CW client |  | Integer
-| *camel.component.aws2-cw.configuration.proxy-protocol* | To define a proxy protocol when instantiating the CW client |  | Protocol
-| *camel.component.aws2-cw.configuration.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.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-cw.configuration.timestamp* | The metric timestamp |  | Instant
-| *camel.component.aws2-cw.configuration.unit* | The metric unit |  | String
-| *camel.component.aws2-cw.configuration.value* | The metric value |  | Double
+| *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.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
diff --git a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
index 950258d..b64c423 100644
--- a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class Cw2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 66c7b87..0987531 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,13 +16,11 @@
  */
 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.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
 
 /**
  * The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
@@ -46,9 +44,10 @@ public class Cw2ComponentConfiguration
      */
     private String amazonCwClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws2.cw.Cw2Configuration type.
      */
-    private Cw2ConfigurationNestedConfiguration configuration;
+    private String 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,12 +115,11 @@ public class Cw2ComponentConfiguration
         this.amazonCwClient = amazonCwClient;
     }
 
-    public Cw2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            Cw2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -220,155 +218,4 @@ public class Cw2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class Cw2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.cw.Cw2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonCloudWatch as the client
-         */
-        private CloudWatchClient amazonCwClient;
-        /**
-         * The metric name
-         */
-        private String name;
-        /**
-         * The metric namespace
-         */
-        private String namespace;
-        /**
-         * To define a proxy host when instantiating the CW client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the CW client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the CW client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The metric timestamp
-         */
-        private Instant timestamp;
-        /**
-         * The metric unit
-         */
-        private String unit;
-        /**
-         * The metric value
-         */
-        private Double value;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public CloudWatchClient getAmazonCwClient() {
-            return amazonCwClient;
-        }
-
-        public void setAmazonCwClient(CloudWatchClient amazonCwClient) {
-            this.amazonCwClient = amazonCwClient;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public String getNamespace() {
-            return namespace;
-        }
-
-        public void setNamespace(String namespace) {
-            this.namespace = namespace;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public Instant getTimestamp() {
-            return timestamp;
-        }
-
-        public void setTimestamp(Instant timestamp) {
-            this.timestamp = timestamp;
-        }
-
-        public String getUnit() {
-            return unit;
-        }
-
-        public void setUnit(String unit) {
-            this.unit = unit;
-        }
-
-        public Double getValue() {
-            return value;
-        }
-
-        public void setValue(Double value) {
-            this.value = value;
-        }
-    }
 }
\ No newline at end of file
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 9ba79c6..53e75a5 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
@@ -17,7 +17,7 @@ When using aws2-ddb with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 54 options, which are listed below.
+The component supports 31 options, which are listed below.
 
 
 
@@ -27,20 +27,7 @@ The component supports 54 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-ddb.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ddb.configuration.amazon-d-d-b-client* | To use the AmazonDynamoDB as the client |  | DynamoDbClient
-| *camel.component.aws2-ddb.configuration.consistent-read* | Determines whether or not strong consistency should be enforced when data is read. | false | Boolean
-| *camel.component.aws2-ddb.configuration.key-attribute-name* | Attribute name when creating table |  | String
-| *camel.component.aws2-ddb.configuration.key-attribute-type* | Attribute type when creating table |  | String
-| *camel.component.aws2-ddb.configuration.operation* | What operation to perform |  | Ddb2Operations
-| *camel.component.aws2-ddb.configuration.proxy-host* | To define a proxy host when instantiating the DDB client |  | String
-| *camel.component.aws2-ddb.configuration.proxy-port* | The region in which DynamoDB 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() |  | Integer
-| *camel.component.aws2-ddb.configuration.proxy-protocol* | To define a proxy protocol when instantiating the DDB client |  | Protocol
-| *camel.component.aws2-ddb.configuration.read-capacity* | The provisioned throughput to reserve for reading resources from your table |  | Long
-| *camel.component.aws2-ddb.configuration.region* | The region in which DDB client needs to work |  | String
-| *camel.component.aws2-ddb.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-ddb.configuration.table-name* | The name of the table currently worked with. |  | String
-| *camel.component.aws2-ddb.configuration.write-capacity* | The provisioned throughput to reserved for writing resources to your table |  | Long
+| *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.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
@@ -58,17 +45,7 @@ The component supports 54 options, which are listed below.
 | *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.basic-property-binding* | 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.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.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ddbstream.configuration.amazon-dynamo-db-streams-client* | Amazon DynamoDB client to use for all requests for this endpoint |  | DynamoDbStreamsClient
-| *camel.component.aws2-ddbstream.configuration.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.configuration.max-results-per-request* | Maximum number of records that will be fetched in each poll |  | Integer
-| *camel.component.aws2-ddbstream.configuration.proxy-host* | To define a proxy host when instantiating the DDBStreams client |  | String
-| *camel.component.aws2-ddbstream.configuration.proxy-port* | To define a proxy port when instantiating the DDBStreams client |  | Integer
-| *camel.component.aws2-ddbstream.configuration.proxy-protocol* | To define a proxy protocol when instantiating the DDBStreams client |  | Protocol
-| *camel.component.aws2-ddbstream.configuration.region* | The region in which DDBStreams client needs to work |  | String
-| *camel.component.aws2-ddbstream.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-ddbstream.configuration.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. |  | SequenceNumberProvider
-| *camel.component.aws2-ddbstream.configuration.table-name* | Name of the dynamodb table |  | String
+| *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.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
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
index 6af7dfe..a252c56 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class Ddb2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 bf0a064..5050b62 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
@@ -22,7 +22,6 @@ import org.apache.camel.component.aws2.ddb.Ddb2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
 
 /**
  * The aws2-ddb component is used for storing and retrieving data from Amazon's
@@ -47,9 +46,10 @@ public class Ddb2ComponentConfiguration
      */
     private String amazonDDBClient;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws2.ddb.Ddb2Configuration type.
      */
-    private Ddb2ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * Determines whether or not strong consistency should be enforced when data
      * is read.
@@ -128,12 +128,11 @@ public class Ddb2ComponentConfiguration
         this.amazonDDBClient = amazonDDBClient;
     }
 
-    public Ddb2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            Ddb2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -248,182 +247,4 @@ public class Ddb2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class Ddb2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.ddb.Ddb2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use the AmazonDynamoDB as the client
-         */
-        private DynamoDbClient amazonDDBClient;
-        /**
-         * Determines whether or not strong consistency should be enforced when
-         * data is read.
-         */
-        private Boolean consistentRead = false;
-        /**
-         * Attribute name when creating table
-         */
-        private String keyAttributeName;
-        /**
-         * Attribute type when creating table
-         */
-        private String keyAttributeType;
-        /**
-         * What operation to perform
-         */
-        private Ddb2Operations operation = Ddb2Operations.PutItem;
-        /**
-         * To define a proxy host when instantiating the DDB client
-         */
-        private String proxyHost;
-        /**
-         * The region in which DynamoDB 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()
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the DDB client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The provisioned throughput to reserve for reading resources from your
-         * table
-         */
-        private Long readCapacity;
-        /**
-         * The region in which DDB client needs to work
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * The name of the table currently worked with.
-         */
-        private String tableName;
-        /**
-         * The provisioned throughput to reserved for writing resources to your
-         * table
-         */
-        private Long writeCapacity;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public DynamoDbClient getAmazonDDBClient() {
-            return amazonDDBClient;
-        }
-
-        public void setAmazonDDBClient(DynamoDbClient amazonDDBClient) {
-            this.amazonDDBClient = amazonDDBClient;
-        }
-
-        public Boolean getConsistentRead() {
-            return consistentRead;
-        }
-
-        public void setConsistentRead(Boolean consistentRead) {
-            this.consistentRead = consistentRead;
-        }
-
-        public String getKeyAttributeName() {
-            return keyAttributeName;
-        }
-
-        public void setKeyAttributeName(String keyAttributeName) {
-            this.keyAttributeName = keyAttributeName;
-        }
-
-        public String getKeyAttributeType() {
-            return keyAttributeType;
-        }
-
-        public void setKeyAttributeType(String keyAttributeType) {
-            this.keyAttributeType = keyAttributeType;
-        }
-
-        public Ddb2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(Ddb2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public Long getReadCapacity() {
-            return readCapacity;
-        }
-
-        public void setReadCapacity(Long readCapacity) {
-            this.readCapacity = readCapacity;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public String getTableName() {
-            return tableName;
-        }
-
-        public void setTableName(String tableName) {
-            this.tableName = tableName;
-        }
-
-        public Long getWriteCapacity() {
-            return writeCapacity;
-        }
-
-        public void setWriteCapacity(Long writeCapacity) {
-            this.writeCapacity = writeCapacity;
-        }
-    }
 }
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
index f4582c3..8e63c9a 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class Ddb2StreamComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 f883ab0..671484a 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,12 +18,10 @@ 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.SequenceNumberProvider;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
 import software.amazon.awssdk.services.dynamodb.model.ShardIteratorType;
-import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient;
 
 /**
  * The aws2-ddbstream component is used for working with Amazon DynamoDB
@@ -59,9 +57,10 @@ public class Ddb2StreamComponentConfiguration
      */
     private Boolean bridgeErrorHandler = false;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type.
      */
-    private Ddb2StreamConfigurationNestedConfiguration configuration;
+    private String 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
@@ -127,12 +126,11 @@ public class Ddb2StreamComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
-    public Ddb2StreamConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            Ddb2StreamConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -215,147 +213,4 @@ public class Ddb2StreamComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class Ddb2StreamConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Amazon DynamoDB client to use for all requests for this endpoint
-         */
-        private DynamoDbStreamsClient amazonDynamoDbStreamsClient;
-        /**
-         * 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.
-         */
-        private ShardIteratorType iteratorType = ShardIteratorType.LATEST;
-        /**
-         * Maximum number of records that will be fetched in each poll
-         */
-        private Integer maxResultsPerRequest;
-        /**
-         * To define a proxy host when instantiating the DDBStreams client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the DDBStreams client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the DDBStreams client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which DDBStreams client needs to work
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-        /**
-         * 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.
-         */
-        private SequenceNumberProvider sequenceNumberProvider;
-        /**
-         * Name of the dynamodb table
-         */
-        private String tableName;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public DynamoDbStreamsClient getAmazonDynamoDbStreamsClient() {
-            return amazonDynamoDbStreamsClient;
-        }
-
-        public void setAmazonDynamoDbStreamsClient(
-                DynamoDbStreamsClient amazonDynamoDbStreamsClient) {
-            this.amazonDynamoDbStreamsClient = amazonDynamoDbStreamsClient;
-        }
-
-        public ShardIteratorType getIteratorType() {
-            return iteratorType;
-        }
-
-        public void setIteratorType(ShardIteratorType iteratorType) {
-            this.iteratorType = iteratorType;
-        }
-
-        public Integer getMaxResultsPerRequest() {
-            return maxResultsPerRequest;
-        }
-
-        public void setMaxResultsPerRequest(Integer maxResultsPerRequest) {
-            this.maxResultsPerRequest = maxResultsPerRequest;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-
-        public SequenceNumberProvider getSequenceNumberProvider() {
-            return sequenceNumberProvider;
-        }
-
-        public void setSequenceNumberProvider(
-                SequenceNumberProvider sequenceNumberProvider) {
-            this.sequenceNumberProvider = sequenceNumberProvider;
-        }
-
-        public String getTableName() {
-            return tableName;
-        }
-
-        public void setTableName(String tableName) {
-            this.tableName = tableName;
-        }
-    }
 }
\ No newline at end of file
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 cea03bf..31f87c0 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
@@ -17,7 +17,7 @@ When using aws2-ec2 with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 19 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-ec2.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ec2.configuration.amazon-ec2-client* | To use a existing configured AmazonEC2Client as client |  | Ec2Client
-| *camel.component.aws2-ec2.configuration.operation* | The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags |  | AWS2EC2Operations
-| *camel.component.aws2-ec2.configuration.proxy-host* | To define a proxy host when instantiating the EC2 client |  | String
-| *camel.component.aws2-ec2.configuration.proxy-port* | To define a proxy port when instantiating the EC2 client |  | Integer
-| *camel.component.aws2-ec2.configuration.proxy-protocol* | To define a proxy protocol when instantiating the EC2 client |  | Protocol
-| *camel.component.aws2-ec2.configuration.region* | The region in which EC2 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.aws2-ec2.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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/AWS2EC2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
index 63a17a3..08cf4e1 100644
--- a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class AWS2EC2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 9f62bce..fe3bd27 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
@@ -22,7 +22,6 @@ import org.apache.camel.component.aws2.ec2.AWS2EC2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.ec2.Ec2Client;
 
 /**
  * The aws2-ec2 is used for managing Amazon EC2 instances.
@@ -50,9 +49,10 @@ public class AWS2EC2ComponentConfiguration
      */
     private String amazonEc2Client;
     /**
-     * The component configuration
+     * The component configuration. The option is a
+     * org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type.
      */
-    private AWS2EC2ConfigurationNestedConfiguration configuration;
+    private String 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
@@ -115,12 +115,11 @@ public class AWS2EC2ComponentConfiguration
         this.amazonEc2Client = amazonEc2Client;
     }
 
-    public AWS2EC2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            AWS2EC2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -187,110 +186,4 @@ public class AWS2EC2ComponentConfiguration
     public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
         this.basicPropertyBinding = basicPropertyBinding;
     }
-
-    public static class AWS2EC2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.ec2.AWS2EC2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AmazonEC2Client as client
-         */
-        private Ec2Client amazonEc2Client;
-        /**
-         * The operation to perform. It can be createAndRunInstances,
-         * startInstances, stopInstances, terminateInstances, describeInstances,
-         * describeInstancesStatus, rebootInstances, monitorInstances,
-         * unmonitorInstances, createTags or deleteTags
-         */
-        private AWS2EC2Operations operation;
-        /**
-         * To define a proxy host when instantiating the EC2 client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the EC2 client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the EC2 client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which EC2 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public Ec2Client getAmazonEc2Client() {
-            return amazonEc2Client;
-        }
-
-        public void setAmazonEc2Client(Ec2Client amazonEc2Client) {
-            this.amazonEc2Client = amazonEc2Client;
-        }
-
-        public AWS2EC2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(AWS2EC2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 7e7de33..d4f4b68 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
@@ -17,7 +17,7 @@ When using aws2-ecs with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-ecs.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-ecs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-ecs.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ecs.configuration.ecs-client* | To use a existing configured AWS ECS as client |  | EcsClient
-| *camel.component.aws2-ecs.configuration.operation* | The operation to perform |  | ECS2Operations
-| *camel.component.aws2-ecs.configuration.proxy-host* | To define a proxy host when instantiating the ECS client |  | String
-| *camel.component.aws2-ecs.configuration.proxy-port* | To define a proxy port when instantiating the ECS client |  | Integer
-| *camel.component.aws2-ecs.configuration.proxy-protocol* | To define a proxy protocol when instantiating the ECS client |  | Protocol
-| *camel.component.aws2-ecs.configuration.region* | The region in which ECS 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-ecs.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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 [...]
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
index d2feef4..3f9562c0 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class ECS2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 2c4d5c8..7a9ab3d 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
@@ -22,7 +22,6 @@ import org.apache.camel.component.aws2.ecs.ECS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.ecs.EcsClient;
 
 /**
  * The aws2-ecs is used for managing Amazon ECS
@@ -41,9 +40,10 @@ public class ECS2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * Component configuration
+     * Component configuration. The option is a
+     * org.apache.camel.component.aws2.ecs.ECS2Configuration type.
      */
-    private ECS2ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS ECS as client. The option is a
      * software.amazon.awssdk.services.ecs.EcsClient type.
@@ -96,12 +96,11 @@ public class ECS2ComponentConfiguration
      */
     private String secretKey;
 
-    public ECS2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            ECS2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class ECS2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class ECS2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.ecs.ECS2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS ECS as client
-         */
-        private EcsClient ecsClient;
-        /**
-         * The operation to perform
-         */
-        private ECS2Operations operation;
-        /**
-         * To define a proxy host when instantiating the ECS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the ECS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the ECS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which ECS 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public EcsClient getEcsClient() {
-            return ecsClient;
-        }
-
-        public void setEcsClient(EcsClient ecsClient) {
-            this.ecsClient = ecsClient;
-        }
-
-        public ECS2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(ECS2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 c8a002b..1aa49e9 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
@@ -17,7 +17,7 @@ When using aws2-eks with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-eks.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-eks.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-eks.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-eks.configuration.eks-client* | To use a existing configured AWS EKS as client |  | EksClient
-| *camel.component.aws2-eks.configuration.operation* | The operation to perform |  | EKS2Operations
-| *camel.component.aws2-eks.configuration.proxy-host* | To define a proxy host when instantiating the EKS client |  | String
-| *camel.component.aws2-eks.configuration.proxy-port* | To define a proxy port when instantiating the EKS client |  | Integer
-| *camel.component.aws2-eks.configuration.proxy-protocol* | To define a proxy protocol when instantiating the EKS client |  | Protocol
-| *camel.component.aws2-eks.configuration.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-eks.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *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.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 [...]
diff --git a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
index 01ebd1a..afd718e 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class EKS2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 1ca50da..bc41c57 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
@@ -22,7 +22,6 @@ import org.apache.camel.component.aws2.eks.EKS2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.eks.EksClient;
 
 /**
  * The aws2-eks is used for managing Amazon EKS
@@ -41,9 +40,10 @@ public class EKS2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * Component configuration
+     * Component configuration. The option is a
+     * org.apache.camel.component.aws2.eks.EKS2Configuration type.
      */
-    private EKS2ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS EKS as client. The option is a
      * software.amazon.awssdk.services.eks.EksClient type.
@@ -96,12 +96,11 @@ public class EKS2ComponentConfiguration
      */
     private String secretKey;
 
-    public EKS2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            EKS2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class EKS2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class EKS2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.eks.EKS2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS EKS as client
-         */
-        private EksClient eksClient;
-        /**
-         * The operation to perform
-         */
-        private EKS2Operations operation;
-        /**
-         * To define a proxy host when instantiating the EKS client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the EKS client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the EKS client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public EksClient getEksClient() {
-            return eksClient;
-        }
-
-        public void setEksClient(EksClient eksClient) {
-            this.eksClient = eksClient;
-        }
-
-        public EKS2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(EKS2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 657a552..303901a 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
@@ -17,7 +17,7 @@ When using aws2-iam with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -26,14 +26,7 @@ The component supports 19 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws2-iam.access-key* | Amazon AWS Access Key |  | String
 | *camel.component.aws2-iam.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-iam.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-iam.configuration.iam-client* | To use a existing configured AWS IAM as client |  | IamClient
-| *camel.component.aws2-iam.configuration.operation* | The operation to perform |  | IAM2Operations
-| *camel.component.aws2-iam.configuration.proxy-host* | To define a proxy host when instantiating the IAM client |  | String
-| *camel.component.aws2-iam.configuration.proxy-port* | To define a proxy port when instantiating the IAM client |  | Integer
-| *camel.component.aws2-iam.configuration.proxy-protocol* | To define a proxy protocol when instantiating the IAM client |  | Protocol
-| *camel.component.aws2-iam.configuration.region* | The region in which IAM 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-iam.configuration.secret-key* | Amazon AWS Secret Key |  | String
+| *camel.component.aws2-iam.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.iam.IAM2Configuration type. |  | String
 | *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.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-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
index 37484af..446df9d 100644
--- a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -83,25 +82,6 @@ public class IAM2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 60a1b8a..912ad72 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
@@ -22,7 +22,6 @@ import org.apache.camel.component.aws2.iam.IAM2Operations;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.iam.IamClient;
 
 /**
  * The aws2-iam is used for managing Amazon IAM
@@ -41,9 +40,10 @@ public class IAM2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * Component configuration
+     * Component configuration. The option is a
+     * org.apache.camel.component.aws2.iam.IAM2Configuration type.
      */
-    private IAM2ConfigurationNestedConfiguration configuration;
+    private String configuration;
     /**
      * To use a existing configured AWS IAM as client. The option is a
      * software.amazon.awssdk.services.iam.IamClient type.
@@ -96,12 +96,11 @@ public class IAM2ComponentConfiguration
      */
     private String secretKey;
 
-    public IAM2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            IAM2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -184,107 +183,4 @@ public class IAM2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class IAM2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.iam.IAM2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * To use a existing configured AWS IAM as client
-         */
-        private IamClient iamClient;
-        /**
-         * The operation to perform
-         */
-        private IAM2Operations operation;
-        /**
-         * To define a proxy host when instantiating the IAM client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the IAM client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the IAM client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which IAM 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()
-         */
-        private String region;
-        /**
-         * Amazon AWS Secret Key
-         */
-        private String secretKey;
-
-        public String getAccessKey() {
-            return accessKey;
-        }
-
-        public void setAccessKey(String accessKey) {
-            this.accessKey = accessKey;
-        }
-
-        public IamClient getIamClient() {
-            return iamClient;
-        }
-
-        public void setIamClient(IamClient iamClient) {
-            this.iamClient = iamClient;
-        }
-
-        public IAM2Operations getOperation() {
-            return operation;
-        }
-
-        public void setOperation(IAM2Operations operation) {
-            this.operation = operation;
-        }
-
-        public String getProxyHost() {
-            return proxyHost;
-        }
-
-        public void setProxyHost(String proxyHost) {
-            this.proxyHost = proxyHost;
-        }
-
-        public Integer getProxyPort() {
-            return proxyPort;
-        }
-
-        public void setProxyPort(Integer proxyPort) {
-            this.proxyPort = proxyPort;
-        }
-
-        public Protocol getProxyProtocol() {
-            return proxyProtocol;
-        }
-
-        public void setProxyProtocol(Protocol proxyProtocol) {
-            this.proxyProtocol = proxyProtocol;
-        }
-
-        public String getRegion() {
-            return region;
-        }
-
-        public void setRegion(String region) {
-            this.region = region;
-        }
-
-        public String getSecretKey() {
-            return secretKey;
-        }
-
-        public void setSecretKey(String secretKey) {
-            this.secretKey = secretKey;
-        }
-    }
 }
\ No newline at end of file
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 9055edc..046f761 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
@@ -17,7 +17,7 @@ When using aws2-kinesis with Spring Boot make sure to use the following Maven de
 ----
 
 
-The component supports 47 options, which are listed below.
+The component supports 28 options, which are listed below.
 
 
 
@@ -27,14 +27,7 @@ The component supports 47 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.aws2-kinesis-firehose.configuration.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-kinesis-firehose.configuration.amazon-kinesis-firehose-client* | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | FirehoseClient
-| *camel.component.aws2-kinesis-firehose.configuration.proxy-host* | To define a proxy host when instantiating the Kinesis Firehose client |  | String
-| *camel.component.aws2-kinesis-firehose.configuration.proxy-port* | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
-| *camel.component.aws2-kinesis-firehose.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Kinesis Firehose client |  | Protocol
-| *camel.component.aws2-kinesis-firehose.configuration.region* | The region in which Kinesis Firehose 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-kinesis-firehose.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-kinesis-firehose.configuration.stream-name* | Name of the stream |  | String
+| *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.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.proxy-host* | To define a proxy host when instantiating the Kinesis Firehose client |  | String
@@ -46,19 +39,7 @@ The component supports 47 options, which are listed below.
 | *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.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | 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.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-kinesis.configuration.amazon-kinesis-client* | Amazon Kinesis client to use for all requests for this endpoint |  | KinesisClient
-| *camel.component.aws2-kinesis.configuration.iterator-type* | Defines where in the Kinesis stream to start getting records |  | ShardIteratorType
-| *camel.component.aws2-kinesis.configuration.max-results-per-request* | Maximum number of records that will be fetched in each poll | 1 | Integer
-| *camel.component.aws2-kinesis.configuration.proxy-host* | To define a proxy host when instantiating the Kinesis client |  | String
-| *camel.component.aws2-kinesis.configuration.proxy-port* | To define a proxy port when instantiating the Kinesis client |  | Integer
-| *camel.component.aws2-kinesis.configuration.proxy-protocol* | To define a proxy protocol when instantiating the Kinesis client |  | Protocol
-| *camel.component.aws2-kinesis.configuration.region* | The region in which Kinesis Firehose 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-kinesis.configuration.secret-key* | Amazon AWS Secret Key |  | String
-| *camel.component.aws2-kinesis.configuration.sequence-number* | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
-| *camel.component.aws2-kinesis.configuration.shard-closed* | Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised |  | Kinesis2ShardClosedStrategyEnum
-| *camel.component.aws2-kinesis.configuration.shard-id* | Defines which shardId in the Kinesis stream to get records from |  | String
-| *camel.component.aws2-kinesis.configuration.stream-name* | Name of the stream |  | String
+| *camel.component.aws2-kinesis.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type. |  | String
 | *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/KinesisFirehose2ComponentAutoConfiguration.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
index dcf49c4..c5058fa 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -84,25 +83,6 @@ public class KinesisFirehose2ComponentAutoConfiguration {
         Map<String, Object> parameters = new HashMap<>();
         IntrospectionSupport.getProperties(configuration, parameters, null,
                 false);
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            Object value = entry.getValue();
-            Class<?> paramClass = value.getClass();
-            if (paramClass.getName().endsWith("NestedConfiguration")) {
-                Class nestedClass = null;
-                try {
-                    nestedClass = (Class) paramClass.getDeclaredField(
-                            "CAMEL_NESTED_CLASS").get(null);
-                    HashMap<String, Object> nestedParameters = new HashMap<>();
-                    IntrospectionSupport.getProperties(value, nestedParameters,
-                            null, false);
-                    Object nestedProperty = nestedClass.newInstance();
-                    CamelPropertiesHelper.setCamelProperties(camelContext,
-                            nestedProperty, nestedParameters, false);
-                    entry.setValue(nestedProperty);
-                } catch (NoSuchFieldException e) {
-                }
-            }
-        }
         CamelPropertiesHelper.setCamelProperties(camelContext, component,
                 parameters, false);
         if (ObjectHelper.isNotEmpty(customizers)) {
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 4ee940c..7a085ac 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
@@ -21,7 +21,6 @@ import org.apache.camel.component.aws2.firehose.KinesisFirehose2Component;
 import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import software.amazon.awssdk.core.Protocol;
-import software.amazon.awssdk.services.firehose.FirehoseClient;
 
 /**
  * The aws2-kinesis-firehose component is used for producing Amazon's Kinesis
@@ -47,9 +46,11 @@ public class KinesisFirehose2ComponentConfiguration
      */
     private String amazonKinesisFirehoseClient;
     /**
-     * Component configuration
+     * Component configuration. The option is a
+     * org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration
+     * type.
      */
-    private KinesisFirehose2ConfigurationNestedConfiguration configuration;
+    private String 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
@@ -103,12 +104,11 @@ public class KinesisFirehose2ComponentConfiguration
         this.amazonKinesisFirehoseClient = amazonKinesisFirehoseClient;
     }
 
-    public KinesisFirehose2ConfigurationNestedConfiguration getConfiguration() {
+    public String getConfiguration() {
         return configuration;
     }
 
-    public void setConfiguration(
-            KinesisFirehose2ConfigurationNestedConfiguration configuration) {
+    public void setConfiguration(String configuration) {
         this.configuration = configuration;
     }
 
@@ -175,110 +175,4 @@ public class KinesisFirehose2ComponentConfiguration
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
-
-    public static class KinesisFirehose2ConfigurationNestedConfiguration {
-        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration.class;
-        /**
-         * Amazon AWS Access Key
-         */
-        private String accessKey;
-        /**
-         * Amazon Kinesis Firehose client to use for all requests for this
-         * endpoint
-         */
-        private FirehoseClient amazonKinesisFirehoseClient;
-        /**
-         * To define a proxy host when instantiating the Kinesis Firehose client
-         */
-        private String proxyHost;
-        /**
-         * To define a proxy port when instantiating the Kinesis Firehose client
-         */
-        private Integer proxyPort;
-        /**
-         * To define a proxy protocol when instantiating the Kinesis Firehose
-         * client
-         */
-        private Protocol proxyProtocol = Protocol.HTTPS;
-        /**
-         * The region in which Kinesis Firehose 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()
-         */
-        private String region;
... 38833 lines suppressed ...