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 2021/08/05 14:01:41 UTC

[camel] 17/17: CAMEL-16844: Regen component docs

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

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

commit b7c12e6f2d63fdd6e88f6534b5d226103ab80328
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Aug 5 15:15:30 2021 +0200

    CAMEL-16844: Regen component docs
---
 .../org/apache/camel/catalog/docs.properties       |    1 +
 .../camel/catalog/docs/activemq-component.adoc     |  295 ++
 .../apache/camel/catalog/docs/ahc-component.adoc   |  407 ++
 .../camel/catalog/docs/ahc-ws-component.adoc       |  173 +
 .../apache/camel/catalog/docs/amqp-component.adoc  |  395 ++
 .../camel/catalog/docs/arangodb-component.adoc     |  103 +
 .../apache/camel/catalog/docs/as2-component.adoc   |  258 ++
 .../camel/catalog/docs/asterisk-component.adoc     |  101 +
 .../camel/catalog/docs/atlasmap-component.adoc     |  110 +
 .../apache/camel/catalog/docs/atmos-component.adoc |  157 +
 .../docs/atmosphere-websocket-component.adoc       |  177 +
 .../apache/camel/catalog/docs/atom-component.adoc  |  161 +
 .../camel/catalog/docs/atomix-map-component.adoc   |  220 ++
 .../catalog/docs/atomix-messaging-component.adoc   |  117 +
 .../catalog/docs/atomix-multimap-component.adoc    |  111 +
 .../camel/catalog/docs/atomix-queue-component.adoc |  111 +
 .../camel/catalog/docs/atomix-set-component.adoc   |  113 +
 .../camel/catalog/docs/atomix-value-component.adoc |  113 +
 .../apache/camel/catalog/docs/avro-component.adoc  |  285 ++
 .../docs/aws-secrets-manager-component.adoc        |  142 +
 .../org/apache/camel/catalog/docs/aws-xray.adoc    |   75 +-
 .../camel/catalog/docs/aws2-athena-component.adoc  |  529 +++
 .../camel/catalog/docs/aws2-cw-component.adoc      |  192 +
 .../camel/catalog/docs/aws2-ddb-component.adoc     |  376 ++
 .../catalog/docs/aws2-ddbstream-component.adoc     |  206 ++
 .../camel/catalog/docs/aws2-ec2-component.adoc     |  267 ++
 .../camel/catalog/docs/aws2-ecs-component.adoc     |  193 +
 .../camel/catalog/docs/aws2-eks-component.adoc     |  201 +
 .../catalog/docs/aws2-eventbridge-component.adoc   |  345 ++
 .../camel/catalog/docs/aws2-iam-component.adoc     |  260 ++
 .../camel/catalog/docs/aws2-kinesis-component.adoc |  246 ++
 .../docs/aws2-kinesis-firehose-component.adoc      |  237 ++
 .../camel/catalog/docs/aws2-kms-component.adoc     |  222 ++
 .../camel/catalog/docs/aws2-lambda-component.adoc  |  262 ++
 .../camel/catalog/docs/aws2-mq-component.adoc      |  253 ++
 .../camel/catalog/docs/aws2-msk-component.adoc     |  244 ++
 .../camel/catalog/docs/aws2-s3-component.adoc      |  717 ++++
 .../camel/catalog/docs/aws2-ses-component.adoc     |  204 +
 .../camel/catalog/docs/aws2-sns-component.adoc     |  280 ++
 .../camel/catalog/docs/aws2-sqs-component.adoc     |  425 +++
 .../camel/catalog/docs/aws2-sts-component.adoc     |  202 +
 .../catalog/docs/aws2-translate-component.adoc     |  202 +
 .../catalog/docs/azure-cosmosdb-component.adoc     |  472 +++
 .../catalog/docs/azure-eventhubs-component.adoc    |  266 ++
 .../catalog/docs/azure-storage-blob-component.adoc |  721 ++++
 .../docs/azure-storage-datalake-component.adoc     |  575 +++
 .../docs/azure-storage-queue-component.adoc        |  428 +++
 .../apache/camel/catalog/docs/bean-component.adoc  |  166 +
 .../catalog/docs/bean-validator-component.adoc     |  298 ++
 .../camel/catalog/docs/beanstalk-component.adoc    |  236 ++
 .../camel/catalog/docs/bonita-component.adoc       |  109 +
 .../apache/camel/catalog/docs/box-component.adoc   | 1050 ++++++
 .../camel/catalog/docs/braintree-component.adoc    | 1117 ++++++
 .../camel/catalog/docs/browse-component.adoc       |  110 +
 .../catalog/docs/caffeine-cache-component.adoc     |  146 +
 .../catalog/docs/caffeine-loadcache-component.adoc |  117 +
 .../camel/catalog/docs/chatscript-component.adoc   |   84 +
 .../apache/camel/catalog/docs/chunk-component.adoc |  198 +
 .../apache/camel/catalog/docs/class-component.adoc |  136 +
 .../camel/catalog/docs/cm-sms-component.adoc       |   82 +
 .../apache/camel/catalog/docs/cmis-component.adoc  |  150 +
 .../apache/camel/catalog/docs/coap-component.adoc  |  136 +
 .../camel/catalog/docs/cometd-component.adoc       |  207 ++
 .../camel/catalog/docs/consul-component.adoc       |  225 ++
 .../camel/catalog/docs/controlbus-component.adoc   |  199 +
 .../apache/camel/catalog/docs/corda-component.adoc |  140 +
 .../camel/catalog/docs/couchbase-component.adoc    |  141 +
 .../camel/catalog/docs/couchdb-component.adoc      |  179 +
 .../apache/camel/catalog/docs/cql-component.adoc   |  272 ++
 .../apache/camel/catalog/docs/cron-component.adoc  |  138 +
 .../camel/catalog/docs/crypto-component.adoc       |  265 ++
 .../apache/camel/catalog/docs/cxf-component.adoc   | 1194 ++++++
 .../apache/camel/catalog/docs/cxfrs-component.adoc |  480 +++
 .../camel/catalog/docs/dataformat-component.adoc   |  111 +
 .../camel/catalog/docs/dataset-component.adoc      |  247 ++
 .../camel/catalog/docs/dataset-test-component.adoc |  133 +
 .../catalog/docs/debezium-mongodb-component.adoc   |  258 ++
 .../catalog/docs/debezium-mysql-component.adoc     |  346 ++
 .../catalog/docs/debezium-postgres-component.adoc  |  332 ++
 .../catalog/docs/debezium-sqlserver-component.adoc |  298 ++
 .../camel/catalog/docs/digitalocean-component.adoc |  473 +++
 .../camel/catalog/docs/direct-component.adoc       |  141 +
 .../camel/catalog/docs/direct-vm-component.adoc    |  148 +
 .../camel/catalog/docs/disruptor-component.adoc    |  304 ++
 .../camel/catalog/docs/disruptor-vm-component.adoc |   95 +
 .../apache/camel/catalog/docs/djl-component.adoc   |  248 ++
 .../apache/camel/catalog/docs/dns-component.adoc   |  194 +
 .../camel/catalog/docs/docker-component.adoc       |  167 +
 .../apache/camel/catalog/docs/dozer-component.adoc |  302 ++
 .../apache/camel/catalog/docs/drill-component.adoc |   95 +
 .../camel/catalog/docs/dropbox-component.adoc      |  435 +++
 .../camel/catalog/docs/ehcache-component.adoc      |  244 ++
 .../catalog/docs/elasticsearch-rest-component.adoc |  321 ++
 .../apache/camel/catalog/docs/elsql-component.adoc |  282 ++
 .../camel/catalog/docs/etcd-keys-component.adoc    |   87 +
 .../camel/catalog/docs/etcd-stats-component.adoc   |  111 +
 .../camel/catalog/docs/etcd-watch-component.adoc   |   93 +
 .../apache/camel/catalog/docs/exec-component.adoc  |  261 ++
 .../camel/catalog/docs/facebook-component.adoc     |  348 ++
 .../apache/camel/catalog/docs/fhir-component.adoc  | 1052 ++++++
 .../apache/camel/catalog/docs/file-component.adoc  | 1135 ++++++
 .../camel/catalog/docs/file-watch-component.adoc   |  147 +
 .../camel/catalog/docs/flatpack-component.adoc     |  312 ++
 .../apache/camel/catalog/docs/flink-component.adoc |  154 +
 .../apache/camel/catalog/docs/fop-component.adoc   |  178 +
 .../camel/catalog/docs/freemarker-component.adoc   |  243 ++
 .../apache/camel/catalog/docs/ftp-component.adoc   |  766 ++++
 .../apache/camel/catalog/docs/ftps-component.adoc  |  204 +
 .../camel/catalog/docs/ganglia-component.adoc      |  154 +
 .../camel/catalog/docs/geocoder-component.adoc     |  197 +
 .../apache/camel/catalog/docs/git-component.adoc   |  150 +
 .../camel/catalog/docs/github-component.adoc       |  174 +
 .../catalog/docs/google-bigquery-component.adoc    |  170 +
 .../docs/google-bigquery-sql-component.adoc        |  148 +
 .../catalog/docs/google-calendar-component.adoc    |  637 ++++
 .../docs/google-calendar-stream-component.adoc     |  654 ++++
 .../camel/catalog/docs/google-drive-component.adoc |  995 +++++
 .../catalog/docs/google-functions-component.adoc   |  275 ++
 .../camel/catalog/docs/google-mail-component.adoc  |  668 ++++
 .../catalog/docs/google-mail-stream-component.adoc |  668 ++++
 .../catalog/docs/google-pubsub-component.adoc      |  180 +
 .../catalog/docs/google-sheets-component.adoc      |  329 ++
 .../docs/google-sheets-stream-component.adoc       |  334 ++
 .../catalog/docs/google-storage-component.adoc     |  398 ++
 .../apache/camel/catalog/docs/gora-component.adoc  |  282 ++
 .../apache/camel/catalog/docs/grape-component.adoc |  242 ++
 .../camel/catalog/docs/graphql-component.adoc      |  178 +
 .../apache/camel/catalog/docs/grpc-component.adoc  |  304 ++
 .../catalog/docs/guava-eventbus-component.adoc     |  227 ++
 .../docs/hazelcast-atomicvalue-component.adoc      |  223 ++
 .../catalog/docs/hazelcast-instance-component.adoc |  113 +
 .../catalog/docs/hazelcast-list-component.adoc     |  150 +
 .../catalog/docs/hazelcast-map-component.adoc      |  350 ++
 .../catalog/docs/hazelcast-multimap-component.adoc |  252 ++
 .../catalog/docs/hazelcast-queue-component.adoc    |  238 ++
 .../docs/hazelcast-replicatedmap-component.adoc    |  224 ++
 .../docs/hazelcast-ringbuffer-component.adoc       |  130 +
 .../catalog/docs/hazelcast-seda-component.adoc     |  128 +
 .../catalog/docs/hazelcast-set-component.adoc      |   76 +
 .../catalog/docs/hazelcast-topic-component.adoc    |  109 +
 .../apache/camel/catalog/docs/hbase-component.adoc |  503 +++
 .../apache/camel/catalog/docs/hdfs-component.adoc  |  327 ++
 .../apache/camel/catalog/docs/http-component.adoc  |  689 ++++
 .../docs/hwcloud-functiongraph-component.adoc      |  155 +
 .../camel/catalog/docs/hwcloud-iam-component.adoc  |  179 +
 .../camel/catalog/docs/hwcloud-smn-component.adoc  |  212 ++
 .../catalog/docs/iec60870-client-component.adoc    |  127 +
 .../catalog/docs/iec60870-server-component.adoc    |  113 +
 .../camel/catalog/docs/ignite-cache-component.adoc |  120 +
 .../catalog/docs/ignite-compute-component.adoc     |  117 +
 .../catalog/docs/ignite-events-component.adoc      |   77 +
 .../camel/catalog/docs/ignite-idgen-component.adoc |   74 +
 .../catalog/docs/ignite-messaging-component.adoc   |   92 +
 .../camel/catalog/docs/ignite-queue-component.adoc |   93 +
 .../camel/catalog/docs/ignite-set-component.adoc   |   82 +
 .../camel/catalog/docs/infinispan-component.adoc   |  489 +++
 .../docs/infinispan-embedded-component.adoc        |  486 +++
 .../camel/catalog/docs/influxdb-component.adoc     |  116 +
 .../apache/camel/catalog/docs/iota-component.adoc  |  156 +
 .../apache/camel/catalog/docs/ipfs-component.adoc  |   96 +
 .../apache/camel/catalog/docs/irc-component.adoc   |  220 ++
 .../camel/catalog/docs/ironmq-component.adoc       |  165 +
 .../apache/camel/catalog/docs/jbpm-component.adoc  |  287 ++
 .../camel/catalog/docs/jcache-component.adoc       |  327 ++
 .../camel/catalog/docs/jclouds-component.adoc      |  370 ++
 .../apache/camel/catalog/docs/jcr-component.adoc   |  135 +
 .../apache/camel/catalog/docs/jdbc-component.adoc  |  317 ++
 .../apache/camel/catalog/docs/jetty-component.adoc |  701 ++++
 .../camel/catalog/docs/jgroups-component.adoc      |  266 ++
 .../camel/catalog/docs/jgroups-raft-component.adoc |  189 +
 .../apache/camel/catalog/docs/jing-component.adoc  |  124 +
 .../apache/camel/catalog/docs/jira-component.adoc  |  281 ++
 .../apache/camel/catalog/docs/jms-component.adoc   | 1326 +++++++
 .../apache/camel/catalog/docs/jmx-component.adoc   |  104 +
 .../apache/camel/catalog/docs/jolt-component.adoc  |  129 +
 .../apache/camel/catalog/docs/jooq-component.adoc  |  288 ++
 .../apache/camel/catalog/docs/jpa-component.adoc   |  426 +++
 .../apache/camel/catalog/docs/jslt-component.adoc  |  169 +
 .../catalog/docs/json-validator-component.adoc     |  155 +
 .../camel/catalog/docs/jsonata-component.adoc      |  113 +
 .../apache/camel/catalog/docs/jt400-component.adoc |  295 ++
 .../apache/camel/catalog/docs/kafka-component.adoc |  622 ++++
 .../camel/catalog/docs/kamelet-component.adoc      |  149 +
 .../catalog/docs/kamelet-reify-component.adoc      |   81 +
 .../docs/kubernetes-config-maps-component.adoc     |  149 +
 .../kubernetes-custom-resources-component.adoc     |  109 +
 .../docs/kubernetes-deployments-component.adoc     |  159 +
 .../catalog/docs/kubernetes-hpa-component.adoc     |  158 +
 .../catalog/docs/kubernetes-job-component.adoc     |  245 ++
 .../docs/kubernetes-namespaces-component.adoc      |  158 +
 .../catalog/docs/kubernetes-nodes-component.adoc   |  160 +
 ...rnetes-persistent-volumes-claims-component.adoc |  128 +
 .../kubernetes-persistent-volumes-component.adoc   |  125 +
 .../catalog/docs/kubernetes-pods-component.adoc    |  159 +
 ...bernetes-replication-controllers-component.adoc |  161 +
 .../docs/kubernetes-resources-quota-component.adoc |  128 +
 .../catalog/docs/kubernetes-secrets-component.adoc |  128 +
 .../kubernetes-service-accounts-component.adoc     |  127 +
 .../docs/kubernetes-services-component.adoc        |  159 +
 .../apache/camel/catalog/docs/kudu-component.adoc  |  103 +
 .../camel/catalog/docs/language-component.adoc     |  147 +
 .../apache/camel/catalog/docs/ldap-component.adoc  |  352 ++
 .../apache/camel/catalog/docs/ldif-component.adoc  |  193 +
 .../apache/camel/catalog/docs/log-component.adoc   |  328 ++
 .../apache/camel/catalog/docs/lpr-component.adoc   |  162 +
 .../camel/catalog/docs/lucene-component.adoc       |  234 ++
 .../camel/catalog/docs/lumberjack-component.adoc   |  110 +
 .../apache/camel/catalog/docs/mail-component.adoc  |  698 ++++
 .../camel/catalog/docs/master-component.adoc       |  176 +
 .../camel/catalog/docs/metrics-component.adoc      |  632 ++++
 .../camel/catalog/docs/micrometer-component.adoc   |  575 +++
 .../docs/microprofile-metrics-component.adoc       |  476 +++
 .../camel/catalog/docs/milo-client-component.adoc  |  246 ++
 .../camel/catalog/docs/milo-server-component.adoc  |  113 +
 .../apache/camel/catalog/docs/mina-component.adoc  |  293 ++
 .../apache/camel/catalog/docs/minio-component.adoc |  509 +++
 .../apache/camel/catalog/docs/mllp-component.adoc  |  220 ++
 .../apache/camel/catalog/docs/mock-component.adoc  |  490 +++
 .../camel/catalog/docs/mongodb-component.adoc      | 1038 ++++++
 .../catalog/docs/mongodb-gridfs-component.adoc     |  210 ++
 .../apache/camel/catalog/docs/msv-component.adoc   |  123 +
 .../camel/catalog/docs/mustache-component.adoc     |  188 +
 .../apache/camel/catalog/docs/mvel-component.adoc  |  195 +
 .../camel/catalog/docs/mybatis-bean-component.adoc |  165 +
 .../camel/catalog/docs/mybatis-component.adoc      |  417 +++
 .../camel/catalog/docs/nagios-component.adoc       |  153 +
 .../apache/camel/catalog/docs/nats-component.adoc  |  207 ++
 .../apache/camel/catalog/docs/netty-component.adoc |  790 ++++
 .../camel/catalog/docs/netty-http-component.adoc   |  625 ++++
 .../camel/catalog/docs/nitrite-component.adoc      |  195 +
 .../apache/camel/catalog/docs/nsq-component.adoc   |  138 +
 .../camel/catalog/docs/oaipmh-component.adoc       |  154 +
 .../camel/catalog/docs/olingo2-component.adoc      |  361 ++
 .../camel/catalog/docs/olingo4-component.adoc      |  355 ++
 .../docs/openshift-build-configs-component.adoc    |  125 +
 .../catalog/docs/openshift-builds-component.adoc   |  124 +
 .../catalog/docs/openstack-cinder-component.adoc   |  193 +
 .../catalog/docs/openstack-glance-component.adoc   |  150 +
 .../catalog/docs/openstack-keystone-component.adoc |  298 ++
 .../catalog/docs/openstack-neutron-component.adoc  |  271 ++
 .../catalog/docs/openstack-nova-component.adoc     |  221 ++
 .../catalog/docs/openstack-swift-component.adoc    |  197 +
 .../camel/catalog/docs/optaplanner-component.adoc  |  166 +
 .../apache/camel/catalog/docs/paho-component.adoc  |  230 ++
 .../camel/catalog/docs/paho-mqtt5-component.adoc   |  229 ++
 .../apache/camel/catalog/docs/pdf-component.adoc   |  118 +
 .../docs/pg-replication-slot-component.adoc        |  132 +
 .../camel/catalog/docs/pgevent-component.adoc      |  109 +
 .../catalog/docs/platform-http-component.adoc      |   88 +
 .../camel/catalog/docs/platform-http-vertx.adoc    |    6 +-
 .../camel/catalog/docs/properties-component.adoc   |  963 +++++
 .../camel/catalog/docs/pubnub-component.adoc       |  225 ++
 .../camel/catalog/docs/pulsar-component.adoc       |  154 +
 .../camel/catalog/docs/quartz-component.adoc       |  426 +++
 .../camel/catalog/docs/quickfix-component.adoc     |  516 +++
 .../camel/catalog/docs/rabbitmq-component.adoc     |  419 +++
 .../catalog/docs/reactive-streams-component.adoc   |  405 ++
 .../apache/camel/catalog/docs/ref-component.adoc   |  125 +
 .../camel/catalog/docs/rest-api-component.adoc     |   69 +
 .../apache/camel/catalog/docs/rest-component.adoc  |  264 ++
 .../camel/catalog/docs/rest-openapi-component.adoc |  223 ++
 .../camel/catalog/docs/rest-swagger-component.adoc |  223 ++
 .../camel/catalog/docs/resteasy-component.adoc     |  216 ++
 .../catalog/docs/robotframework-component.adoc     |  293 ++
 .../apache/camel/catalog/docs/rss-component.adoc   |  179 +
 .../apache/camel/catalog/docs/rss-dataformat.adoc  |   27 +
 .../apache/camel/catalog/docs/saga-component.adoc  |   75 +
 .../camel/catalog/docs/salesforce-component.adoc   | 1002 +++++
 .../catalog/docs/sap-netweaver-component.adoc      |  199 +
 .../camel/catalog/docs/scheduler-component.adoc    |  174 +
 .../camel/catalog/docs/schematron-component.adoc   |  206 ++
 .../apache/camel/catalog/docs/scp-component.adoc   |  124 +
 .../apache/camel/catalog/docs/seda-component.adoc  |  309 ++
 .../camel/catalog/docs/service-component.adoc      |   83 +
 .../camel/catalog/docs/servicenow-component.adoc   |  361 ++
 .../camel/catalog/docs/servlet-component.adoc      |  483 +++
 .../apache/camel/catalog/docs/sftp-component.adoc  |  206 ++
 .../apache/camel/catalog/docs/sip-component.adoc   |  237 ++
 .../apache/camel/catalog/docs/sjms-component.adoc  |  316 ++
 .../apache/camel/catalog/docs/sjms2-component.adoc |  321 ++
 .../apache/camel/catalog/docs/slack-component.adoc |  221 ++
 .../apache/camel/catalog/docs/smpp-component.adoc  |  647 ++++
 .../apache/camel/catalog/docs/snmp-component.adoc  |  214 ++
 .../apache/camel/catalog/docs/solr-component.adoc  |  217 ++
 .../camel/catalog/docs/soroush-component.adoc      |  267 ++
 .../apache/camel/catalog/docs/spark-component.adoc |  404 ++
 .../camel/catalog/docs/splunk-component.adoc       |  257 ++
 .../camel/catalog/docs/splunk-hec-component.adoc   |  147 +
 .../camel/catalog/docs/spring-batch-component.adoc |  281 ++
 .../camel/catalog/docs/spring-event-component.adoc |   86 +
 .../catalog/docs/spring-integration-component.adoc |  133 +
 .../camel/catalog/docs/spring-jdbc-component.adoc  |   97 +
 .../camel/catalog/docs/spring-ldap-component.adoc  |  157 +
 .../catalog/docs/spring-rabbitmq-component.adoc    |  332 ++
 .../camel/catalog/docs/spring-redis-component.adoc |  407 ++
 .../camel/catalog/docs/spring-ws-component.adoc    |  571 +++
 .../apache/camel/catalog/docs/sql-component.adoc   |  886 +++++
 .../camel/catalog/docs/sql-stored-component.adoc   |  270 ++
 .../apache/camel/catalog/docs/ssh-component.adoc   |  228 ++
 .../apache/camel/catalog/docs/stax-component.adoc  |  232 ++
 .../camel/catalog/docs/stitch-component.adoc       |  322 ++
 .../apache/camel/catalog/docs/stomp-component.adoc |  162 +
 .../camel/catalog/docs/stream-component.adoc       |  165 +
 .../catalog/docs/string-template-component.adoc    |  174 +
 .../apache/camel/catalog/docs/stub-component.adoc  |  120 +
 .../camel/catalog/docs/telegram-component.adoc     |  435 +++
 .../camel/catalog/docs/thrift-component.adoc       |  176 +
 .../apache/camel/catalog/docs/tika-component.adoc  |  108 +
 .../apache/camel/catalog/docs/timer-component.adoc |  182 +
 .../camel/catalog/docs/twilio-component.adoc       | 3892 ++++++++++++++++++++
 .../docs/twitter-directmessage-component.adoc      |  123 +
 .../catalog/docs/twitter-search-component.adoc     |  115 +
 .../catalog/docs/twitter-timeline-component.adoc   |  117 +
 .../camel/catalog/docs/undertow-component.adoc     |  227 ++
 .../camel/catalog/docs/validator-component.adoc    |  124 +
 .../camel/catalog/docs/velocity-component.adoc     |  274 ++
 .../apache/camel/catalog/docs/vertx-component.adoc |  120 +
 .../camel/catalog/docs/vertx-http-component.adoc   |  253 ++
 .../camel/catalog/docs/vertx-kafka-component.adoc  |  508 +++
 .../catalog/docs/vertx-websocket-component.adoc    |  132 +
 .../apache/camel/catalog/docs/vm-component.adoc    |  144 +
 .../camel/catalog/docs/weather-component.adoc      |  189 +
 .../apache/camel/catalog/docs/web3j-component.adoc |  197 +
 .../camel/catalog/docs/webhook-component.adoc      |  110 +
 .../camel/catalog/docs/websocket-component.adoc    |  265 ++
 .../catalog/docs/websocket-jsr356-component.adoc   |   89 +
 .../apache/camel/catalog/docs/weka-component.adoc  |  258 ++
 .../camel/catalog/docs/wordpress-component.adoc    |  142 +
 .../camel/catalog/docs/workday-component.adoc      |   89 +
 .../camel/catalog/docs/xchange-component.adoc      |  122 +
 .../apache/camel/catalog/docs/xj-component.adoc    |  502 +++
 .../catalog/docs/xmlsecurity-sign-component.adoc   |  727 ++++
 .../catalog/docs/xmlsecurity-verify-component.adoc |  638 ++++
 .../apache/camel/catalog/docs/xmpp-component.adoc  |  184 +
 .../camel/catalog/docs/xquery-component.adoc       |  303 ++
 .../apache/camel/catalog/docs/xslt-component.adoc  |  244 ++
 .../camel/catalog/docs/xslt-saxon-component.adoc   |  288 ++
 .../camel/catalog/docs/yammer-component.adoc       |  343 ++
 .../camel/catalog/docs/zendesk-component.adoc      | 1385 +++++++
 .../camel/catalog/docs/zookeeper-component.adoc    |  242 ++
 .../catalog/docs/zookeeper-master-component.adoc   |  167 +
 .../src/main/docs/activemq-component.adoc          |  237 ++
 .../src/main/docs/ahc-ws-component.adoc            |   66 +
 .../camel-ahc/src/main/docs/ahc-component.adoc     |   60 +
 .../camel-amqp/src/main/docs/amqp-component.adoc   |  233 ++
 .../src/main/docs/arangodb-component.adoc          |   60 +
 .../src/main/docs/as2-component.adoc               |  209 ++
 .../src/main/docs/asterisk-component.adoc          |   49 +
 .../src/main/docs/atlasmap-component.adoc          |   48 +
 .../camel-atmos/src/main/docs/atmos-component.adoc |   58 +
 .../main/docs/atmosphere-websocket-component.adoc  |   75 +
 .../camel-atom/src/main/docs/atom-component.adoc   |   67 +
 .../src/main/docs/atomix-map-component.adoc        |   74 +
 .../src/main/docs/atomix-messaging-component.adoc  |   76 +
 .../src/main/docs/atomix-multimap-component.adoc   |   70 +
 .../src/main/docs/atomix-queue-component.adoc      |   70 +
 .../src/main/docs/atomix-set-component.adoc        |   72 +
 .../src/main/docs/atomix-value-component.adoc      |   72 +
 .../src/main/docs/avro-component.adoc              |   61 +
 .../main/docs/aws-secrets-manager-component.adoc   |   70 +
 .../src/main/docs/aws2-athena-component.adoc       |   96 +
 .../src/main/docs/aws2-cw-component.adoc           |   72 +
 .../src/main/docs/aws2-ddb-component.adoc          |   78 +
 .../src/main/docs/aws2-ddbstream-component.adoc    |   88 +
 .../src/main/docs/aws2-ec2-component.adoc          |   68 +
 .../src/main/docs/aws2-ecs-component.adoc          |   68 +
 .../src/main/docs/aws2-eks-component.adoc          |   68 +
 .../src/main/docs/aws2-eventbridge-component.adoc  |   70 +
 .../src/main/docs/aws2-iam-component.adoc          |   68 +
 .../src/main/docs/aws2-kinesis-component.adoc      |   96 +
 .../main/docs/aws2-kinesis-firehose-component.adoc |    5 +
 .../src/main/docs/aws2-kms-component.adoc          |   68 +
 .../src/main/docs/aws2-lambda-component.adoc       |   68 +
 .../src/main/docs/aws2-mq-component.adoc           |   68 +
 .../src/main/docs/aws2-msk-component.adoc          |   68 +
 .../src/main/docs/aws2-s3-component.adoc           |  156 +
 .../src/main/docs/aws2-ses-component.adoc          |   72 +
 .../src/main/docs/aws2-sns-component.adoc          |   85 +
 .../src/main/docs/aws2-sqs-component.adoc          |  142 +
 .../src/main/docs/aws2-sts-component.adoc          |   68 +
 .../src/main/docs/aws2-translate-component.adoc    |   74 +
 .../src/main/docs/azure-cosmosdb-component.adoc    |   97 +
 .../src/main/docs/azure-eventhubs-component.adoc   |   79 +
 .../src/main/docs/azure-servicebus-component.adoc  |   84 +
 .../main/docs/azure-storage-blob-component.adoc    |  116 +
 .../docs/azure-storage-datalake-component.adoc     |  122 +
 .../main/docs/azure-storage-queue-component.adoc   |   85 +
 .../src/main/docs/bean-validator-component.adoc    |   54 +
 .../camel-bean/src/main/docs/bean-component.adoc   |   47 +
 .../camel-bean/src/main/docs/class-component.adoc  |   47 +
 .../src/main/docs/beanstalk-component.adoc         |   69 +
 .../src/main/docs/bonita-component.adoc            |   46 +
 .../src/main/docs/box-component.adoc               |  951 +++++
 .../src/main/docs/braintree-component.adoc         | 1026 ++++++
 .../src/main/docs/browse-component.adoc            |   45 +
 .../src/main/docs/caffeine-cache-component.adoc    |   70 +
 .../main/docs/caffeine-loadcache-component.adoc    |   70 +
 .../src/main/docs/cql-component.adoc               |   74 +
 .../src/main/docs/chatscript-component.adoc        |   45 +
 .../camel-chunk/src/main/docs/chunk-component.adoc |   51 +
 .../src/main/docs/cm-sms-component.adoc            |   45 +
 .../camel-cmis/src/main/docs/cmis-component.adoc   |   55 +
 .../camel-coap/src/main/docs/coap-component.adoc   |   55 +
 .../src/main/docs/cometd-component.adoc            |   66 +
 .../src/main/docs/consul-component.adoc            |   95 +
 .../src/main/docs/controlbus-component.adoc        |   47 +
 .../camel-corda/src/main/docs/corda-component.adoc |   66 +
 .../src/main/docs/couchbase-component.adoc         |   88 +
 .../src/main/docs/couchdb-component.adoc           |   56 +
 .../camel-cron/src/main/docs/cron-component.adoc   |   45 +
 .../src/main/docs/crypto-component.adoc            |   79 +
 .../camel-cxf/src/main/docs/cxf-component.adoc     |   80 +
 .../camel-cxf/src/main/docs/cxfrs-component.adoc   |   75 +
 .../src/main/docs/dataformat-component.adoc        |    5 +
 .../src/main/docs/dataset-component.adoc           |   64 +
 .../src/main/docs/dataset-test-component.adoc      |   58 +
 .../src/main/docs/debezium-mongodb-component.adoc  |  154 +
 .../src/main/docs/debezium-mysql-component.adoc    |  222 ++
 .../src/main/docs/debezium-postgres-component.adoc |  216 ++
 .../main/docs/debezium-sqlserver-component.adoc    |  184 +
 .../src/main/docs/digitalocean-component.adoc      |   50 +
 .../src/main/docs/direct-component.adoc            |   51 +
 .../src/main/docs/direct-vm-component.adoc         |   54 +
 .../src/main/docs/disruptor-component.adoc         |   59 +
 .../camel-djl/src/main/docs/djl-component.adoc     |   44 +
 .../camel-dns/src/main/docs/dns-component.adoc     |   41 +
 .../src/main/docs/docker-component.adoc            |   80 +
 .../camel-dozer/src/main/docs/dozer-component.adoc |   47 +
 .../camel-drill/src/main/docs/drill-component.adoc |   45 +
 .../src/main/docs/dropbox-component.adoc           |   53 +
 .../src/main/docs/ehcache-component.adoc           |   71 +
 .../main/docs/elasticsearch-rest-component.adoc    |   70 +-
 .../camel-elsql/src/main/docs/elsql-component.adoc |   93 +
 .../src/main/docs/etcd-keys-component.adoc         |   59 +
 .../src/main/docs/etcd-stats-component.adoc        |   83 +
 .../src/main/docs/etcd-watch-component.adoc        |   63 +
 .../camel-exec/src/main/docs/exec-component.adoc   |   49 +
 .../src/main/docs/facebook-component.adoc          |  171 +
 .../src/main/docs/fhir-component.adoc              |  990 +++++
 .../src/main/docs/file-watch-component.adoc        |   57 +
 .../camel-file/src/main/docs/file-component.adoc   |  134 +
 .../src/main/docs/flatpack-component.adoc          |   68 +
 .../camel-flink/src/main/docs/flink-component.adoc |   49 +
 .../camel-fop/src/main/docs/fop-component.adoc     |   43 +
 .../src/main/docs/freemarker-component.adoc        |   51 +
 .../camel-ftp/src/main/docs/ftp-component.adoc     |  154 +
 .../camel-ftp/src/main/docs/ftps-component.adoc    |  163 +
 .../camel-ftp/src/main/docs/sftp-component.adoc    |  166 +
 .../src/main/docs/ganglia-component.adoc           |   67 +
 .../src/main/docs/geocoder-component.adoc          |   57 +
 .../camel-git/src/main/docs/git-component.adoc     |   54 +
 .../src/main/docs/github-component.adoc            |   71 +
 .../src/main/docs/google-bigquery-component.adoc   |   48 +
 .../main/docs/google-bigquery-sql-component.adoc   |   45 +
 .../src/main/docs/google-calendar-component.adoc   |  586 +++
 .../docs/google-calendar-stream-component.adoc     |  594 +++
 .../src/main/docs/google-drive-component.adoc      |  930 +++++
 .../src/main/docs/google-functions-component.adoc  |   47 +
 .../src/main/docs/google-mail-component.adoc       |  604 +++
 .../main/docs/google-mail-stream-component.adoc    |  608 +++
 .../src/main/docs/google-pubsub-component.adoc     |   60 +
 .../src/main/docs/google-sheets-component.adoc     |  259 ++
 .../main/docs/google-sheets-stream-component.adoc  |  269 ++
 .../src/main/docs/google-storage-component.adoc    |   86 +
 .../camel-gora/src/main/docs/gora-component.adoc   |   62 +
 .../camel-grape/src/main/docs/grape-component.adoc |   42 +
 .../src/main/docs/graphql-component.adoc           |   50 +
 .../camel-grpc/src/main/docs/grpc-component.adoc   |   71 +
 .../src/main/docs/guava-eventbus-component.adoc    |   49 +
 .../main/docs/hazelcast-atomicvalue-component.adoc |   46 +
 .../main/docs/hazelcast-instance-component.adoc    |   48 +
 .../src/main/docs/hazelcast-list-component.adoc    |   50 +
 .../src/main/docs/hazelcast-map-component.adoc     |   50 +
 .../main/docs/hazelcast-multimap-component.adoc    |   50 +
 .../src/main/docs/hazelcast-queue-component.adoc   |   53 +
 .../docs/hazelcast-replicatedmap-component.adoc    |   50 +
 .../main/docs/hazelcast-ringbuffer-component.adoc  |   46 +
 .../src/main/docs/hazelcast-seda-component.adoc    |   55 +
 .../src/main/docs/hazelcast-set-component.adoc     |   50 +
 .../src/main/docs/hazelcast-topic-component.adoc   |   51 +
 .../camel-hbase/src/main/docs/hbase-component.adoc |   59 +
 .../camel-hdfs/src/main/docs/hdfs-component.adoc   |   90 +
 .../camel-http/src/main/docs/http-component.adoc   |  126 +
 .../main/docs/hwcloud-functiongraph-component.adoc |   54 +
 .../src/main/docs/hwcloud-iam-component.adoc       |   52 +
 .../src/main/docs/hwcloud-obs-component.adoc       |   81 +
 .../src/main/docs/hwcloud-smn-component.adoc       |   54 +
 .../src/main/docs/iec60870-client-component.adoc   |   62 +
 .../src/main/docs/iec60870-server-component.adoc   |   63 +
 .../src/main/docs/ignite-cache-component.adoc      |   60 +
 .../src/main/docs/ignite-compute-component.adoc    |   51 +
 .../src/main/docs/ignite-events-component.adoc     |   50 +
 .../src/main/docs/ignite-idgen-component.adoc      |   49 +
 .../src/main/docs/ignite-messaging-component.adoc  |   53 +
 .../src/main/docs/ignite-queue-component.adoc      |   50 +
 .../src/main/docs/ignite-set-component.adoc        |   48 +
 .../main/docs/infinispan-embedded-component.adoc   |   78 +
 .../src/main/docs/infinispan-component.adoc        |   90 +
 .../src/main/docs/influxdb-component.adoc          |   47 +
 .../camel-iota/src/main/docs/iota-component.adoc   |   47 +
 .../camel-ipfs/src/main/docs/ipfs-component.adoc   |   44 +
 .../camel-irc/src/main/docs/irc-component.adoc     |   70 +
 .../src/main/docs/ironmq-component.adoc            |   72 +
 .../camel-jbpm/src/main/docs/jbpm-component.adoc   |   73 +
 .../src/main/docs/jcache-component.adoc            |   69 +
 .../src/main/docs/jclouds-component.adoc           |   59 +
 .../camel-jcr/src/main/docs/jcr-component.adoc     |   56 +
 .../camel-jdbc/src/main/docs/jdbc-component.adoc   |   56 +
 .../camel-jetty/src/main/docs/jetty-component.adoc |  102 +
 .../src/main/docs/jgroups-raft-component.adoc      |   50 +
 .../src/main/docs/jgroups-component.adoc           |   50 +
 .../camel-jing/src/main/docs/jing-component.adoc   |   42 +
 .../camel-jira/src/main/docs/jira-component.adoc   |   66 +
 .../camel-jms/src/main/docs/jms-component.adoc     |  232 ++
 .../camel-jmx/src/main/docs/jmx-component.adoc     |   69 +
 .../camel-jolt/src/main/docs/jolt-component.adoc   |   49 +
 .../camel-jooq/src/main/docs/jooq-component.adoc   |   70 +
 .../camel-jpa/src/main/docs/jpa-component.adoc     |   89 +
 .../camel-jsch/src/main/docs/scp-component.adoc    |   66 +
 .../camel-jslt/src/main/docs/jslt-component.adoc   |   50 +
 .../src/main/docs/json-validator-component.adoc    |   48 +
 .../src/main/docs/jsonata-component.adoc           |   45 +
 .../camel-jt400/src/main/docs/jt400-component.adoc |   79 +
 .../camel-kafka/src/main/docs/kafka-component.adoc |  240 ++
 .../src/main/docs/kamelet-reify-component.adoc     |   45 +
 .../src/main/docs/kamelet-component.adoc           |   56 +
 .../docs/kubernetes-config-maps-component.adoc     |   60 +
 .../kubernetes-custom-resources-component.adoc     |   74 +
 .../docs/kubernetes-deployments-component.adoc     |   74 +
 .../src/main/docs/kubernetes-hpa-component.adoc    |   74 +
 .../src/main/docs/kubernetes-job-component.adoc    |   74 +
 .../main/docs/kubernetes-namespaces-component.adoc |   74 +
 .../src/main/docs/kubernetes-nodes-component.adoc  |   74 +
 ...rnetes-persistent-volumes-claims-component.adoc |   60 +
 .../kubernetes-persistent-volumes-component.adoc   |   60 +
 .../src/main/docs/kubernetes-pods-component.adoc   |   74 +
 ...bernetes-replication-controllers-component.adoc |   74 +
 .../docs/kubernetes-resources-quota-component.adoc |   60 +
 .../main/docs/kubernetes-secrets-component.adoc    |   60 +
 .../kubernetes-service-accounts-component.adoc     |   60 +
 .../main/docs/kubernetes-services-component.adoc   |   74 +
 .../docs/openshift-build-configs-component.adoc    |   60 +
 .../src/main/docs/openshift-builds-component.adoc  |   60 +
 .../camel-kudu/src/main/docs/kudu-component.adoc   |   44 +
 .../src/main/docs/language-component.adoc          |   48 +
 .../camel-ldap/src/main/docs/ldap-component.adoc   |   45 +
 .../camel-ldif/src/main/docs/ldif-component.adoc   |   41 +
 .../camel-log/src/main/docs/log-component.adoc     |   68 +
 .../src/main/docs/lucene-component.adoc            |   51 +
 .../src/main/docs/lumberjack-component.adoc        |   47 +
 .../camel-mail/src/main/docs/mail-component.adoc   |  148 +
 .../src/main/docs/master-component.adoc            |   46 +
 .../src/main/docs/metrics-component.adoc           |   49 +
 .../src/main/docs/micrometer-component.adoc        |   48 +
 .../main/docs/microprofile-metrics-component.adoc  |   54 +
 .../src/main/docs/milo-client-component.adoc       |   95 +
 .../src/main/docs/milo-server-component.adoc       |   62 +
 .../camel-mina/src/main/docs/mina-component.adoc   |   95 +
 .../camel-minio/src/main/docs/minio-component.adoc |  148 +
 .../camel-mllp/src/main/docs/mllp-component.adoc   |   70 +
 .../camel-mock/src/main/docs/mock-component.adoc   |   54 +
 .../src/main/docs/mongodb-gridfs-component.adoc    |   57 +
 .../src/main/docs/mongodb-component.adoc           |   69 +
 .../camel-msv/src/main/docs/msv-component.adoc     |   52 +
 .../src/main/docs/mustache-component.adoc          |   50 +
 .../camel-mvel/src/main/docs/mvel-component.adoc   |   47 +
 .../src/main/docs/mybatis-bean-component.adoc      |   47 +
 .../src/main/docs/mybatis-component.adoc           |   73 +
 .../src/main/docs/nagios-component.adoc            |   52 +
 .../camel-nats/src/main/docs/nats-component.adoc   |   72 +
 .../src/main/docs/netty-http-component.adoc        |  197 +
 .../camel-netty/src/main/docs/netty-component.adoc |  184 +
 .../src/main/docs/nitrite-component.adoc           |   50 +
 .../camel-nsq/src/main/docs/nsq-component.adoc     |   60 +
 .../src/main/docs/oaipmh-component.adoc            |   70 +
 .../src/main/docs/olingo2-component.adoc           |  218 ++
 .../src/main/docs/olingo4-component.adoc           |  222 ++
 .../src/main/docs/openstack-cinder-component.adoc  |   49 +
 .../src/main/docs/openstack-glance-component.adoc  |   48 +
 .../main/docs/openstack-keystone-component.adoc    |   48 +
 .../src/main/docs/openstack-neutron-component.adoc |   49 +
 .../src/main/docs/openstack-nova-component.adoc    |   49 +
 .../src/main/docs/openstack-swift-component.adoc   |   49 +
 .../src/main/docs/optaplanner-component.adoc       |   50 +
 .../src/main/docs/paho-mqtt5-component.adoc        |  100 +
 .../camel-paho/src/main/docs/paho-component.adoc   |  100 +
 .../camel-pdf/src/main/docs/pdf-component.adoc     |   49 +
 .../main/docs/pg-replication-slot-component.adoc   |   68 +
 .../src/main/docs/pgevent-component.adoc           |   51 +
 .../src/main/docs/platform-http-component.adoc     |   51 +
 .../camel-printer/src/main/docs/lpr-component.adoc |   53 +
 .../src/main/docs/pubnub-component.adoc            |   65 +
 .../src/main/docs/pulsar-component.adoc            |  114 +
 .../src/main/docs/quartz-component.adoc            |   70 +
 .../src/main/docs/quickfix-component.adoc          |   51 +
 .../src/main/docs/rabbitmq-component.adoc          |  160 +
 .../src/main/docs/reactive-streams-component.adoc  |   57 +
 .../camel-ref/src/main/docs/ref-component.adoc     |   45 +
 .../src/main/docs/rest-openapi-component.adoc      |   55 +
 .../src/main/docs/rest-swagger-component.adoc      |   56 +
 .../src/main/docs/rest-api-component.adoc          |   46 +
 .../camel-rest/src/main/docs/rest-component.adoc   |   64 +
 .../src/main/docs/resteasy-component.adoc          |   98 +
 .../src/main/docs/robotframework-component.adoc    |  157 +
 .../camel-rss/src/main/docs/rss-component.adoc     |   67 +
 .../camel-saga/src/main/docs/saga-component.adoc   |   41 +
 .../src/main/docs/salesforce-component.adoc        |  177 +
 .../src/main/docs/sap-netweaver-component.adoc     |   46 +
 .../src/main/docs/xquery-component.adoc            |   76 +
 .../src/main/docs/scheduler-component.adoc         |   62 +
 .../src/main/docs/schematron-component.adoc        |   44 +
 .../camel-seda/src/main/docs/seda-component.adoc   |   65 +
 .../src/main/docs/service-component.adoc           |   45 +
 .../src/main/docs/servicenow-component.adoc        |  130 +
 .../src/main/docs/servlet-component.adoc           |   70 +
 .../camel-sip/src/main/docs/sip-component.adoc     |   85 +
 .../camel-sjms/src/main/docs/sjms-component.adoc   |   94 +
 .../camel-sjms2/src/main/docs/sjms2-component.adoc |   97 +
 .../camel-slack/src/main/docs/slack-component.adoc |   72 +
 .../camel-smpp/src/main/docs/smpp-component.adoc   |  121 +
 .../camel-snmp/src/main/docs/snmp-component.adoc   |   78 +
 .../camel-solr/src/main/docs/solr-component.adoc   |   59 +
 .../src/main/docs/soroush-component.adoc           |   62 +
 .../camel-spark/src/main/docs/spark-component.adoc |   48 +
 .../src/main/docs/splunk-hec-component.adoc        |   51 +
 .../src/main/docs/splunk-component.adoc            |   86 +
 .../src/main/docs/spring-batch-component.adoc      |   46 +
 .../main/docs/spring-integration-component.adoc    |   48 +
 .../src/main/docs/spring-jdbc-component.adoc       |   58 +-
 .../src/main/docs/spring-ldap-component.adoc       |   43 +
 .../src/main/docs/spring-rabbitmq-component.adoc   |  101 +
 .../src/main/docs/spring-redis-component.adoc      |   53 +
 .../src/main/docs/spring-ws-component.adoc         |   66 +
 .../src/main/docs/spring-event-component.adoc      |   45 +
 .../camel-sql/src/main/docs/sql-component.adoc     |   88 +
 .../src/main/docs/sql-stored-component.adoc        |   49 +
 .../camel-ssh/src/main/docs/ssh-component.adoc     |   89 +
 .../camel-stax/src/main/docs/stax-component.adoc   |   41 +
 .../src/main/docs/stitch-component.adoc            |   56 +
 .../camel-stomp/src/main/docs/stomp-component.adoc |   63 +
 .../src/main/docs/stream-component.adoc            |   60 +
 .../src/main/docs/string-template-component.adoc   |   48 +
 .../camel-stub/src/main/docs/stub-component.adoc   |   65 +
 .../src/main/docs/telegram-component.adoc          |   75 +
 .../src/main/docs/thrift-component.adoc            |   57 +
 .../camel-tika/src/main/docs/tika-component.adoc   |   45 +
 .../camel-timer/src/main/docs/timer-component.adoc |   53 +
 .../src/main/docs/twilio-component.adoc            | 3825 +++++++++++++++++++
 .../main/docs/twitter-directmessage-component.adoc |   91 +
 .../src/main/docs/twitter-search-component.adoc    |   91 +
 .../src/main/docs/twitter-timeline-component.adoc  |   93 +
 .../src/main/docs/undertow-component.adoc          |   78 +
 .../src/main/docs/validator-component.adoc         |   51 +
 .../src/main/docs/velocity-component.adoc          |   50 +
 .../src/main/docs/vertx-http-component.adoc        |   79 +
 .../src/main/docs/vertx-kafka-component.adoc       |  246 ++
 .../src/main/docs/vertx-websocket-component.adoc   |   58 +
 .../camel-vertx/src/main/docs/vertx-component.adoc |   52 +
 .../camel-vm/src/main/docs/vm-component.adoc       |   65 +
 .../src/main/docs/weather-component.adoc           |   81 +
 .../camel-web3j/src/main/docs/web3j-component.adoc |  114 +
 .../src/main/docs/webhook-component.adoc           |   54 +
 .../src/main/docs/websocket-jsr356-component.adoc  |   47 +
 .../src/main/docs/websocket-component.adoc         |   75 +
 .../camel-weka/src/main/docs/weka-component.adoc   |   50 +
 .../src/main/docs/wordpress-component.adoc         |   63 +
 .../src/main/docs/workday-component.adoc           |   49 +
 .../src/main/docs/xchange-component.adoc           |   45 +
 .../camel-xj/src/main/docs/xj-component.adoc       |   65 +
 .../src/main/docs/xmlsecurity-sign-component.adoc  |   94 +
 .../main/docs/xmlsecurity-verify-component.adoc    |   74 +
 .../camel-xmpp/src/main/docs/xmpp-component.adoc   |   62 +
 .../src/main/docs/xslt-saxon-component.adoc        |   64 +
 .../camel-xslt/src/main/docs/xslt-component.adoc   |   58 +
 .../src/main/docs/yammer-component.adoc            |   83 +
 .../src/main/docs/zendesk-component.adoc           | 1347 +++++++
 .../src/main/docs/zookeeper-master-component.adoc  |   50 +
 .../src/main/docs/zookeeper-component.adoc         |   61 +
 docs/components/modules/ROOT/nav.adoc              |    1 +
 .../modules/ROOT/pages/activemq-component.adoc     |   10 +-
 .../modules/ROOT/pages/ahc-component.adoc          |   73 +-
 .../modules/ROOT/pages/ahc-ws-component.adoc       |   14 +-
 .../modules/ROOT/pages/amqp-component.adoc         |   22 +-
 .../modules/ROOT/pages/arangodb-component.adoc     |    7 +-
 .../modules/ROOT/pages/as2-component.adoc          |    8 +-
 .../modules/ROOT/pages/asterisk-component.adoc     |   20 +-
 .../modules/ROOT/pages/atlasmap-component.adoc     |   12 +-
 .../modules/ROOT/pages/atmos-component.adoc        |   15 +-
 .../ROOT/pages/atmosphere-websocket-component.adoc |   18 +-
 .../modules/ROOT/pages/atom-component.adoc         |   14 +-
 .../modules/ROOT/pages/atomix-map-component.adoc   |   21 +-
 .../ROOT/pages/atomix-messaging-component.adoc     |   11 +-
 .../ROOT/pages/atomix-multimap-component.adoc      |   11 +-
 .../modules/ROOT/pages/atomix-queue-component.adoc |   11 +-
 .../modules/ROOT/pages/atomix-set-component.adoc   |   11 +-
 .../modules/ROOT/pages/atomix-value-component.adoc |   11 +-
 .../modules/ROOT/pages/avro-component.adoc         |  136 +-
 .../ROOT/pages/aws-secrets-manager-component.adoc  |   16 +-
 .../modules/ROOT/pages/aws2-athena-component.adoc  |   74 +-
 .../modules/ROOT/pages/aws2-cw-component.adoc      |   17 +-
 .../modules/ROOT/pages/aws2-ddb-component.adoc     |   19 +-
 .../ROOT/pages/aws2-ddbstream-component.adoc       |   23 +-
 .../modules/ROOT/pages/aws2-ec2-component.adoc     |   20 +-
 .../modules/ROOT/pages/aws2-ecs-component.adoc     |   20 +-
 .../modules/ROOT/pages/aws2-eks-component.adoc     |   20 +-
 .../ROOT/pages/aws2-eventbridge-component.adoc     |   19 +-
 .../modules/ROOT/pages/aws2-iam-component.adoc     |   27 +-
 .../modules/ROOT/pages/aws2-kinesis-component.adoc |   24 +-
 .../pages/aws2-kinesis-firehose-component.adoc     |    5 +
 .../modules/ROOT/pages/aws2-kms-component.adoc     |   20 +-
 .../modules/ROOT/pages/aws2-lambda-component.adoc  |   20 +-
 .../modules/ROOT/pages/aws2-mq-component.adoc      |   20 +-
 .../modules/ROOT/pages/aws2-msk-component.adoc     |   17 +-
 .../modules/ROOT/pages/aws2-s3-component.adoc      |   43 +-
 .../modules/ROOT/pages/aws2-ses-component.adoc     |   17 +-
 .../modules/ROOT/pages/aws2-sns-component.adoc     |   22 +-
 .../modules/ROOT/pages/aws2-sqs-component.adoc     |   60 +-
 .../modules/ROOT/pages/aws2-sts-component.adoc     |   21 +-
 .../ROOT/pages/aws2-translate-component.adoc       |   21 +-
 .../ROOT/pages/azure-cosmosdb-component.adoc       |   81 +-
 .../ROOT/pages/azure-eventhubs-component.adoc      |   94 +-
 .../ROOT/pages/azure-servicebus-component.adoc     |   58 +-
 .../ROOT/pages/azure-storage-blob-component.adoc   |   42 +-
 .../pages/azure-storage-datalake-component.adoc    |  112 +-
 .../ROOT/pages/azure-storage-queue-component.adoc  |   34 +-
 .../modules/ROOT/pages/bean-component.adoc         |   18 +-
 .../ROOT/pages/bean-validator-component.adoc       |   47 +-
 .../modules/ROOT/pages/beanstalk-component.adoc    |   14 +-
 .../modules/ROOT/pages/bonita-component.adoc       |   10 +-
 .../modules/ROOT/pages/box-component.adoc          |    8 +-
 .../modules/ROOT/pages/braintree-component.adoc    |   17 +-
 .../modules/ROOT/pages/browse-component.adoc       |   10 +-
 .../ROOT/pages/caffeine-cache-component.adoc       |   12 +-
 .../ROOT/pages/caffeine-loadcache-component.adoc   |   11 +-
 .../modules/ROOT/pages/chatscript-component.adoc   |   34 +-
 .../modules/ROOT/pages/chunk-component.adoc        |   26 +-
 .../modules/ROOT/pages/class-component.adoc        |   11 +-
 .../modules/ROOT/pages/cm-sms-component.adoc       |   33 +-
 .../modules/ROOT/pages/cmis-component.adoc         |   15 +-
 .../modules/ROOT/pages/coap-component.adoc         |   11 +-
 .../modules/ROOT/pages/cometd-component.adoc       |   26 +-
 .../modules/ROOT/pages/consul-component.adoc       |   25 +-
 .../modules/ROOT/pages/controlbus-component.adoc   |   18 +-
 .../modules/ROOT/pages/corda-component.adoc        |   15 +-
 .../modules/ROOT/pages/couchbase-component.adoc    |    9 +-
 .../modules/ROOT/pages/couchdb-component.adoc      |   10 +-
 .../modules/ROOT/pages/cql-component.adoc          |   68 +-
 .../modules/ROOT/pages/cron-component.adoc         |   12 +-
 .../modules/ROOT/pages/crypto-component.adoc       |   10 +-
 .../modules/ROOT/pages/cxf-component.adoc          |   30 +-
 .../modules/ROOT/pages/cxfrs-component.adoc        |   15 +-
 .../modules/ROOT/pages/dataformat-component.adoc   |    5 +
 .../modules/ROOT/pages/dataset-component.adoc      |   13 +-
 .../modules/ROOT/pages/dataset-test-component.adoc |    9 +-
 .../ROOT/pages/debezium-mongodb-component.adoc     |   11 +-
 .../ROOT/pages/debezium-mysql-component.adoc       |   11 +-
 .../ROOT/pages/debezium-postgres-component.adoc    |   12 +-
 .../ROOT/pages/debezium-sqlserver-component.adoc   |   11 +-
 .../modules/ROOT/pages/digitalocean-component.adoc |   47 +-
 .../modules/ROOT/pages/direct-component.adoc       |   10 +-
 .../modules/ROOT/pages/direct-vm-component.adoc    |   13 +-
 .../modules/ROOT/pages/disruptor-component.adoc    |   44 +-
 .../modules/ROOT/pages/disruptor-vm-component.adoc |   97 +
 .../modules/ROOT/pages/djl-component.adoc          |   12 +-
 .../modules/ROOT/pages/dns-component.adoc          |   53 +-
 .../modules/ROOT/pages/docker-component.adoc       |   12 +-
 .../modules/ROOT/pages/dozer-component.adoc        |    8 +-
 .../modules/ROOT/pages/drill-component.adoc        |   19 +-
 .../modules/ROOT/pages/dropbox-component.adoc      |   20 +-
 .../modules/ROOT/pages/ehcache-component.adoc      |   15 +-
 .../ROOT/pages/elasticsearch-rest-component.adoc   |   28 +-
 .../modules/ROOT/pages/elsql-component.adoc        |   11 +-
 .../modules/ROOT/pages/etcd-keys-component.adoc    |   13 +-
 .../modules/ROOT/pages/etcd-stats-component.adoc   |   13 +-
 .../modules/ROOT/pages/etcd-watch-component.adoc   |   11 +-
 .../modules/ROOT/pages/exec-component.adoc         |    9 +-
 .../modules/ROOT/pages/facebook-component.adoc     |   43 +-
 .../modules/ROOT/pages/fhir-component.adoc         |    8 +-
 .../modules/ROOT/pages/file-component.adoc         |   43 +-
 .../modules/ROOT/pages/file-watch-component.adoc   |   12 +-
 .../modules/ROOT/pages/flatpack-component.adoc     |   26 +-
 .../modules/ROOT/pages/flink-component.adoc        |   51 +-
 .../modules/ROOT/pages/fop-component.adoc          |   11 +-
 .../modules/ROOT/pages/freemarker-component.adoc   |   22 +-
 .../modules/ROOT/pages/ftp-component.adoc          |   24 +-
 .../modules/ROOT/pages/ftps-component.adoc         |   13 +-
 .../modules/ROOT/pages/ganglia-component.adoc      |   36 +-
 .../modules/ROOT/pages/geocoder-component.adoc     |   20 +-
 .../modules/ROOT/pages/git-component.adoc          |   29 +-
 .../modules/ROOT/pages/github-component.adoc       |    9 +-
 .../ROOT/pages/google-bigquery-component.adoc      |   10 +-
 .../ROOT/pages/google-bigquery-sql-component.adoc  |   20 +-
 .../ROOT/pages/google-calendar-component.adoc      |    9 +-
 .../pages/google-calendar-stream-component.adoc    |   12 +-
 .../modules/ROOT/pages/google-drive-component.adoc |   10 +-
 .../ROOT/pages/google-functions-component.adoc     |   56 +-
 .../modules/ROOT/pages/google-mail-component.adoc  |    9 +-
 .../ROOT/pages/google-mail-stream-component.adoc   |   12 +-
 .../ROOT/pages/google-pubsub-component.adoc        |   38 +-
 .../ROOT/pages/google-sheets-component.adoc        |    8 +-
 .../ROOT/pages/google-sheets-stream-component.adoc |   18 +-
 .../ROOT/pages/google-storage-component.adoc       |   15 +-
 .../modules/ROOT/pages/gora-component.adoc         |   14 +-
 .../modules/ROOT/pages/grape-component.adoc        |   35 +-
 .../modules/ROOT/pages/graphql-component.adoc      |   46 +-
 .../modules/ROOT/pages/grpc-component.adoc         |   16 +-
 .../ROOT/pages/guava-eventbus-component.adoc       |   16 +-
 .../pages/hazelcast-atomicvalue-component.adoc     |   19 +-
 .../ROOT/pages/hazelcast-instance-component.adoc   |   12 +-
 .../ROOT/pages/hazelcast-list-component.adoc       |    6 +-
 .../ROOT/pages/hazelcast-map-component.adoc        |   19 +-
 .../ROOT/pages/hazelcast-multimap-component.adoc   |   16 +-
 .../ROOT/pages/hazelcast-queue-component.adoc      |    7 +-
 .../pages/hazelcast-replicatedmap-component.adoc   |   15 +-
 .../ROOT/pages/hazelcast-ringbuffer-component.adoc |   11 +-
 .../ROOT/pages/hazelcast-seda-component.adoc       |   12 +-
 .../ROOT/pages/hazelcast-set-component.adoc        |    7 +-
 .../ROOT/pages/hazelcast-topic-component.adoc      |    7 +-
 .../modules/ROOT/pages/hbase-component.adoc        |  203 +-
 .../modules/ROOT/pages/hdfs-component.adoc         |   30 +-
 .../modules/ROOT/pages/http-component.adoc         |   44 +-
 .../pages/hwcloud-functiongraph-component.adoc     |    9 +-
 .../modules/ROOT/pages/hwcloud-iam-component.adoc  |    9 +-
 .../modules/ROOT/pages/hwcloud-obs-component.adoc  |    8 +-
 .../modules/ROOT/pages/hwcloud-smn-component.adoc  |   13 +-
 .../ROOT/pages/iec60870-client-component.adoc      |   76 +-
 .../ROOT/pages/iec60870-server-component.adoc      |   38 +-
 .../modules/ROOT/pages/ignite-cache-component.adoc |   10 +-
 .../ROOT/pages/ignite-compute-component.adoc       |   13 +-
 .../ROOT/pages/ignite-events-component.adoc        |    9 +-
 .../modules/ROOT/pages/ignite-idgen-component.adoc |    8 +-
 .../ROOT/pages/ignite-messaging-component.adoc     |   11 +-
 .../modules/ROOT/pages/ignite-queue-component.adoc |   13 +-
 .../modules/ROOT/pages/ignite-set-component.adoc   |   13 +-
 .../modules/ROOT/pages/infinispan-component.adoc   |   18 +-
 .../ROOT/pages/infinispan-embedded-component.adoc  |   14 +-
 .../modules/ROOT/pages/influxdb-component.adoc     |   22 +-
 .../modules/ROOT/pages/iota-component.adoc         |    9 +-
 .../modules/ROOT/pages/ipfs-component.adoc         |   17 +-
 .../modules/ROOT/pages/irc-component.adoc          |   21 +-
 .../modules/ROOT/pages/ironmq-component.adoc       |   47 +-
 .../modules/ROOT/pages/jbpm-component.adoc         |  187 +-
 .../modules/ROOT/pages/jcache-component.adoc       |  100 +-
 .../modules/ROOT/pages/jclouds-component.adoc      |   19 +-
 .../modules/ROOT/pages/jcr-component.adoc          |   26 +-
 .../modules/ROOT/pages/jdbc-component.adoc         |   23 +-
 .../modules/ROOT/pages/jetty-component.adoc        |   26 +-
 .../modules/ROOT/pages/jgroups-component.adoc      |   16 +-
 .../modules/ROOT/pages/jgroups-raft-component.adoc |    7 +-
 .../modules/ROOT/pages/jing-component.adoc         |   15 +-
 .../modules/ROOT/pages/jira-component.adoc         |   50 +-
 .../modules/ROOT/pages/jms-component.adoc          |   43 +-
 .../modules/ROOT/pages/jmx-component.adoc          |    7 +-
 .../modules/ROOT/pages/jolt-component.adoc         |   22 +-
 .../modules/ROOT/pages/jooq-component.adoc         |    9 +-
 .../modules/ROOT/pages/jpa-component.adoc          |   25 +-
 .../modules/ROOT/pages/jslt-component.adoc         |   19 +-
 .../ROOT/pages/json-validator-component.adoc       |   16 +-
 .../modules/ROOT/pages/jsonata-component.adoc      |   18 +-
 .../modules/ROOT/pages/jt400-component.adoc        |   19 +-
 .../modules/ROOT/pages/kafka-component.adoc        |   29 +-
 .../modules/ROOT/pages/kamelet-component.adoc      |   12 +-
 .../ROOT/pages/kamelet-reify-component.adoc        |   10 +-
 .../pages/kubernetes-config-maps-component.adoc    |    7 +-
 .../kubernetes-custom-resources-component.adoc     |    9 +-
 .../pages/kubernetes-deployments-component.adoc    |   12 +-
 .../ROOT/pages/kubernetes-hpa-component.adoc       |   12 +-
 .../ROOT/pages/kubernetes-job-component.adoc       |   18 +-
 .../pages/kubernetes-namespaces-component.adoc     |   13 +-
 .../ROOT/pages/kubernetes-nodes-component.adoc     |   11 +-
 ...rnetes-persistent-volumes-claims-component.adoc |   10 +-
 .../kubernetes-persistent-volumes-component.adoc   |   10 +-
 .../ROOT/pages/kubernetes-pods-component.adoc      |   11 +-
 ...bernetes-replication-controllers-component.adoc |   11 +-
 .../kubernetes-resources-quota-component.adoc      |   10 +-
 .../ROOT/pages/kubernetes-secrets-component.adoc   |   10 +-
 .../kubernetes-service-accounts-component.adoc     |   10 +-
 .../ROOT/pages/kubernetes-services-component.adoc  |   10 +-
 .../modules/ROOT/pages/kudu-component.adoc         |   41 +-
 .../modules/ROOT/pages/language-component.adoc     |   23 +-
 .../modules/ROOT/pages/ldap-component.adoc         |   22 +-
 .../modules/ROOT/pages/ldif-component.adoc         |   13 +-
 .../modules/ROOT/pages/log-component.adoc          |   36 +-
 .../modules/ROOT/pages/lpr-component.adoc          |   16 +-
 .../modules/ROOT/pages/lucene-component.adoc       |   24 +-
 .../modules/ROOT/pages/lumberjack-component.adoc   |   25 +-
 .../modules/ROOT/pages/mail-component.adoc         |   46 +-
 .../modules/ROOT/pages/master-component.adoc       |   17 +-
 .../modules/ROOT/pages/metrics-component.adoc      |   22 +-
 .../modules/ROOT/pages/micrometer-component.adoc   |   14 +-
 .../ROOT/pages/microprofile-metrics-component.adoc |   15 +-
 .../modules/ROOT/pages/milo-client-component.adoc  |   85 +-
 .../modules/ROOT/pages/milo-server-component.adoc  |   32 +-
 .../modules/ROOT/pages/mina-component.adoc         |   23 +-
 .../modules/ROOT/pages/minio-component.adoc        |   13 +-
 .../modules/ROOT/pages/mllp-component.adoc         |   31 +-
 .../modules/ROOT/pages/mock-component.adoc         |   21 +-
 .../modules/ROOT/pages/mongodb-component.adoc      |   29 +-
 .../ROOT/pages/mongodb-gridfs-component.adoc       |   20 +-
 .../modules/ROOT/pages/msv-component.adoc          |   20 +-
 .../modules/ROOT/pages/mustache-component.adoc     |   19 +-
 .../modules/ROOT/pages/mvel-component.adoc         |   14 +-
 .../modules/ROOT/pages/mybatis-bean-component.adoc |    9 +-
 .../modules/ROOT/pages/mybatis-component.adoc      |   16 +-
 .../modules/ROOT/pages/nagios-component.adoc       |   18 +-
 .../modules/ROOT/pages/nats-component.adoc         |   12 +-
 .../modules/ROOT/pages/netty-component.adoc        |   11 +-
 .../modules/ROOT/pages/netty-http-component.adoc   |   29 +-
 .../modules/ROOT/pages/nitrite-component.adoc      |    8 +-
 .../modules/ROOT/pages/nsq-component.adoc          |   13 +-
 .../modules/ROOT/pages/oaipmh-component.adoc       |   19 +-
 .../modules/ROOT/pages/olingo2-component.adoc      |   31 +-
 .../modules/ROOT/pages/olingo4-component.adoc      |   13 +-
 .../pages/openshift-build-configs-component.adoc   |   10 +-
 .../ROOT/pages/openshift-builds-component.adoc     |   11 +-
 .../ROOT/pages/openstack-cinder-component.adoc     |   12 +-
 .../ROOT/pages/openstack-glance-component.adoc     |   11 +-
 .../ROOT/pages/openstack-keystone-component.adoc   |   15 +-
 .../ROOT/pages/openstack-neutron-component.adoc    |   13 +-
 .../ROOT/pages/openstack-nova-component.adoc       |   11 +-
 .../ROOT/pages/openstack-swift-component.adoc      |   12 +-
 .../modules/ROOT/pages/optaplanner-component.adoc  |   19 +-
 .../modules/ROOT/pages/paho-component.adoc         |   12 +-
 .../modules/ROOT/pages/paho-mqtt5-component.adoc   |   13 +-
 .../modules/ROOT/pages/pdf-component.adoc          |   12 +-
 .../ROOT/pages/pg-replication-slot-component.adoc  |   21 +-
 .../modules/ROOT/pages/pgevent-component.adoc      |   12 +-
 .../ROOT/pages/platform-http-component.adoc        |   11 +-
 .../modules/ROOT/pages/pubnub-component.adoc       |   14 +-
 .../modules/ROOT/pages/pulsar-component.adoc       |   43 +-
 .../modules/ROOT/pages/quartz-component.adoc       |   41 +-
 .../modules/ROOT/pages/quickfix-component.adoc     |   92 +-
 .../modules/ROOT/pages/rabbitmq-component.adoc     |   27 +-
 .../ROOT/pages/reactive-streams-component.adoc     |   32 +-
 .../modules/ROOT/pages/ref-component.adoc          |   10 +-
 .../modules/ROOT/pages/rest-api-component.adoc     |   11 +-
 .../modules/ROOT/pages/rest-component.adoc         |   12 +-
 .../modules/ROOT/pages/rest-openapi-component.adoc |    9 +-
 .../modules/ROOT/pages/rest-swagger-component.adoc |    9 +-
 .../modules/ROOT/pages/resteasy-component.adoc     |   12 +-
 .../ROOT/pages/robotframework-component.adoc       |   15 +-
 .../modules/ROOT/pages/rss-component.adoc          |   44 +-
 .../modules/ROOT/pages/saga-component.adoc         |   11 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |  379 +-
 .../ROOT/pages/sap-netweaver-component.adoc        |   16 +-
 .../modules/ROOT/pages/scheduler-component.adoc    |   13 +-
 .../modules/ROOT/pages/schematron-component.adoc   |   18 +-
 .../modules/ROOT/pages/scp-component.adoc          |   23 +-
 .../modules/ROOT/pages/seda-component.adoc         |   17 +-
 .../modules/ROOT/pages/service-component.adoc      |   15 +-
 .../modules/ROOT/pages/servicenow-component.adoc   |   25 +-
 .../modules/ROOT/pages/servlet-component.adoc      |   26 +-
 .../modules/ROOT/pages/sftp-component.adoc         |   15 +-
 .../modules/ROOT/pages/sip-component.adoc          |   15 +-
 .../modules/ROOT/pages/sjms-component.adoc         |   17 +-
 .../modules/ROOT/pages/sjms2-component.adoc        |   17 +-
 .../modules/ROOT/pages/slack-component.adoc        |   16 +-
 .../modules/ROOT/pages/smpp-component.adoc         |   27 +-
 .../modules/ROOT/pages/snmp-component.adoc         |   18 +-
 .../modules/ROOT/pages/solr-component.adoc         |   12 +-
 .../modules/ROOT/pages/soroush-component.adoc      |   10 +-
 .../modules/ROOT/pages/spark-component.adoc        |   26 +-
 .../modules/ROOT/pages/splunk-component.adoc       |  133 +-
 .../modules/ROOT/pages/splunk-hec-component.adoc   |   22 +-
 .../modules/ROOT/pages/spring-batch-component.adoc |   19 +-
 .../modules/ROOT/pages/spring-event-component.adoc |   13 +-
 .../ROOT/pages/spring-integration-component.adoc   |   11 +-
 .../modules/ROOT/pages/spring-jdbc-component.adoc  |    9 +-
 .../modules/ROOT/pages/spring-ldap-component.adoc  |   11 +-
 .../ROOT/pages/spring-rabbitmq-component.adoc      |   11 +-
 .../modules/ROOT/pages/spring-redis-component.adoc |   14 +-
 .../modules/ROOT/pages/spring-ws-component.adoc    |   76 +-
 .../modules/ROOT/pages/sql-component.adoc          |   27 +-
 .../modules/ROOT/pages/sql-stored-component.adoc   |   21 +-
 .../modules/ROOT/pages/ssh-component.adoc          |   18 +-
 .../modules/ROOT/pages/stax-component.adoc         |   12 +-
 .../modules/ROOT/pages/stitch-component.adoc       |   94 +-
 .../modules/ROOT/pages/stomp-component.adoc        |   17 +-
 .../modules/ROOT/pages/stream-component.adoc       |   13 +-
 .../ROOT/pages/string-template-component.adoc      |   14 +-
 .../modules/ROOT/pages/stub-component.adoc         |   11 +-
 .../modules/ROOT/pages/telegram-component.adoc     |   15 +-
 .../modules/ROOT/pages/thrift-component.adoc       |    9 +-
 .../modules/ROOT/pages/tika-component.adoc         |   13 +-
 .../modules/ROOT/pages/timer-component.adoc        |   14 +-
 .../modules/ROOT/pages/twilio-component.adoc       |    9 +-
 .../pages/twitter-directmessage-component.adoc     |    9 +-
 .../ROOT/pages/twitter-search-component.adoc       |   17 +-
 .../ROOT/pages/twitter-timeline-component.adoc     |   11 +-
 .../modules/ROOT/pages/undertow-component.adoc     |   15 +-
 .../modules/ROOT/pages/validator-component.adoc    |   10 +-
 .../modules/ROOT/pages/velocity-component.adoc     |   23 +-
 .../modules/ROOT/pages/vertx-component.adoc        |   18 +-
 .../modules/ROOT/pages/vertx-http-component.adoc   |   34 +-
 .../modules/ROOT/pages/vertx-kafka-component.adoc  |   66 +-
 .../ROOT/pages/vertx-websocket-component.adoc      |   19 +-
 .../modules/ROOT/pages/vm-component.adoc           |   14 +-
 .../modules/ROOT/pages/weather-component.adoc      |   28 +-
 .../modules/ROOT/pages/web3j-component.adoc        |   16 +-
 .../modules/ROOT/pages/webhook-component.adoc      |   16 +-
 .../modules/ROOT/pages/websocket-component.adoc    |   26 +-
 .../ROOT/pages/websocket-jsr356-component.adoc     |   14 +-
 .../modules/ROOT/pages/weka-component.adoc         |   15 +-
 .../modules/ROOT/pages/wordpress-component.adoc    |   15 +-
 .../modules/ROOT/pages/workday-component.adoc      |    8 +-
 .../modules/ROOT/pages/xchange-component.adoc      |   14 +-
 .../modules/ROOT/pages/xj-component.adoc           |    9 +-
 .../ROOT/pages/xmlsecurity-sign-component.adoc     |  216 +-
 .../ROOT/pages/xmlsecurity-verify-component.adoc   |  291 +-
 .../modules/ROOT/pages/xmpp-component.adoc         |   16 +-
 .../modules/ROOT/pages/xquery-component.adoc       |   12 +-
 .../modules/ROOT/pages/xslt-component.adoc         |   15 +-
 .../modules/ROOT/pages/xslt-saxon-component.adoc   |   14 +-
 .../modules/ROOT/pages/yammer-component.adoc       |   26 +-
 .../modules/ROOT/pages/zendesk-component.adoc      |    8 +-
 .../modules/ROOT/pages/zookeeper-component.adoc    |    9 +-
 .../ROOT/pages/zookeeper-master-component.adoc     |   20 +-
 .../modules/dataformats/pages/rss-dataformat.adoc  |   27 +
 docs/components/modules/others/pages/aws-xray.adoc |   75 +-
 .../modules/others/pages/platform-http-vertx.adoc  |    6 +-
 1020 files changed, 135519 insertions(+), 5212 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
index ae70635..e46e7e3 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
@@ -122,6 +122,7 @@ digitalocean-component
 direct-component
 direct-vm-component
 disruptor-component
+disruptor-vm-component
 djl-component
 dns-component
 docker-component
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/activemq-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/activemq-component.adoc
new file mode 100644
index 0000000..b7f690d
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/activemq-component.adoc
@@ -0,0 +1,295 @@
+[[activemq-component]]
+= ActiveMQ Component
+:docTitle: ActiveMQ
+:artifactId: camel-activemq
+:description: Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.
+:since: 1.0
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/activemq.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The ActiveMQ component is an extension to the JMS component and has been pre-configured for using Apache ActiveMQ 5.x (not Artemis).
+Users of Apache ActiveMQ Artemis should use the JMS component.
+
+[TIP]
+====
+*More documentation*
+
+See the JMS component for more documentation and examples
+====
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-activemq</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+--------------------------------------------
+activemq:[queue:|topic:]destinationName[?options]
+--------------------------------------------
+
+Where `destinationName` is a JMS queue or topic name. By default, the
+`destinationName` is interpreted as a queue name. For example, to
+connect to the queue, `foo` use:
+
+-----------
+activemq:foo
+-----------
+
+// component options: START
+== Component Options
+
+
+The ActiveMQ component supports 102 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *brokerURL* (common) | Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables) |  | String
+| *clientId* (common) | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
+| *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message broker [...]
+| *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. There are 5 enums and the value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
+| *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
+| *testConnectionOnStartup* (common) | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | boolean
+| *usePooledConnection* (common) | Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true. | true | boolean
+| *useSingleConnection* (common) | Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default. | false | boolean
+| *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit av [...]
+| *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transac [...]
+| *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
+| *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details. |  | int
+| *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. There are 5 enums and the value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
+| *concurrentConsumers* (consumer) | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | int
+| *maxConcurrentConsumers* (consumer) | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
+| *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
+| *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
+| *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
+| *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
+| *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
+| *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
+| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | boolean
+| *eagerPoisonBody* (consumer) | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
+| *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | boolean
+| *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
+| *deliveryMode* (producer) | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. There are 2 enums and the value can be one of: 1, 2 |  | Integer
+| *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
+| *explicitQosEnabled* (producer) | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *preserveMessageQos* (producer) | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnable [...]
+| *priority* (producer) | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. There are 9 enums and the value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
+| *replyToConcurrentConsumers* (producer) | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | int
+| *replyToMaxConcurrentConsumers* (producer) | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. |  | int
+| *replyToOnTimeoutMaxConcurrent{zwsp}Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
+| *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
+| *requestTimeout* (producer) | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | long
+| *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
+| *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
+| *allowNullBody* (producer) | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | boolean
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message w [...]
+| *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
+| *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
+| *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
+| *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
+| *allowAutoWiredConnection{zwsp}Factory* (advanced) | Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default. | true | boolean
+| *allowAutoWiredDestination{zwsp}Resolver* (advanced) | Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default. | true | boolean
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
+| *artemisStreamingEnabled* (advanced) | Whether optimizing for Apache Artemis streaming mode. | true | boolean
+| *asyncStartListener* (advanced) | Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, the [...]
+| *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *configuration* (advanced) | To use a shared JMS configuration |  | JmsConfiguration
+| *destinationResolver* (advanced) | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). |  | DestinationResolver
+| *errorHandler* (advanced) | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. [...]
+| *exceptionListener* (advanced) | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. |  | ExceptionListener
+| *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
+| *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
+| *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
+| *jmsKeyFormatStrategy* (advanced) | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache [...]
+| *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
+| *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
+| *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
+| *messageCreatedStrategy* (advanced) | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. |  | MessageCreatedStrategy
+| *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer{zwsp}Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
+| *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
+| *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
+| *queueBrowseStrategy* (advanced) | To use a custom QueueBrowseStrategy when browsing queues |  | QueueBrowseStrategy
+| *receiveTimeout* (advanced) | The timeout for receiving messages (in milliseconds). | 1000 | long
+| *recoveryInterval* (advanced) | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000 | long
+| *requestTimeoutCheckerInterval* (advanced) | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | long
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used | false | boolean
+| *transferException* (advanced) | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes preced [...]
+| *transferExchange* (advanced) | You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an E [...]
+| *trustAllPackages* (advanced) | Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care. | false | boolean
+| *useMessageIDAsCorrelationID* (advanced) | Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages. | false | boolean
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedCounter* (advanced) | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | int
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedThreadSleepingTime* (advanced) | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. | 100 | long
+| *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *errorHandlerLoggingLevel* (logging) | Allows to configure the default errorHandler logging level for logging uncaught exceptions. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | WARN | LoggingLevel
+| *errorHandlerLogStackTrace* (logging) | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | boolean
+| *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the conta [...]
+| *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
+| *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
+| *transactionName* (transaction) | The name of the transaction to use. |  | String
+| *transactionTimeout* (transaction) | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | int
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The ActiveMQ endpoint is configured using URI syntax:
+
+----
+activemq:destinationType:destinationName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (2 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *destinationType* | The kind of destination to use. There are 4 enums and the value can be one of: queue, topic, temp-queue, temp-topic | queue | String
+| *destinationName* | *Required* Name of the queue or topic to use as destination |  | String
+|===
+
+
+=== Query Parameters (96 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *clientId* (common) | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
+| *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message broker [...]
+| *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. There are 5 enums and the value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
+| *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
+| *testConnectionOnStartup* (common) | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | boolean
+| *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit av [...]
+| *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transac [...]
+| *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
+| *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details. |  | int
+| *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. There are 5 enums and the value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
+| *concurrentConsumers* (consumer) | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | int
+| *maxConcurrentConsumers* (consumer) | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
+| *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
+| *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
+| *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
+| *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
+| *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
+| *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
+| *destinationOptions* (consumer) | Destination Options are a way to provide extended configuration options to a JMS consumer without having to extend the JMS API. The options are encoded using URL query syntax in the destination name that the consumer is created on. See more details at \https://activemq.apache.org/destination-options. |  | Map
+| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | boolean
+| *eagerPoisonBody* (consumer) | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | boolean
+| *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
+| *deliveryMode* (producer) | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. There are 2 enums and the value can be one of: 1, 2 |  | Integer
+| *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
+| *explicitQosEnabled* (producer) | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *preserveMessageQos* (producer) | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnable [...]
+| *priority* (producer) | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. There are 9 enums and the value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
+| *replyToConcurrentConsumers* (producer) | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | int
+| *replyToMaxConcurrentConsumers* (producer) | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. |  | int
+| *replyToOnTimeoutMaxConcurrent{zwsp}Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
+| *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
+| *requestTimeout* (producer) | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | long
+| *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
+| *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
+| *allowNullBody* (producer) | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | boolean
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message w [...]
+| *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
+| *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
+| *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
+| *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
+| *artemisStreamingEnabled* (advanced) | Whether optimizing for Apache Artemis streaming mode. | true | boolean
+| *asyncStartListener* (advanced) | Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, the [...]
+| *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
+| *destinationResolver* (advanced) | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). |  | DestinationResolver
+| *errorHandler* (advanced) | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. [...]
+| *exceptionListener* (advanced) | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. |  | ExceptionListener
+| *headerFilterStrategy* (advanced) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
+| *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
+| *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
+| *jmsKeyFormatStrategy* (advanced) | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache [...]
+| *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
+| *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
+| *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
+| *messageCreatedStrategy* (advanced) | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. |  | MessageCreatedStrategy
+| *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer{zwsp}Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
+| *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
+| *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
+| *receiveTimeout* (advanced) | The timeout for receiving messages (in milliseconds). | 1000 | long
+| *recoveryInterval* (advanced) | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000 | long
+| *requestTimeoutCheckerInterval* (advanced) | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | long
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used | false | boolean
+| *transferException* (advanced) | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes preced [...]
+| *transferExchange* (advanced) | You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an E [...]
+| *useMessageIDAsCorrelationID* (advanced) | Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages. | false | boolean
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedCounter* (advanced) | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | int
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedThreadSleepingTime* (advanced) | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. | 100 | long
+| *errorHandlerLoggingLevel* (logging) | Allows to configure the default errorHandler logging level for logging uncaught exceptions. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | WARN | LoggingLevel
+| *errorHandlerLogStackTrace* (logging) | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | boolean
+| *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the conta [...]
+| *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
+| *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
+| *transactionName* (transaction) | The name of the transaction to use. |  | String
+| *transactionTimeout* (transaction) | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | int
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$activemq-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-component.adoc
new file mode 100644
index 0000000..f546470
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-component.adoc
@@ -0,0 +1,407 @@
+[[ahc-component]]
+= Async HTTP Client (AHC) Component
+:docTitle: Async HTTP Client (AHC)
+:artifactId: camel-ahc
+:description: Call external HTTP services using Async Http Client.
+:since: 2.8
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/ahc.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AHC component provides HTTP based endpoints
+for consuming external HTTP resources (as a client to call external
+servers using HTTP).
+The component uses the
+https://github.com/AsyncHttpClient/async-http-client[Async Http Client]
+library.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-ahc</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+[source,java]
+---------------------------------------------------
+ahc:http://hostname[:port][/resourceUri][?options]
+ahc:https://hostname[:port][/resourceUri][?options]
+---------------------------------------------------
+
+Will by default use port 80 for HTTP and 443 for HTTPS.
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+// component options: START
+== Component Options
+
+
+The Async HTTP Client (AHC) component supports 9 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *lazyStartProducer* (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 creating and [...]
+| *allowJavaSerializedObject* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *binding* (advanced) | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. |  | AhcBinding
+| *client* (advanced) | To use a custom AsyncHttpClient |  | AsyncHttpClient
+| *clientConfig* (advanced) | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. |  | AsyncHttpClientConfig
+| *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *sslContextParameters* (security) | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. |  | SSLContextParameters
+| *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Async HTTP Client (AHC) endpoint is configured using URI syntax:
+
+----
+ahc:httpUri
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *httpUri* | *Required* The URI to use such as \http://hostname:port/path |  | URI
+|===
+
+
+=== Query Parameters (13 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeEndpoint* (producer) | If the option is true, then the Exchange.HTTP_URI header is ignored, and use the endpoint's URI for request. You may also set the throwExceptionOnFailure to be false to let the AhcProducer send all the fault response back. | false | boolean
+| *bufferSize* (producer) | The initial in-memory buffer size used when transferring data between Camel and AHC Client. | 4096 | int
+| *connectionClose* (producer) | Define if the Connection Close header has to be added to HTTP Request. This parameter is false by default | false | boolean
+| *cookieHandler* (producer) | Configure a cookie handler to maintain a HTTP session |  | CookieHandler
+| *headerFilterStrategy* (producer) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *lazyStartProducer* (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 creating and [...]
+| *throwExceptionOnFailure* (producer) | Option to disable throwing the AhcOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code. | true | boolean
+| *transferException* (producer) | If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application/x-java-serialized-object content type (for example using Jetty or Servlet Camel components). On the producer side the exception will be deserialized and thrown as is, instead of the AhcOperationFailedException. The caused exception is required to be serialized. This is by default turned off. If you enab [...]
+| *binding* (advanced) | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. |  | AhcBinding
+| *clientConfig* (advanced) | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. |  | AsyncHttpClientConfig
+| *clientConfigOptions* (advanced) | To configure the AsyncHttpClientConfig using the key/values from the Map. |  | Map
+| *clientConfigRealmOptions* (security) | To configure the AsyncHttpClientConfig Realm using the key/values from the Map. |  | Map
+| *sslContextParameters* (security) | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. This reference overrides any configured SSLContextParameters at the component level. See Using the JSSE Configuration Utility. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. |  | SSLContextParameters
+|===
+// endpoint options: END
+
+
+== Message Headers
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Name |Type |Description
+|`Exchange.HTTP_URI` |`String` |URI to call. Will override existing URI set directly on the endpoint.
+
+|`Exchange.HTTP_PATH` |`String` |Request URI's path, the header will be used to build the request URI
+with the HTTP_URI. If the path is start with "/", http producer will try
+to find the relative path based on the Exchange.HTTP_BASE_URI header or
+the `exchange.getFromEndpoint().getEndpointUri();`
+
+|`Exchange.HTTP_QUERY` |`String` |*Camel 2.11 onwards:* URI parameters. Will override existing URI
+parameters set directly on the endpoint.
+
+|`Exchange.HTTP_RESPONSE_CODE` |`int` |The HTTP response code from the external server. Is 200 for OK.
+
+|`Exchange.HTTP_CHARACTER_ENCODING` |`String` |Character encoding.
+
+|`Exchange.CONTENT_TYPE` |`String` |The HTTP content type. Is set on both the IN and OUT message to provide
+a content type, such as `text/html`.
+
+|`Exchange.CONTENT_ENCODING` |`String` |The HTTP content encoding. Is set on both the IN and OUT message to
+provide a content encoding, such as `gzip`.
+|=======================================================================
+
+== Message Body
+
+Camel will store the HTTP response from the external server on the OUT
+body. All headers from the IN message will be copied to the OUT message,
+so headers are preserved during routing. Additionally Camel will add the
+HTTP response headers as well to the OUT message headers.
+
+== Response code
+
+Camel will handle according to the HTTP response code:
+
+* Response code is in the range 100..299, Camel regards it as a success
+response.
+* Response code is in the range 300..399, Camel regards it as a
+redirection response and will throw a `AhcOperationFailedException` with
+the information.
+* Response code is 400+, Camel regards it as an external server failure
+and will throw a `AhcOperationFailedException` with the information.
++
+throwExceptionOnFailure
++
+The option, `throwExceptionOnFailure`, can be set to `false` to prevent
+the `AhcOperationFailedException` from being thrown for failed response
+codes. This allows you to get any response from the remote server.
+
+== AhcOperationFailedException
+
+This exception contains the following information:
+
+* The HTTP status code
+* The HTTP status line (text of the status code)
+* Redirect location, if server returned a redirect
+* Response body as a `java.lang.String`, if server provided a body as
+response
+
+== Calling using GET or POST
+
+The following algorithm is used to determine if either `GET` or `POST`
+HTTP method should be used: +
+ 1. Use method provided in header. +
+ 2. `GET` if query string is provided in header. +
+ 3. `GET` if endpoint is configured with a query string. +
+ 4. `POST` if there is data to send (body is not null). +
+ 5. `GET` otherwise.
+
+== Configuring URI to call
+
+You can set the HTTP producer's URI directly form the endpoint URI. In
+the route below, Camel will call out to the external server, `oldhost`,
+using HTTP.
+
+[source,java]
+----------------------------------
+from("direct:start")
+        .to("ahc:http://oldhost");
+----------------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+---------------------------------------------------------------------
+<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
+  <route>
+    <from uri="direct:start"/>
+    <to uri="ahc:http://oldhost"/>
+  </route>
+</camelContext>
+---------------------------------------------------------------------
+
+You can override the HTTP endpoint URI by adding a header with the key,
+`Exchange.HTTP_URI`, on the message.
+
+[source,java]
+-------------------------------------------------------------
+from("direct:start")
+    .setHeader(Exchange.HTTP_URI, constant("http://newhost"))
+    .to("ahc:http://oldhost");
+-------------------------------------------------------------
+
+== Configuring URI Parameters
+
+The *ahc* producer supports URI parameters to be sent to the HTTP
+server. The URI parameters can either be set directly on the endpoint
+URI or as a header with the key `Exchange.HTTP_QUERY` on the message.
+
+[source,java]
+---------------------------------------------------------
+from("direct:start")
+        .to("ahc:http://oldhost?order=123&detail=short");
+---------------------------------------------------------
+
+Or options provided in a header:
+
+[source,java]
+-------------------------------------------------------------------------------
+from("direct:start")
+            .setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
+        .to("ahc:http://oldhost");
+-------------------------------------------------------------------------------
+
+== How to set the http method to the HTTP producer
+
+The HTTP component provides a way to set the HTTP request method by
+setting the message header. Here is an example;
+
+[source,java]
+--------------------------------------------------------------
+from("direct:start")
+            .setHeader(Exchange.HTTP_METHOD, constant("POST"))
+        .to("ahc:http://www.google.com")
+            .to("mock:results");
+--------------------------------------------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+---------------------------------------------------------------------
+<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
+  <route>
+    <from uri="direct:start"/>
+    <setHeader name="CamelHttpMethod">
+        <constant>POST</constant>
+    </setHeader>
+    <to uri="ahc:http://www.google.com"/>
+    <to uri="mock:results"/>
+  </route>
+</camelContext>
+---------------------------------------------------------------------
+
+== Configuring charset
+
+If you are using `POST` to send data you can configure the `charset`
+using the `Exchange` property:
+
+[source,java]
+----------------------------------------------------------
+exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
+----------------------------------------------------------
+
+=== URI Parameters from the endpoint URI
+
+In this sample we have the complete URI endpoint that is just what you
+would have typed in a web browser. Multiple URI parameters can of course
+be set using the `&` character as separator, just as you would in the
+web browser. Camel does no tricks here.
+
+[source,java]
+--------------------------------------------------------------------
+// we query for Camel at the Google page
+template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
+--------------------------------------------------------------------
+
+=== URI Parameters from the Message
+
+[source,java]
+---------------------------------------------------------------------
+Map headers = new HashMap();
+headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
+// we query for Camel and English language at Google
+template.sendBody("ahc:http://www.google.com/search", null, headers);
+---------------------------------------------------------------------
+
+In the header value above notice that it should *not* be prefixed with
+`?` and you can separate parameters as usual with the `&` char.
+
+=== Getting the Response Code
+
+You can get the HTTP response code from the AHC component by getting the
+value from the Out message header with `Exchange.HTTP_RESPONSE_CODE`.
+
+[source,java]
+----------------------------------------------------------------------------------------------
+Exchange exchange = template.send("ahc:http://www.google.com/search", new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(Exchange.HTTP_QUERY, constant("hl=en&q=activemq"));
+            }
+   });
+   Message out = exchange.getOut();
+   int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
+----------------------------------------------------------------------------------------------
+
+== Configuring AsyncHttpClient
+
+The `AsyncHttpClient` client uses a `AsyncHttpClientConfig` to configure
+the client. See the documentation at +
+ http://github.com/sonatype/async-http-client[Async Http Client] for
+more details.
+
+The example below shows how to use a builder to create the
+`AsyncHttpClientConfig` which we configure on the `AhcComponent`.
+
+The `AsyncHttpClientConfigBean` class provides getters and setters for
+the configuration options available in `AsyncHttpClientConfig`. An
+instance of `AsyncHttpClientConfigBean` may be passed directly to the
+AHC component or referenced in an endpoint URI using the `clientConfig`
+URI parameter.
+
+There is the ability to set configuration
+options directly in the URI. URI parameters starting with
+"clientConfig." can be used to set the various configurable properties
+of `AsyncHttpClientConfig`. The properties specified in the endpoint URI
+are merged with those specified in the configuration referenced by the
+"clientConfig" URI parameter with those being set using the
+"clientConfig." parameter taking priority. The `AsyncHttpClientConfig`
+instance referenced is always copied for each endpoint such that
+settings on one endpoint will remain independent of settings on any
+previously created endpoints. The example below shows how to configure
+the AHC component using the "clientConfig." type URI parameters.
+
+[source,java]
+---------------------------------------------------------------------------------------------------------
+from("direct:start")
+    .to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
+---------------------------------------------------------------------------------------------------------
+
+== SSL Support (HTTPS)
+
+[[AHC-UsingtheJSSEConfigurationUtility]]
+Using the JSSE Configuration Utility
+
+The AHC component supports SSL/TLS configuration
+through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+Configuration Utility].  This utility greatly decreases the amount of
+component specific code you need to write and is configurable at the
+endpoint and component levels.  The following examples demonstrate how
+to use the utility with the AHC component.
+
+[[AHC-Programmaticconfigurationofthecomponent]]
+Programmatic configuration of the component
+
+[source,java]
+-------------------------------------------------------------------------
+KeyStoreParameters ksp = new KeyStoreParameters();
+ksp.setResource("/users/home/server/keystore.jks");
+ksp.setPassword("keystorePassword");
+
+KeyManagersParameters kmp = new KeyManagersParameters();
+kmp.setKeyStore(ksp);
+kmp.setKeyPassword("keyPassword");
+
+SSLContextParameters scp = new SSLContextParameters();
+scp.setKeyManagers(kmp);
+
+AhcComponent component = context.getComponent("ahc", AhcComponent.class);
+component.setSslContextParameters(scp));
+-------------------------------------------------------------------------
+
+[[AHC-SpringDSLbasedconfigurationofendpoint]]
+Spring DSL based configuration of endpoint
+
+[source,xml]
+----------------------------------------------------------------------------------
+...
+  <camel:sslContextParameters
+      id="sslContextParameters">
+    <camel:keyManagers
+        keyPassword="keyPassword">
+      <camel:keyStore
+          resource="/users/home/server/keystore.jks"
+          password="keystorePassword"/>
+    </camel:keyManagers>
+  </camel:sslContextParameters>...
+...
+  <to uri="ahc:https://localhost/foo?sslContextParameters=#sslContextParameters"/>
+...
+----------------------------------------------------------------------------------
+
+include::{page-component-version}@camel-spring-boot::page$ahc-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-ws-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-ws-component.adoc
new file mode 100644
index 0000000..07952d9
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/ahc-ws-component.adoc
@@ -0,0 +1,173 @@
+[[ahc-ws-component]]
+= Async HTTP Client (AHC) Websocket Component
+:docTitle: Async HTTP Client (AHC) Websocket
+:artifactId: camel-ahc-ws
+:description: Exchange data with external Websocket servers using Async Http Client.
+:since: 2.14
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/ahc-ws.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AHC-WS component provides Websocket
+based endpoints for a client communicating with
+external servers over Websocket (as a client opening a websocket
+connection to an external server). +
+The component uses the xref:ahc-component.adoc[AHC] component that in turn uses
+the 
+https://github.com/AsyncHttpClient/async-http-client[Async Http Client] 
+library.
+
+Maven users will need to add the following dependency to
+their `pom.xml` for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-ahc-ws</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI Format
+
+[source,java]
+-------------------------------------------------
+ahc-ws://hostname[:port][/resourceUri][?options]
+ahc-wss://hostname[:port][/resourceUri][?options]
+-------------------------------------------------
+
+Will by default use port 80 for ahc-ws and 443 for ahc-wss.
+
+
+// component options: START
+== Component Options
+
+
+The Async HTTP Client (AHC) Websocket component supports 10 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *allowJavaSerializedObject* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *binding* (advanced) | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. |  | AhcBinding
+| *client* (advanced) | To use a custom AsyncHttpClient |  | AsyncHttpClient
+| *clientConfig* (advanced) | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. |  | AsyncHttpClientConfig
+| *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *sslContextParameters* (security) | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. |  | SSLContextParameters
+| *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Async HTTP Client (AHC) Websocket endpoint is configured using URI syntax:
+
+----
+ahc-ws:httpUri
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *httpUri* | *Required* The URI to use such as \http://hostname:port/path |  | URI
+|===
+
+
+=== Query Parameters (18 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeEndpoint* (common) | If the option is true, then the Exchange.HTTP_URI header is ignored, and use the endpoint's URI for request. You may also set the throwExceptionOnFailure to be false to let the AhcProducer send all the fault response back. | false | boolean
+| *bufferSize* (common) | The initial in-memory buffer size used when transferring data between Camel and AHC Client. | 4096 | int
+| *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *throwExceptionOnFailure* (common) | Option to disable throwing the AhcOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code. | true | boolean
+| *transferException* (common) | If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application/x-java-serialized-object content type (for example using Jetty or Servlet Camel components). On the producer side the exception will be deserialized and thrown as is, instead of the AhcOperationFailedException. The caused exception is required to be serialized. This is by default turned off. If you enable [...]
+| *bridgeErrorHandler* (consumer) | 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
+| *sendMessageOnError* (consumer) | Whether to send an message if the web-socket listener received an error. | false | boolean
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *connectionClose* (producer) | Define if the Connection Close header has to be added to HTTP Request. This parameter is false by default | false | boolean
+| *cookieHandler* (producer) | Configure a cookie handler to maintain a HTTP session |  | CookieHandler
+| *lazyStartProducer* (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 creating and [...]
+| *useStreaming* (producer) | To enable streaming to send data as multiple text fragments. | false | boolean
+| *binding* (advanced) | To use a custom AhcBinding which allows to control how to bind between AHC and Camel. |  | AhcBinding
+| *clientConfig* (advanced) | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. |  | AsyncHttpClientConfig
+| *clientConfigOptions* (advanced) | To configure the AsyncHttpClientConfig using the key/values from the Map. |  | Map
+| *clientConfigRealmOptions* (security) | To configure the AsyncHttpClientConfig Realm using the key/values from the Map. |  | Map
+| *sslContextParameters* (security) | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. This reference overrides any configured SSLContextParameters at the component level. See Using the JSSE Configuration Utility. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. |  | SSLContextParameters
+|===
+// endpoint options: END
+
+
+== Writing and Reading Data over Websocket
+
+An ahc-ws endpoint can either write data to the socket or read from the
+socket, depending on whether the endpoint is configured as the producer
+or the consumer, respectively.
+
+== Configuring URI to Write or Read Data
+
+In the route below, Camel will write to the specified websocket
+connection.
+
+[source,java]
+-----------------------------------
+from("direct:start")
+        .to("ahc-ws://targethost");
+-----------------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+------------------------------------------------------------
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="direct:start"/>
+    <to uri="ahc-ws://targethost"/>
+  </route>
+</camelContext>
+------------------------------------------------------------
+
+In the route below, Camel will read from the specified websocket
+connection.
+
+[source,java]
+---------------------------
+from("ahc-ws://targethost")
+        .to("direct:next");
+---------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+------------------------------------------------------------
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="ahc-ws://targethost"/>
+    <to uri="direct:next"/>
+  </route>
+</camelContext>
+------------------------------------------------------------
+
+ 
+
+
+include::{page-component-version}@camel-spring-boot::page$ahc-ws-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
new file mode 100644
index 0000000..73c6e77
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
@@ -0,0 +1,395 @@
+[[amqp-component]]
+= AMQP Component
+:docTitle: AMQP
+:artifactId: camel-amqp
+:description: Messaging with AMQP protocol using Apache QPid Client.
+:since: 1.2
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/amqp.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AMQP component supports the
+http://www.amqp.org/[AMQP 1.0 protocol]
+using the JMS Client API of the http://qpid.apache.org/[Qpid]
+project.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-amqp</artifactId>
+    <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
+</dependency>
+----
+
+== URI format
+
+[source,java]
+----
+amqp:[queue:|topic:]destinationName[?options]
+----
+
+// component options: START
+== Component Options
+
+
+The AMQP component supports 99 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *clientId* (common) | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
+| *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message broker [...]
+| *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
+| *includeAmqpAnnotations* (common) | Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true maps AMQP message annotations that contain a JMS_AMQP_MA_ prefix to message headers. Due to limitations in Apache Qpid JMS API, currently delivery annotations are ignored. | false | boolean
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. There are 5 enums and the value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
+| *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
+| *testConnectionOnStartup* (common) | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | boolean
+| *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit av [...]
+| *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transac [...]
+| *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
+| *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details. |  | int
+| *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. There are 5 enums and the value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
+| *concurrentConsumers* (consumer) | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | int
+| *maxConcurrentConsumers* (consumer) | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
+| *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
+| *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
+| *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
+| *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
+| *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
+| *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
+| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | boolean
+| *eagerPoisonBody* (consumer) | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
+| *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | boolean
+| *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
+| *deliveryMode* (producer) | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. There are 2 enums and the value can be one of: 1, 2 |  | Integer
+| *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
+| *explicitQosEnabled* (producer) | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *preserveMessageQos* (producer) | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnable [...]
+| *priority* (producer) | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. There are 9 enums and the value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
+| *replyToConcurrentConsumers* (producer) | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | int
+| *replyToMaxConcurrentConsumers* (producer) | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. |  | int
+| *replyToOnTimeoutMaxConcurrent{zwsp}Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
+| *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
+| *requestTimeout* (producer) | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | long
+| *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
+| *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
+| *allowNullBody* (producer) | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | boolean
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message w [...]
+| *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
+| *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
+| *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
+| *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
+| *allowAutoWiredConnection{zwsp}Factory* (advanced) | Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default. | true | boolean
+| *allowAutoWiredDestination{zwsp}Resolver* (advanced) | Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default. | true | boolean
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
+| *artemisStreamingEnabled* (advanced) | Whether optimizing for Apache Artemis streaming mode. | true | boolean
+| *asyncStartListener* (advanced) | Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, the [...]
+| *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *configuration* (advanced) | To use a shared JMS configuration |  | JmsConfiguration
+| *destinationResolver* (advanced) | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). |  | DestinationResolver
+| *errorHandler* (advanced) | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. [...]
+| *exceptionListener* (advanced) | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. |  | ExceptionListener
+| *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
+| *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
+| *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
+| *jmsKeyFormatStrategy* (advanced) | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache [...]
+| *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
+| *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
+| *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
+| *messageCreatedStrategy* (advanced) | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. |  | MessageCreatedStrategy
+| *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer{zwsp}Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
+| *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
+| *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
+| *queueBrowseStrategy* (advanced) | To use a custom QueueBrowseStrategy when browsing queues |  | QueueBrowseStrategy
+| *receiveTimeout* (advanced) | The timeout for receiving messages (in milliseconds). | 1000 | long
+| *recoveryInterval* (advanced) | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000 | long
+| *requestTimeoutCheckerInterval* (advanced) | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | long
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used | false | boolean
+| *transferException* (advanced) | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes preced [...]
+| *transferExchange* (advanced) | You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an E [...]
+| *useMessageIDAsCorrelationID* (advanced) | Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages. | false | boolean
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedCounter* (advanced) | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | int
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedThreadSleepingTime* (advanced) | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. | 100 | long
+| *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *errorHandlerLoggingLevel* (logging) | Allows to configure the default errorHandler logging level for logging uncaught exceptions. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | WARN | LoggingLevel
+| *errorHandlerLogStackTrace* (logging) | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | boolean
+| *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the conta [...]
+| *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
+| *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
+| *transactionName* (transaction) | The name of the transaction to use. |  | String
+| *transactionTimeout* (transaction) | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | int
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AMQP endpoint is configured using URI syntax:
+
+----
+amqp:destinationType:destinationName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (2 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *destinationType* | The kind of destination to use. There are 4 enums and the value can be one of: queue, topic, temp-queue, temp-topic | queue | String
+| *destinationName* | *Required* Name of the queue or topic to use as destination |  | String
+|===
+
+
+=== Query Parameters (95 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *clientId* (common) | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. |  | String
+| *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message broker [...]
+| *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. There are 5 enums and the value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
+| *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). |  | String
+| *testConnectionOnStartup* (common) | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | boolean
+| *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit av [...]
+| *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transac [...]
+| *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
+| *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details. |  | int
+| *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. There are 5 enums and the value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
+| *concurrentConsumers* (consumer) | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | int
+| *maxConcurrentConsumers* (consumer) | Specifies the maximum number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
+| *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
+| *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
+| *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
+| *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
+| *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
+| *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
+| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | boolean
+| *eagerPoisonBody* (consumer) | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | Poison JMS message due to ${exception.message} | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | boolean
+| *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
+| *deliveryMode* (producer) | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. There are 2 enums and the value can be one of: 1, 2 |  | Integer
+| *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
+| *explicitQosEnabled* (producer) | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | false | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *preserveMessageQos* (producer) | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnable [...]
+| *priority* (producer) | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. There are 9 enums and the value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
+| *replyToConcurrentConsumers* (producer) | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | int
+| *replyToMaxConcurrentConsumers* (producer) | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. |  | int
+| *replyToOnTimeoutMaxConcurrent{zwsp}Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. |  | String
+| *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
+| *requestTimeout* (producer) | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | long
+| *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
+| *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
+| *allowNullBody* (producer) | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | boolean
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message w [...]
+| *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
+| *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
+| *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
+| *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
+| *artemisStreamingEnabled* (advanced) | Whether optimizing for Apache Artemis streaming mode. | true | boolean
+| *asyncStartListener* (advanced) | Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, the [...]
+| *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
+| *destinationResolver* (advanced) | A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). |  | DestinationResolver
+| *errorHandler* (advanced) | Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. [...]
+| *exceptionListener* (advanced) | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. |  | ExceptionListener
+| *headerFilterStrategy* (advanced) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
+| *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
+| *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
+| *jmsKeyFormatStrategy* (advanced) | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache [...]
+| *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
+| *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
+| *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
+| *messageCreatedStrategy* (advanced) | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. |  | MessageCreatedStrategy
+| *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer{zwsp}Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
+| *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
+| *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
+| *receiveTimeout* (advanced) | The timeout for receiving messages (in milliseconds). | 1000 | long
+| *recoveryInterval* (advanced) | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000 | long
+| *requestTimeoutCheckerInterval* (advanced) | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | long
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used | false | boolean
+| *transferException* (advanced) | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes preced [...]
+| *transferExchange* (advanced) | You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an E [...]
+| *useMessageIDAsCorrelationID* (advanced) | Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages. | false | boolean
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedCounter* (advanced) | Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request/reply over JMS and when the option useMessageIDAsCorrelationID is enabled. | 50 | int
+| *waitForProvisionCorrelationTo{zwsp}BeUpdatedThreadSleepingTime* (advanced) | Interval in millis to sleep each time while waiting for provisional correlation id to be updated. | 100 | long
+| *errorHandlerLoggingLevel* (logging) | Allows to configure the default errorHandler logging level for logging uncaught exceptions. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | WARN | LoggingLevel
+| *errorHandlerLogStackTrace* (logging) | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | boolean
+| *password* (security) | Password to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *username* (security) | Username to use with the ConnectionFactory. You can also configure username/password directly on the ConnectionFactory. |  | String
+| *transacted* (transaction) | Specifies whether to use transacted mode | false | boolean
+| *transactedInOut* (transaction) | Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the conta [...]
+| *lazyCreateTransactionManager* (transaction) | If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true. | true | boolean
+| *transactionManager* (transaction) | The Spring transaction manager to use. |  | PlatformTransactionManager
+| *transactionName* (transaction) | The name of the transaction to use. |  | String
+| *transactionTimeout* (transaction) | The timeout value of the transaction (in seconds), if using transacted mode. | -1 | int
+|===
+// endpoint options: END
+
+
+
+== Usage
+
+As AMQP component is inherited from JMS component, the usage of the
+former is almost identical to the latter:
+
+*Using AMQP component*
+
+[source,java]
+----
+// Consuming from AMQP queue
+from("amqp:queue:incoming").
+  to(...);
+ 
+// Sending message to the AMQP topic
+from(...).
+  to("amqp:topic:notify");
+----
+
+== Configuring AMQP component
+
+*Creating AMQP 1.0 component*
+
+[source,java]
+----
+AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
+ 
+AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
+----
+
+You can also add an instance
+of `org.apache.camel.component.amqp.AMQPConnectionDetails` to the
+registry in order to automatically configure the AMQP component. For example for Spring Boot you just have to define bean:
+
+*AMQP connection details auto-configuration*
+
+[source,java]
+----
+@Bean
+AMQPConnectionDetails amqpConnection() {
+  return new AMQPConnectionDetails("amqp://localhost:5672"); 
+}
+ 
+@Bean
+AMQPConnectionDetails securedAmqpConnection() {
+  return new AMQPConnectionDetails("amqp://localhost:5672", "username", "password"); 
+}
+----
+
+Likewise, you can also use CDI producer methods when using Camel-CDI
+
+*AMQP connection details auto-configuration for CDI*
+
+[source,java]
+----
+@Produces
+AMQPConnectionDetails amqpConnection() {
+  return new AMQPConnectionDetails("amqp://localhost:5672");
+}
+----
+
+You can also rely on the xref:properties-component.adoc[Camel properties] to read
+the AMQP connection details. Factory
+method `AMQPConnectionDetails.discoverAMQP()` attempts to read Camel
+properties in a Kubernetes-like convention, just as demonstrated on the
+snippet below:
+
+*AMQP connection details auto-configuration*
+
+[source,java]
+----
+export AMQP_SERVICE_HOST = "mybroker.com"
+export AMQP_SERVICE_PORT = "6666"
+export AMQP_SERVICE_USERNAME = "username"
+export AMQP_SERVICE_PASSWORD = "password"
+ 
+...
+ 
+@Bean
+AMQPConnectionDetails amqpConnection() {
+  return AMQPConnectionDetails.discoverAMQP(); 
+}
+----
+
+*Enabling AMQP specific options*
+
+If you, for example, need to enable `amqp.traceFrames` you can do that by appending the option to your URI, like the following example:
+
+[source,java]
+----
+AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
+----
+
+For reference take a look at the https://qpid.apache.org/releases/qpid-jms-0.51.0/docs/index.html[QPID JMS client configuration]
+
+== Using topics
+
+To have using topics working with `camel-amqp` you need to configure the
+component to use `topic://` as topic prefix, as shown below:
+
+[source,xml]
+----
+ <bean id="amqp" class="org.apache.camel.component.amqp.AmqpComponent">
+   <property name="connectionFactory">
+     <bean class="org.apache.qpid.jms.JmsConnectionFactory" factory-method="createFromURL">
+       <property name="remoteURI" value="amqp://localhost:5672" />
+       <property name="topicPrefix" value="topic://" />  <!-- only necessary when connecting to ActiveMQ over AMQP 1.0 -->
+     </bean>
+   </property>
+ </bean>
+----
+
+Keep in mind that both  `AMQPComponent#amqpComponent()` methods and
+`AMQPConnectionDetails` pre-configure the component with the topic
+prefix, so you don't have to configure it explicitly.
+
+
+include::{page-component-version}@camel-spring-boot::page$amqp-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/arangodb-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/arangodb-component.adoc
new file mode 100644
index 0000000..603120a
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/arangodb-component.adoc
@@ -0,0 +1,103 @@
+[[arangodb-component]]
+= ArangoDb Component
+:docTitle: ArangoDb
+:artifactId: camel-arangodb
+:description: Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
+:since: 3.5
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/arangodb.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The ArangoDb component is a ArangoDb client that uses the https://github.com/arangodb/arangodb-java-driver[arango java driver] to perform queries on collections and graphs in the ArangoDb database.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-arangodb</artifactId>
+    <version>x.x.x</version>
+  <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+
+== URI format
+
+[source,java]
+---------------------------
+arangodb:database[?options]
+---------------------------
+
+// component options: START
+== Component Options
+
+
+The ArangoDb component supports 12 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | ArangoDbConfiguration
+| *documentCollection* (producer) | Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when using the CRUD operation on the document database collections (SAVE_DOCUMENT , FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT). |  | String
+| *edgeCollection* (producer) | Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perform CRUD operation on edges using these operations : SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX. The graph attribute is mandatory. |  | String
+| *graph* (producer) | Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection and edgeCollection. |  | String
+| *host* (producer) | ArangoDB host. If host and port are default, this field is Optional. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | Operations to perform on ArangoDb. For the operation AQL_QUERY, no need to specify a collection or graph. There are 13 enums and the value can be one of: SAVE_DOCUMENT, FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT, AQL_QUERY, SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX, SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE |  | ArangoDbOperation
+| *port* (producer) | ArangoDB exposed port. If host and port are default, this field is Optional. |  | int
+| *vertexCollection* (producer) | Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to perform CRUD operation on vertices using these operations : SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE. The graph attribute is mandatory. |  | String
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *password* (security) | ArangoDB password. If user and password are default, this field is Optional. |  | String
+| *user* (security) | ArangoDB user. If user and password are default, this field is Optional. |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The ArangoDb endpoint is configured using URI syntax:
+
+----
+arangodb:database
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *database* | *Required* database name |  | String
+|===
+
+
+=== Query Parameters (10 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *documentCollection* (producer) | Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when using the CRUD operation on the document database collections (SAVE_DOCUMENT , FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT). |  | String
+| *edgeCollection* (producer) | Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perform CRUD operation on edges using these operations : SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX. The graph attribute is mandatory. |  | String
+| *graph* (producer) | Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection and edgeCollection. |  | String
+| *host* (producer) | ArangoDB host. If host and port are default, this field is Optional. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | Operations to perform on ArangoDb. For the operation AQL_QUERY, no need to specify a collection or graph. There are 13 enums and the value can be one of: SAVE_DOCUMENT, FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT, AQL_QUERY, SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX, SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE |  | ArangoDbOperation
+| *port* (producer) | ArangoDB exposed port. If host and port are default, this field is Optional. |  | int
+| *vertexCollection* (producer) | Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to perform CRUD operation on vertices using these operations : SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE. The graph attribute is mandatory. |  | String
+| *password* (security) | ArangoDB password. If user and password are default, this field is Optional. |  | String
+| *user* (security) | ArangoDB user. If user and password are default, this field is Optional. |  | String
+|===
+// endpoint options: END
+
+include::{page-component-version}@camel-spring-boot::page$arangodb-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/as2-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/as2-component.adoc
new file mode 100644
index 0000000..0ded799
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/as2-component.adoc
@@ -0,0 +1,258 @@
+[[as2-component]]
+= AS2 Component
+:docTitle: AS2
+:artifactId: camel-as2
+:description: Transfer data securely and reliably using the AS2 protocol (RFC4130).
+:since: 2.22
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/as2.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AS2 component provides transport of EDI messages using the HTTP transfer protocol
+as specified in https://tools.ietf.org/html/rfc4130[RFC4130]. 
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-as2</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+----
+
+== URI format
+
+[source]
+----
+as2://apiName/methodName
+----
+
+apiName can be one of:
+
+* client
+* server
+
+
+// component options: START
+== Component Options
+
+
+The AS2 component supports 4 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *configuration* (advanced) | Component configuration |  | AS2Configuration
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AS2 endpoint is configured using URI syntax:
+
+----
+as2:apiName/methodName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (2 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *apiName* | *Required* What kind of operation to perform. There are 2 enums and the value can be one of: CLIENT, SERVER |  | AS2ApiName
+| *methodName* | *Required* What sub operation to use for the selected operation |  | String
+|===
+
+
+=== Query Parameters (30 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *as2From* (common) | The value of the AS2From header of AS2 message. |  | String
+| *as2MessageStructure* (common) | The structure of AS2 Message. One of: PLAIN - No encryption, no signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption, no signature, ENCRYPTED_SIGNED - Encryption, signature. There are 8 enums and the value can be one of: PLAIN, SIGNED, ENCRYPTED, SIGNED_ENCRYPTED, PLAIN_COMPRESSED, SIGNED_COMPRESSED, ENCRYPTED_COMPRESSED, ENCRYPTED_COMPRESSED_SIGNED |  | AS2MessageStructure
+| *as2To* (common) | The value of the AS2To header of AS2 message. |  | String
+| *as2Version* (common) | The version of the AS2 protocol. There are 2 enums and the value can be one of: 1.0, 1.1 | 1.1 | String
+| *clientFqdn* (common) | The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
+| *compressionAlgorithm* (common) | The algorithm used to compress EDI message. There are 1 enums and the value can be one of: ZLIB |  | AS2CompressionAlgorithm
+| *decryptingPrivateKey* (common) | The key used to encrypt the EDI message. |  | PrivateKey
+| *dispositionNotificationTo* (common) | 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
+| *ediMessageTransferEncoding* (common) | The transfer encoding of EDI message. |  | String
+| *ediMessageType* (common) | The content type of EDI message. One of application/edifact, application/edi-x12, application/edi-consent |  | ContentType
+| *encryptingAlgorithm* (common) | The algorithm used to encrypt EDI message. There are 20 enums and the value can be one of: AES128_CBC, AES192_CBC, AES256_CBC, AES128_CCM, AES192_CCM, AES256_CCM, AES128_GCM, AES192_GCM, AES256_GCM, CAMELLIA128_CBC, CAMELLIA192_CBC, CAMELLIA256_CBC, CAST5_CBC, DES_CBC, DES_EDE3_CBC, GOST28147_GCFB, IDEA_CBC, RC2_CBC, RC4, SEED_CBC |  | AS2EncryptionAlgorithm
+| *encryptingCertificateChain* (common) | The chain of certificates used to encrypt EDI message. |  | Certificate[]
+| *from* (common) | The value of the From header of AS2 message. |  | String
+| *inBody* (common) | Sets the name of a parameter to be passed in the exchange In Body |  | String
+| *mdnMessageTemplate* (common) | The template used to format MDN message |  | String
+| *requestUri* (common) | The request URI of EDI message. | / | String
+| *server* (common) | The value included in the Server message header identifying the AS2 Server. | Camel AS2 Server Endpoint | String
+| *serverFqdn* (common) | The Server Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
+| *serverPortNumber* (common) | The port number of server. |  | Integer
+| *signedReceiptMicAlgorithms* (common) | The list of algorithms, in order of preference, requested to generate a message integrity check (MIC) returned in message dispostion notification (MDN) |  | String[]
+| *signingAlgorithm* (common) | The algorithm used to sign EDI message. There are 47 enums and the value can be one of: SHA3_224WITHRSA, SHA3_256WITHRSA, SHA3_384withRSA, SHA3_512WITHRSA, MD5WITHRSA, SHA1WITHRSA, MD2WITHRSA, SHA224WITHRSA, SHA256WITHRSA, SHA384WITHRSA, SHA512WITHRSA, RIPEMD128WITHRSA, RIPEMD160WITHRSA, RIPEMD256WITHRSA, SHA224WITHDSA, SHA256WITHDSA, SHA384WITHDSA, SHA512WITHDSA, SHA3_224WITHDSA, SHA3_256WITHDSA, SHA3_384WITHDSA, SHA3_512WITHDSA, SHA1WITHDSA, SHA3_224WITH [...]
+| *signingCertificateChain* (common) | The chain of certificates used to sign EDI message. |  | Certificate[]
+| *signingPrivateKey* (common) | The key used to sign the EDI message. |  | PrivateKey
+| *subject* (common) | The value of Subject header of AS2 message. |  | String
+| *targetHostname* (common) | The host name (IP or DNS name) of target host. |  | String
+| *targetPortNumber* (common) | The port number of target host. -1 indicates the scheme default port. |  | Integer
+| *userAgent* (common) | The value included in the User-Agent message header identifying the AS2 user agent. | Camel AS2 Client Endpoint | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+|===
+
+
+
+
+=== API Parameters (2 APIs):
+
+The AS2 endpoint is an API based component and has additional parameters based on which API name and API method is used.
+The API name and API method is located in the endpoint URI as the apiName/methodName path parameters:
+
+----
+as2:apiName/methodName
+----
+
+There are 2 API names as listed in the table below:
+
+[width="100%",cols="2,2,6",options="header"]
+|===
+| API Name | Type | Description
+| *client* | Producer | Sends EDI Messages over HTTP
+| *server* | Consumer | Receives EDI Messages over HTTP
+|===
+
+Each API is documented in the following sections to come.
+
+
+==== API: client
+
+*Only producer is supported*
+
+
+
+
+The client API has 1 method(s) which is represented by the following method signatures
+(an API method may have multiple signatures due to overloading):
+
+[source,java]
+----
+
+org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm signingAlgorithm, java.security.cert.Certificate[] signingCertificateChain, java.security.PrivateKey signingPrivateKey, org [...]
+
+----
+
+The client API is defined in the syntax as follows:
+
+----
+as2:client/methodName?[parameters]
+----
+
+The 1 method(s) is listed in the table below.
+(API methods can have a shorthand alias name which can be used in the syntax instead of the name)
+
+[width="100%",cols="2,2,6",options="header"]
+|===
+| Method | Alias | Description
+| *send* |  | Send ediMessage to trading partner
+|===
+
+The client API method(s) has the following set of parameters listed in the table below:
+[width="100%",cols="2,2,4,2",options="header"]
+|===
+| Method | Parameter | Description | Type
+| send | *as2From* |  AS2 name of sender | String
+| send | *as2MessageStructure* |  The structure of AS2 to send; see AS2MessageStructure | AS2MessageStructure
+| send | *as2To* |  AS2 name of recipient | String
+| send | *compressionAlgorithm* | *Optional*  The algorithm used to compress the message or null if sending EDI message uncompressed | AS2CompressionAlgorithm
+| send | *dispositionNotificationTo* | *Optional*  An RFC2822 address to request a receipt or null if no receipt requested | String
+| send | *ediMessage* |  EDI message to transport | String
+| send | *ediMessageContentType* |  The content typw of EDI message | ContentType
+| send | *ediMessageTransferEncoding* | *Optional*  The transfer encoding used to transport EDI message | String
+| send | *encryptingAlgorithm* | *Optional*  The algorithm used to encrypt the message or null if sending EDI message unencrypted | AS2EncryptionAlgorithm
+| send | *encryptingCertificateChain* | *Optional*  The chain of certificates used to encrypt the message or null if sending EDI message unencrypted | Certificate[]
+| send | *from* |  RFC2822 address of sender | String
+| send | *requestUri* |  Resource location to deliver message | String
+| send | *signedReceiptMicAlgorithms* | *Optional*  The senders list of signing algorithms for signing receipt, in preferred order, or null if requesting an unsigned receipt. | String[]
+| send | *signingAlgorithm* | *Optional*  The algorithm used to sign the message or null if sending EDI message unsigned | AS2SignatureAlgorithm
+| send | *signingCertificateChain* | *Optional*  The chain of certificates used to sign the message or null if sending EDI message unsigned | Certificate[]
+| send | *signingPrivateKey* | *Optional*  The private key used to sign EDI message | PrivateKey
+| send | *subject* |  Message subject | String
+|===
+
+In addition to the parameters above, the client API can also use from the 30 endpoint query option
+which is listed in the _Query Parameters_ section.
+
+Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.
+The message header name must be of the format `CamelAs2.parameter`.
+The `inBody` parameter overrides message header, i.e. the endpoint parameter `inBody=myParameterNameHere`
+would override a `CamelAs2.myParameterNameHere` header.
+
+
+
+==== API: server
+
+*Only consumer is supported*
+
+
+
+
+The server API has 1 method(s) which is represented by the following method signatures
+(an API method may have multiple signatures due to overloading):
+
+[source,java]
+----
+
+void listen(String requestUriPattern, org.apache.http.protocol.HttpRequestHandler handler);
+
+----
+
+The server API is defined in the syntax as follows:
+
+----
+as2:server/methodName?[parameters]
+----
+
+The 1 method(s) is listed in the table below.
+(API methods can have a shorthand alias name which can be used in the syntax instead of the name)
+
+[width="100%",cols="2,2,6",options="header"]
+|===
+| Method | Alias | Description
+| *listen* |  | 
+|===
+
+The server API method(s) has the following set of parameters listed in the table below:
+[width="100%",cols="2,2,4,2",options="header"]
+|===
+| Method | Parameter | Description | Type
+| listen | *requestUriPattern* |   | String
+|===
+
+In addition to the parameters above, the server API can also use from the 30 endpoint query option
+which is listed in the _Query Parameters_ section.
+
+Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.
+The message header name must be of the format `CamelAs2.parameter`.
+The `inBody` parameter overrides message header, i.e. the endpoint parameter `inBody=myParameterNameHere`
+would override a `CamelAs2.myParameterNameHere` header.
+// endpoint options: END
+
+include::{page-component-version}@camel-spring-boot::page$as2-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/asterisk-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/asterisk-component.adoc
new file mode 100644
index 0000000..6d1eb10
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/asterisk-component.adoc
@@ -0,0 +1,101 @@
+[[asterisk-component]]
+= Asterisk Component
+:docTitle: Asterisk
+:artifactId: camel-asterisk
+:description: Interact with Asterisk PBX Server.
+:since: 2.18
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/asterisk.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The Asterisk component allows you to work easily with an Asterisk PBX Server http://www.asterisk.org/ using https://asterisk-java.org/[asterisk-java]
+
+This component help to interface with http://www.voip-info.org/wiki-Asterisk+manager+API[Asterisk Manager Interface]
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-asterisk</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+----
+asterisk:name[?options]
+----
+
+// component options: START
+== Component Options
+
+
+The Asterisk component supports 3 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Asterisk endpoint is configured using URI syntax:
+
+----
+asterisk:name
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *name* | *Required* Name of component |  | String
+|===
+
+
+=== Query Parameters (8 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *hostname* (common) | *Required* The hostname of the asterisk server |  | String
+| *password* (common) | *Required* Login password |  | String
+| *username* (common) | *Required* Login username |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *action* (producer) | What action to perform such as getting queue status, sip peers or extension state. There are 3 enums and the value can be one of: QUEUE_STATUS, SIP_PEERS, EXTENSION_STATE |  | AsteriskAction
+| *lazyStartProducer* (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 creating and [...]
+|===
+// endpoint options: END
+
+
+== Action
+
+Supported actions are:
+
+* QUEUE_STATUS: Queue status
+* SIP_PEERS: List SIP peers
+* EXTENSION_STATE: Check extension status
+
+include::{page-component-version}@camel-spring-boot::page$asterisk-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atlasmap-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atlasmap-component.adoc
new file mode 100644
index 0000000..d8bd2d6
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atlasmap-component.adoc
@@ -0,0 +1,110 @@
+[[atlasmap-component]]
+= AtlasMap Component
+:docTitle: AtlasMap
+:artifactId: camel-atlasmap
+:description: Transforms the message using an AtlasMap transformation.
+:since: 3.7
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atlasmap.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AtlasMap component allows you to process data mapping using an
+http://www.atlasmap.io/[AtlasMap] data mapping definition. It could be
+either an ADM archive file or mapping definition JSON file.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-atlasmap</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+[source,java]
+---------------------------
+atlasmap:mappingName[?options]
+---------------------------
+
+Where *mappingName* is the classpath-local URI of the AtlasMap
+mapping definition, either ADM archive file or mapping definition JSON file
+ to process.
+
+// component options: START
+== Component Options
+
+
+The AtlasMap component supports 4 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *lazyStartProducer* (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 creating and [...]
+| *atlasContextFactory* (advanced) | To use the AtlasContextFactory otherwise a new engine is created. |  | AtlasContextFactory
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *propertiesFile* (advanced) | The URI of the properties file which is used for AtlasContextFactory initialization. |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AtlasMap endpoint is configured using URI syntax:
+
+----
+atlasmap:resourceUri
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceUri* | *Required* Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will call a method on a bean to be used as the resource. For bean you can specify the method name after dot, eg bean:myBean.myMethod. |  | String
+|===
+
+
+=== Query Parameters (6 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *allowContextMapAll* (producer) | Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API. | false | boolean
+| *contentCache* (producer) | Sets whether to use resource content cache or not | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *sourceMapName* (producer) | The Exchange property name for a source message map which hold java.util.Map&lt;String, Message&gt; where the key is AtlasMap Document ID. AtlasMap consumes Message bodies as source documents, as well as message headers as source properties where the scope equals to Document ID. |  | String
+| *targetMapMode* (producer) | TargetMapMode enum value to specify how multiple target documents are delivered if exist. 'MAP': Stores them into a java.util.Map, and the java.util.Map is set to an exchange property if 'targetMapName' is specified, otherwise message body. 'MESSAGE_HEADER': Stores them into message headers. 'EXCHANGE_PROPERTY': Stores them into exchange properties. ). There are 3 enums and the value can be one of: MAP, MESSAGE_HEADER, EXCHANGE_PROPERTY | MAP | TargetMapMode
+| *targetMapName* (producer) | The Exchange property name for a target document map which hold java.util.Map&lt;String, Object&gt; where the key is AtlasMap Document ID. AtlasMap populates multiple target documents into this map. |  | String
+|===
+// endpoint options: END
+
+
+== Samples
+
+For example you could use something like
+
+[source,java]
+--------------------------------------
+from("activemq:My.Queue").
+  to("atlasmap:atlasmap-mapping.adm");
+--------------------------------------
+
+where you can export an ADM archive file from AtlasMap Data Mapper UI.
+
+
+include::{page-component-version}@camel-spring-boot::page$atlasmap-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmos-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmos-component.adoc
new file mode 100644
index 0000000..9ee110d
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmos-component.adoc
@@ -0,0 +1,157 @@
+[[atmos-component]]
+= Atmos Component
+:docTitle: Atmos
+:artifactId: camel-atmos
+:description: Integrate with EMC's ViPR object data services using the Atmos Client.
+:since: 2.15
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atmos.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+Camel-Atmos is an http://camel.apache.org/[Apache Camel] component that
+allows you to work with ViPR object data services using the
+https://github.com/emcvipr/dataservices-sdk-java[Atmos Client].
+
+
+// component options: START
+== Component Options
+
+
+The Atmos component supports 7 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *uri* (advanced) | The URI of the server for the Atmos client to connect to |  | String
+| *fullTokenId* (security) | The token id to pass to the Atmos client |  | String
+| *secretKey* (security) | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
+| *sslValidation* (security) | Whether the Atmos client should perform SSL validation | false | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atmos endpoint is configured using URI syntax:
+
+----
+atmos:name/operation
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (2 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *name* | Atmos name |  | String
+| *operation* | *Required* Operation to perform. There are 5 enums and the value can be one of: put, del, search, get, move |  | AtmosOperation
+|===
+
+
+=== Query Parameters (12 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *localPath* (common) | Local path to put files |  | String
+| *newRemotePath* (common) | New path on Atmos when moving files |  | String
+| *query* (common) | Search query on Atmos |  | String
+| *remotePath* (common) | Where to put files on Atmos |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *uri* (advanced) | Atomos server uri |  | String
+| *fullTokenId* (security) | Atmos client fullTokenId |  | String
+| *secretKey* (security) | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
+| *sslValidation* (security) | Atmos SSL validation | false | boolean
+|===
+// endpoint options: END
+
+
+
+== Dependencies
+
+To use Atmos in your camel routes you need to add the dependency
+on *camel-atmos* which implements this data format.
+
+If you use maven you could just add the following to your pom.xml,
+substituting the version number for the latest & greatest release (see
+the download page for the latest versions).
+
+[source,xml]
+----------------------------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-atmos</artifactId>
+  <version>x.x.x</version>
+  <!-- use the same version as your Camel core version -->
+</dependency>
+----------------------------------------------------------
+
+[[Atmos-Integrations]]
+
+== Integrations
+
+When you look at atmos integrations, there is one type of consumer, 
+GetConsumer, which is a type of ScheduledPollConsumer. 
+
+* `Get`
+
+Whereas there are 4 types of producers which are 
+
+* `Get` 
+* `Del` 
+* `Move`
+* `Put`
+
+== Examples
+
+These example are taken from tests:
+
+[source,java]
+-------------------------------
+from("atmos:foo/get?remotePath=/path").to("mock:test");
+-------------------------------
+
+Here, this is a consumer example.
+`remotePath` represents the path from where the data will
+be read and passes the camel exchange to regarding producer
+Underneath, this component uses atmos client API for this and
+every other operations.
+
+[source,java]
+-------------------------------
+from("direct:start")
+.to("atmos://get?remotePath=/dummy/dummy.txt")
+.to("mock:result");
+-------------------------------
+
+Here, this a producer sample.
+`remotePath` represents the path where the operations occur
+on ViPR object data service. In producers, operations(`Get`,`Del`,
+`Move`,`Put`) run on ViPR object data services and results are set 
+on headers of camel exchange.
+
+Regarding the operations, the following headers are set on camel
+exhange
+
+[source,text]
+-------------------------------
+DOWNLOADED_FILE, DOWNLOADED_FILES, UPLOADED_FILE, UPLOADED_FILES, FOUND_FILES, DELETED_PATH, MOVED_PATH;
+-------------------------------
+
+
+include::{page-component-version}@camel-spring-boot::page$atmos-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmosphere-websocket-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmosphere-websocket-component.adoc
new file mode 100644
index 0000000..1f432e3
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atmosphere-websocket-component.adoc
@@ -0,0 +1,177 @@
+[[atmosphere-websocket-component]]
+= Atmosphere Websocket Component
+:docTitle: Atmosphere Websocket
+:artifactId: camel-atmosphere-websocket
+:description: Expose WebSocket endpoints using the Atmosphere framework.
+:since: 2.14
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atmosphere-websocket.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The Atmosphere-Websocket component provides Websocket
+based endpoints for a servlet communicating with
+external clients over Websocket (as a servlet accepting websocket
+connections from external clients). +
+The component uses the xref:servlet-component.adoc[SERVLET] component and uses
+the https://github.com/Atmosphere/atmosphere[Atmosphere] library to
+support the Websocket transport in various Servlet containers (e..g.,
+Jetty, Tomcat, ...).
+
+Unlike the
+xref:websocket-component.adoc[Websocket]
+component that starts the embedded Jetty server, this component uses the
+servlet provider of the container.
+
+Maven users will need to add the following dependency to
+their `pom.xml` for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-atmosphere-websocket</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+
+// component options: START
+== Component Options
+
+
+The Atmosphere Websocket component supports 11 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *servletName* (consumer) | Default name of servlet to use. The default name is CamelServlet. | CamelServlet | String
+| *attachmentMultipartBinding* (consumer) | Whether to automatic bind multipart/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's. | false | boolean
+| *fileNameExtWhitelist* (consumer) | Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml. |  | String
+| *httpRegistry* (consumer) | To use a custom org.apache.camel.component.servlet.HttpRegistry. |  | HttpRegistry
+| *lazyStartProducer* (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 creating and [...]
+| *allowJavaSerializedObject* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *httpBinding* (advanced) | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. |  | HttpBinding
+| *httpConfiguration* (advanced) | To use the shared HttpConfiguration as base configuration. |  | HttpConfiguration
+| *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atmosphere Websocket endpoint is configured using URI syntax:
+
+----
+atmosphere-websocket:servicePath
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *servicePath* | *Required* Name of websocket endpoint |  | String
+|===
+
+
+=== Query Parameters (26 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *chunked* (common) | If this option is false the Servlet will disable the HTTP streaming and set the content-length header on the response | true | boolean
+| *disableStreamCache* (common) | Determines whether or not the raw input stream from Servlet is cached or not (Camel will read the stream into a in memory/overflow to file, Stream caching) cache. By default Camel will cache the Servlet input stream to support reading it multiple times to ensure it Camel can retrieve all data from the stream. However you can set this option to true when you for example need to access the raw stream, such as streaming it directly to a file or other persis [...]
+| *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
+| *sendToAll* (common) | Whether to send to all (broadcast) or send to a single receiver. | false | boolean
+| *transferException* (common) | If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application/x-java-serialized-object content type. On the producer side the exception will be deserialized and thrown as is, instead of the HttpOperationFailedException. The caused exception is required to be serialized. This is by default turned off. If you enable this then be aware that Java will deserialize the in [...]
+| *useStreaming* (common) | To enable streaming to send data as multiple text fragments. | false | boolean
+| *httpBinding* (common) | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. |  | HttpBinding
+| *async* (consumer) | Configure the consumer to work in async mode | false | boolean
+| *bridgeErrorHandler* (consumer) | 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
+| *httpMethodRestrict* (consumer) | Used to only allow consuming if the HttpMethod matches, such as GET/POST/PUT etc. Multiple methods can be specified separated by comma. |  | String
+| *matchOnUriPrefix* (consumer) | Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found. | false | boolean
+| *muteException* (consumer) | If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace. | false | boolean
+| *responseBufferSize* (consumer) | To use a custom buffer size on the javax.servlet.ServletResponse. |  | Integer
+| *servletName* (consumer) | Name of the servlet to use | CamelServlet | String
+| *attachmentMultipartBinding* (consumer) | Whether to automatic bind multipart/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's. | false | boolean
+| *eagerCheckContentAvailable* (consumer) | Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. This can be turned on in case HTTP clients do not send streamed data. | false | boolean
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *fileNameExtWhitelist* (consumer) | Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml. |  | String
+| *mapHttpMessageBody* (consumer) | If this option is true then IN exchange Body of the exchange will be mapped to HTTP body. Setting this to false will avoid the HTTP mapping. | true | boolean
+| *mapHttpMessageFormUrlEncoded{zwsp}Body* (consumer) | If this option is true then IN exchange Form Encoded body of the exchange will be mapped to HTTP. Setting this to false will avoid the HTTP Form Encoded body mapping. | true | boolean
+| *mapHttpMessageHeaders* (consumer) | If this option is true then IN exchange Headers of the exchange will be mapped to HTTP headers. Setting this to false will avoid the HTTP Headers mapping. | true | boolean
+| *optionsEnabled* (consumer) | Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off. | false | boolean
+| *traceEnabled* (consumer) | Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off. | false | boolean
+| *bridgeEndpoint* (producer) | If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the option throwExceptionOnFailure to be false to let the HttpProducer send all the fault response back. | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+|===
+// endpoint options: END
+
+
+== Reading and Writing Data over Websocket
+
+An atmopshere-websocket endpoint can either write data to the socket or
+read from the socket, depending on whether the endpoint is configured as
+the producer or the consumer, respectively.
+
+== Configuring URI to Read or Write Data
+
+In the route below, Camel will read from the specified websocket
+connection.
+
+[source,java]
+-------------------------------------------
+from("atmosphere-websocket:///servicepath")
+        .to("direct:next");
+-------------------------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+------------------------------------------------------------
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="atmosphere-websocket:///servicepath"/>
+    <to uri="direct:next"/>
+  </route>
+</camelContext>
+------------------------------------------------------------
+
+In the route below, Camel will read from the specified websocket
+connection.
+
+[source,java]
+---------------------------------------------------
+from("direct:next")
+        .to("atmosphere-websocket:///servicepath");
+---------------------------------------------------
+
+And the equivalent Spring sample:
+
+[source,xml]
+------------------------------------------------------------
+<camelContext xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="direct:next"/>
+    <to uri="atmosphere-websocket:///servicepath"/>
+  </route>
+</camelContext>
+------------------------------------------------------------
+
+ 
+
+
+include::{page-component-version}@camel-spring-boot::page$atmosphere-websocket-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atom-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atom-component.adoc
new file mode 100644
index 0000000..a60e9a30
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atom-component.adoc
@@ -0,0 +1,161 @@
+[[atom-component]]
+= Atom Component
+:docTitle: Atom
+:artifactId: camel-atom
+:description: Poll Atom RSS feeds.
+:since: 1.2
+:supportLevel: Stable
+:component-header: Only consumer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atom.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The Atom component is used for polling Atom feeds.
+
+Camel will poll the feed every 60 seconds by default. +
+ *Note:* The component currently only supports polling (consuming)
+feeds.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-atom</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+[source,java]
+------------------------
+atom://atomUri[?options]
+------------------------
+
+Where *atomUri* is the URI to the Atom feed to poll.
+
+
+// component options: START
+== Component Options
+
+
+The Atom component supports 2 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atom endpoint is configured using URI syntax:
+
+----
+atom:feedUri
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *feedUri* | *Required* The URI to the feed to poll. |  | String
+|===
+
+
+=== Query Parameters (27 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bridgeErrorHandler* (consumer) | 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
+| *feedHeader* (consumer) | Sets whether to add the feed object as a header. | true | boolean
+| *filter* (consumer) | Sets whether to use filtering or not of the entries. | true | boolean
+| *lastUpdate* (consumer) | Sets the timestamp to be used for filtering entries from the atom feeds. This options is only in conjunction with the splitEntries. |  | Date
+| *password* (consumer) | Sets the password to be used for basic authentication when polling from a HTTP feed. |  | String
+| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
+| *sortEntries* (consumer) | Sets whether to sort entries by published date. Only works when splitEntries = true. | false | boolean
+| *splitEntries* (consumer) | Sets whether or not entries should be sent individually or whether the entire feed should be sent as a single message | true | boolean
+| *throttleEntries* (consumer) | Sets whether all entries identified in a single feed poll should be delivered immediately. If true, only one entry is processed per delay. Only applicable when splitEntries = true. | true | boolean
+| *username* (consumer) | Sets the username to be used for basic authentication when polling from a HTTP feed. |  | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
+| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
+| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
+| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
+| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
+| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
+| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
+| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
+| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler | none | Object
+| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
+| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
+| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
+| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+|===
+// endpoint options: END
+
+
+== Exchange data format
+
+Camel will set the In body on the returned `Exchange` with the entries.
+Depending on the `splitEntries` flag Camel will either return one
+`Entry` or a `List<Entry>`.
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Option |Value |Behavior
+|`splitEntries` |`true` |Only a single entry from the currently being processed feed is set:
+`exchange.in.body(Entry)`
+
+|`splitEntries` |`false` |The entire list of entries from the feed is set:
+`exchange.in.body(List<Entry>)`
+|=======================================================================
+
+Camel can set the `Feed` object on the In header (see `feedHeader`
+option to disable this):
+
+== Message Headers
+
+Camel atom uses these headers.
+
+[width="100%",cols="10%,90%",options="header",]
+|=======================================================================
+|Header |Description
+|`CamelAtomFeed` |When consuming the `org.apache.abdera.model.Feed` object is set to this
+header.
+|=======================================================================
+
+== Samples
+
+In this sample we poll James Strachan's blog.
+
+[source,java]
+---------------------------------------------------------------------------------
+from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
+---------------------------------------------------------------------------------
+
+In this sample we want to filter only good blogs we like to a SEDA
+queue. The sample also shows how to setup Camel standalone, not running
+in any Container or using Spring.
+
+
+include::{page-component-version}@camel-spring-boot::page$atom-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-map-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-map-component.adoc
new file mode 100644
index 0000000..7f166d0
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-map-component.adoc
@@ -0,0 +1,220 @@
+[[atomix-map-component]]
+= Atomix Map Component
+:docTitle: Atomix Map
+:artifactId: camel-atomix
+:description: Access Atomix's distributed map.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-map.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Map component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/primitives/DistributedMap/[Distributed Map] collection.
+
+Maven users will need to add the following dependency to their pom.xml for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-map:mapName
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix Map component supports 18 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configuration* (common) | The shared component configuration |  | AtomixMapConfiguration
+| *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. There are 12 enums and the value can be one of: PUT, PUT_IF_ABSENT, GET, CLEAR, SIZE, CONTAINS_KEY, CONTAINS_VALUE, IS_EMPTY, ENTRY_SET, REMOVE, REPLACE, VALUES | PUT | Action
+| *key* (common) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
+| *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix Map endpoint is configured using URI syntax:
+
+----
+atomix-map:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (18 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configurationUri* (common) | The Atomix configuration uri. |  | String
+| *defaultAction* (common) | The default action. There are 12 enums and the value can be one of: PUT, PUT_IF_ABSENT, GET, CLEAR, SIZE, CONTAINS_KEY, CONTAINS_VALUE, IS_EMPTY, ENTRY_SET, REMOVE, REPLACE, VALUES | PUT | Action
+| *key* (common) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
+| *nodes* (common) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+== Headers
+
+[width="100%",cols="10%,10%,20%a,60%",options="header",]
+|===
+| Name
+| Type
+| Values
+| Description
+
+| CamelAtomixResourceAction
+| AtomixMap.Action
+| * PUT
+  * PUT_IF_ABSENT
+  * GET
+  * CLEAR
+  * SIZE
+  * CONTAINS_KEY
+  * CONTAINS_VALUE
+  * IS_EMPTY
+  * ENTRY_SET
+  * REMOVE
+  * REPLACE
+  * VALUES
+| The action to perform
+
+| CamelAtomixResourceKey
+| Object
+| -
+| The key to operate on
+
+| CamelAtomixResourceValue
+| Object
+| -
+| The value, if missing In Body is used
+
+| CamelAtomixResourceOldValue
+| Object
+| -
+| The old value
+
+| CamelAtomixResourceTTL
+| String / long
+| -
+| The entry TTL
+
+| CamelAtomixResourceReadConsistency
+| ReadConsistency
+| * ATOMIC
+  * ATOMIC_LEASE
+  * SEQUENTIAL
+  * LOCAL
+| The read consistency level
+
+|===
+
+== Configuring the component to connect to an Atomix cluster
+
+The nodes of the Atomix cluster you want to join can be se at Endpoint or component level (recommended), below some examples:
+
+* *Endpoint:*
++
+[source,xml]
+----
+<beans xmlns="...">
+    <camelContext xmlns="http://camel.apache.org/schema/spring">
+        <route>
+          <from uri="direct:start"/>
+          <to uri="atomix-map:myMap?nodes=node-1.atomix.cluster:8700,node-2.atomix.cluster:8700"/>
+        </route>
+    </camelContext>
+</beans>
+----
+
+* *Component:*
++
+[source,xml]
+----
+<beans xmlns="...">
+    <bean id="atomix-map" class="org.apache.camel.component.atomix.client.map.AtomixMapComponent">
+        <property name="nodes" value="nodes=node-1.atomix.cluster:8700,node-2.atomix.cluster:8700"/>
+    </bean>
+
+    <camelContext xmlns="http://camel.apache.org/schema/spring">
+        <route>
+            <from uri="direct:start"/>
+            <to uri="atomix-map:myMap"/>
+        </route>
+    </camelContext>
+</beans>
+----
+
+== Usage examples:
+
+* *PUT an element with TTL of 1 second:*
++
+[source,java]
+----
+FluentProducerTemplate.on(context)
+    .withHeader(AtomixClientConstants.RESOURCE_ACTION, AtomixMap.Action.PUT)
+    .withHeader(AtomixClientConstants.RESOURCE_KEY, key)
+    .withHeader(AtomixClientConstants.RESOURCE_TTL, "1s")
+    .withBody(val)
+    .to("direct:start")
+    .send();
+----
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-messaging-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-messaging-component.adoc
new file mode 100644
index 0000000..76cb85a
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-messaging-component.adoc
@@ -0,0 +1,117 @@
+[[atomix-messaging-component]]
+= Atomix Messaging Component
+:docTitle: Atomix Messaging
+:artifactId: camel-atomix
+:description: Access Atomix's group messaging.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-messaging.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Messaging component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/cluster-communication/direct-messaging[Group Messaging].
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-messaging:group
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix Messaging component supports 19 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *broadcastType* (common) | The broadcast type. There are 2 enums and the value can be one of: ALL, RANDOM | ALL | BroadcastType
+| *channelName* (common) | The messaging channel name |  | String
+| *configuration* (common) | The shared component configuration |  | AtomixMessagingConfiguration
+| *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. There are 2 enums and the value can be one of: DIRECT, BROADCAST | DIRECT | Action
+| *memberName* (common) | The Atomix Group member name |  | String
+| *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix Messaging endpoint is configured using URI syntax:
+
+----
+atomix-messaging:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (19 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *broadcastType* (common) | The broadcast type. There are 2 enums and the value can be one of: ALL, RANDOM | ALL | BroadcastType
+| *channelName* (common) | The messaging channel name |  | String
+| *configurationUri* (common) | The Atomix configuration uri. |  | String
+| *defaultAction* (common) | The default action. There are 2 enums and the value can be one of: DIRECT, BROADCAST | DIRECT | Action
+| *memberName* (common) | The Atomix Group member name |  | String
+| *nodes* (common) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-multimap-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-multimap-component.adoc
new file mode 100644
index 0000000..7a124b7
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-multimap-component.adoc
@@ -0,0 +1,111 @@
+[[atomix-multimap-component]]
+= Atomix MultiMap Component
+:docTitle: Atomix MultiMap
+:artifactId: camel-atomix
+:description: Access Atomix's distributed multi map.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-multimap.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Multimap component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/primitives/DistributedMultimap/[Distributed MultiMap] collection.
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-multimap:multiMapName
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix MultiMap component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (producer) | The Atomix instance to use |  | Atomix
+| *configuration* (producer) | The shared component configuration |  | AtomixMultiMapConfiguration
+| *configurationUri* (producer) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (producer) | The default action. There are 8 enums and the value can be one of: PUT, GET, CLEAR, SIZE, CONTAINS_KEY, IS_EMPTY, REMOVE, REMOVE_VALUE | PUT | Action
+| *key* (producer) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
+| *lazyStartProducer* (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 creating and [...]
+| *nodes* (producer) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (producer) | The header that wil carry the result. |  | String
+| *transportClassName* (producer) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (producer) | The resource ttl. |  | long
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix MultiMap endpoint is configured using URI syntax:
+
+----
+atomix-multimap:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (15 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (producer) | The Atomix instance to use |  | Atomix
+| *configurationUri* (producer) | The Atomix configuration uri. |  | String
+| *defaultAction* (producer) | The default action. There are 8 enums and the value can be one of: PUT, GET, CLEAR, SIZE, CONTAINS_KEY, IS_EMPTY, REMOVE, REMOVE_VALUE | PUT | Action
+| *key* (producer) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
+| *lazyStartProducer* (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 creating and [...]
+| *nodes* (producer) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (producer) | The header that wil carry the result. |  | String
+| *transportClassName* (producer) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (producer) | The resource ttl. |  | long
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-queue-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-queue-component.adoc
new file mode 100644
index 0000000..6ceebf7
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-queue-component.adoc
@@ -0,0 +1,111 @@
+[[atomix-queue-component]]
+= Atomix Queue Component
+:docTitle: Atomix Queue
+:artifactId: camel-atomix
+:description: Access Atomix's distributed queue.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-queue.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Queue component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/primitives/DistributedQueue/[Distributed Queue] collection.
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-queue:queueName
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix Queue component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configuration* (common) | The shared component configuration |  | AtomixQueueConfiguration
+| *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. There are 9 enums and the value can be one of: ADD, OFFER, PEEK, POLL, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
+| *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix Queue endpoint is configured using URI syntax:
+
+----
+atomix-queue:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (16 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configurationUri* (common) | The Atomix configuration uri. |  | String
+| *defaultAction* (common) | The default action. There are 9 enums and the value can be one of: ADD, OFFER, PEEK, POLL, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
+| *nodes* (common) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-set-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-set-component.adoc
new file mode 100644
index 0000000..fb31823
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-set-component.adoc
@@ -0,0 +1,113 @@
+[[atomix-set-component]]
+= Atomix Set Component
+:docTitle: Atomix Set
+:artifactId: camel-atomix
+:description: Access Atomix's distributed set.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-set.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Set component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/primitives/DistributedSet/[Distributed Set] collection.
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-set:setName
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix Set component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configuration* (common) | The shared component configuration |  | AtomixSetConfiguration
+| *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. There are 6 enums and the value can be one of: ADD, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
+| *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix Set endpoint is configured using URI syntax:
+
+----
+atomix-set:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (17 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configurationUri* (common) | The Atomix configuration uri. |  | String
+| *defaultAction* (common) | The default action. There are 6 enums and the value can be one of: ADD, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
+| *nodes* (common) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-value-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-value-component.adoc
new file mode 100644
index 0000000..fa18153
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/atomix-value-component.adoc
@@ -0,0 +1,113 @@
+[[atomix-value-component]]
+= Atomix Value Component
+:docTitle: Atomix Value
+:artifactId: camel-atomix
+:description: Access Atomix's distributed value.
+:since: 2.20
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/atomix-value.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The camel Atomix-Value component allows you to work with http://atomix.io[Atomix's] https://atomix.io/docs/latest/user-manual/primitives/DistributedValue/[Distributed Value].
+
+Maven users will need to add the following dependency to their pom.xml
+for this component:
+
+[source,xml]
+----
+    <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-atomix</artifactId>
+        <version>${camel-version}</version>
+    </dependency>
+----
+
+== URI format
+
+----
+atomix-value:valueName
+----
+
+// component options: START
+== Component Options
+
+
+The Atomix Value component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configuration* (common) | The shared component configuration |  | AtomixValueConfiguration
+| *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. There are 4 enums and the value can be one of: SET, GET, GET_AND_SET, COMPARE_AND_SET | SET | Action
+| *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Atomix Value endpoint is configured using URI syntax:
+
+----
+atomix-value:resourceName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *resourceName* | *Required* The distributed resource name |  | String
+|===
+
+
+=== Query Parameters (17 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *configurationUri* (common) | The Atomix configuration uri. |  | String
+| *defaultAction* (common) | The default action. There are 4 enums and the value can be one of: SET, GET, GET_AND_SET, COMPARE_AND_SET | SET | Action
+| *nodes* (common) | The address of the nodes composing the cluster. |  | String
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. There are 4 enums and the value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
+|===
+// endpoint options: END
+
+
+include::{page-component-version}@camel-spring-boot::page$atomix-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc
new file mode 100644
index 0000000..febe279
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc
@@ -0,0 +1,285 @@
+[[avro-component]]
+= Avro RPC Component
+:docTitle: Avro RPC
+:artifactId: camel-avro-rpc
+:description: Produce or consume Apache Avro RPC services.
+:since: 2.10
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/avro.adoc[opts=optional]
+
+*Since Camel {since}*
+
+*{component-header}*
+
+This component provides a support for Apache Avro's rpc, by
+providing producers and consumers endpoint for using avro over netty or
+http. Before Camel 3.2 this functionality was a part of camel-avro component.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-avro-rpc</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+// component options: START
+== Component Options
+
+
+The Avro RPC component supports 10 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *protocol* (common) | Avro protocol to use |  | Protocol
+| *protocolClassName* (common) | Avro protocol to use defined by the FQN class name |  | String
+| *protocolLocation* (common) | Avro protocol location |  | String
+| *reflectionProtocol* (common) | 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
+| *singleParameter* (common) | If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message | false | boolean
+| *uriAuthority* (common) | Authority to use (username and password) |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *configuration* (advanced) | To use a shared AvroConfiguration to configure options once |  | AvroConfiguration
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The Avro RPC endpoint is configured using URI syntax:
+
+----
+avro:transport:host:port/messageName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (4 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *transport* | *Required* Transport to use, can be either http or netty. There are 2 enums and the value can be one of: http, netty |  | AvroTransport
+| *port* | *Required* Port number to use |  | int
+| *host* | *Required* Hostname to use |  | String
+| *messageName* | The name of the message to send. |  | String
+|===
+
+
+=== Query Parameters (10 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *protocol* (common) | Avro protocol to use |  | Protocol
+| *protocolClassName* (common) | Avro protocol to use defined by the FQN class name |  | String
+| *protocolLocation* (common) | Avro protocol location |  | String
+| *reflectionProtocol* (common) | 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
+| *singleParameter* (common) | If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message | false | boolean
+| *uriAuthority* (common) | Authority to use (username and password) |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *lazyStartProducer* (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 creating and [...]
+|===
+// endpoint options: END
+
+== Apache Avro Overview
+
+Avro allows you to define message types and a protocol using a json like
+format and then generate java code for the specified types and messages.
+An example of how a schema looks like is below.
+
+[source,json]
+------------------------------------------------------------------------------------------
+{"namespace": "org.apache.camel.avro.generated",
+ "protocol": "KeyValueProtocol",
+
+ "types": [
+     {"name": "Key", "type": "record",
+      "fields": [
+          {"name": "key",   "type": "string"}
+      ]
+     },
+     {"name": "Value", "type": "record",
+      "fields": [
+          {"name": "value",   "type": "string"}
+      ]
+     }
+ ],
+
+ "messages": {
+     "put": {
+         "request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
+         "response": "null"
+     },
+     "get": {
+         "request": [{"name": "key", "type": "Key"}],
+         "response": "Value"
+     }
+ }
+}
+------------------------------------------------------------------------------------------
+
+You can easily generate classes from a schema, using maven, ant etc.
+More details can be found at the
+http://avro.apache.org/docs/current/[Apache Avro documentation].
+
+However, it doesn't enforce a schema first approach and you can create
+schema for your existing classes. *Since 2.12* you can use existing
+protocol interfaces to make RCP calls. You should use interface for the
+protocol itself and POJO beans or primitive/String classes for parameter
+and result types. Here is an example of the class that corresponds to
+schema above:
+
+[source,java]
+--------------------------------------------------------------
+package org.apache.camel.avro.reflection;
+
+public interface KeyValueProtocol {
+    void put(String key, Value value);
+    Value get(String key);
+}
+
+class Value {
+    private String value;
+    public String getValue() { return value; }
+    public void setValue(String value) { this.value = value; }
+}
+--------------------------------------------------------------
+
+_Note: Existing classes can be used only for RPC (see below), not in
+data format._
+
+== Using Avro RPC in Camel
+
+As mentioned above Avro also provides RPC support over multiple
+transports such as http and netty. Camel provides consumers and
+producers for these two transports.
+
+----------------------------------------
+avro:[transport]:[host]:[port][?options]
+----------------------------------------
+
+The supported transport values are currently http or netty.
+
+*Since 2.12* you can specify message name right in the URI:
+
+------------------------------------------------------
+avro:[transport]:[host]:[port][/messageName][?options]
+------------------------------------------------------
+
+For consumers this allows you to have multiple routes attached to the
+same socket. Dispatching to correct route will be done by the avro
+component automatically. Route with no messageName specified (if any)
+will be used as default.
+
+When using camel producers for avro ipc, the "in" message body needs to
+contain the parameters of the operation specified in the avro protocol.
+The response will be added in the body of the "out" message.
+
+In a similar manner when using camel avro consumers for avro ipc, the
+requests parameters will be placed inside the "in" message body of the
+created exchange and once the exchange is processed the body of the
+"out" message will be send as a response.
+
+*Note:* By default consumer parameters are wrapped into array. If you've
+got only one parameter, *since 2.12* you can use `singleParameter` URI
+option to receive it direcly in the "in" message body without array
+wrapping.
+
+
+== Avro RPC Headers
+
+[width="100%",cols="20%,80%",options="header",]
+|=======================================================================
+|Name |Description
+
+|`CamelAvroMessageName` |The name of the message to send. In consumer overrides message name from
+URI (if any)
+|=======================================================================
+
+== Examples
+
+An example of using camel avro producers via http:
+
+[source,xml]
+---------------------------------------------------------------------------------------------------------------------------
+        <route>
+            <from uri="direct:start"/>
+            <to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <to uri="log:avro"/>
+        </route>
+---------------------------------------------------------------------------------------------------------------------------
+
+In the example above you need to fill `CamelAvroMessageName` header.
+*Since 2.12* you can use following syntax to call constant messages:
+
+[source,xml]
+-------------------------------------------------------------------------------------------------------------------------------
+        <route>
+            <from uri="direct:start"/>
+            <to uri="avro:http:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <to uri="log:avro"/>
+        </route>
+-------------------------------------------------------------------------------------------------------------------------------
+
+An example of consuming messages using camel avro consumers via netty:
+
+[source,xml]
+------------------------------------------------------------------------------------------------------------------------------
+        <route>
+            <from uri="avro:netty:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <choice>
+                <when>
+                    <el>${in.headers.CamelAvroMessageName == 'put'}</el>
+                    <process ref="putProcessor"/>
+                </when>
+                <when>
+                    <el>${in.headers.CamelAvroMessageName == 'get'}</el>
+                    <process ref="getProcessor"/>
+                </when>
+            </choice>
+        </route>
+------------------------------------------------------------------------------------------------------------------------------
+
+*Since 2.12* you can set up two distinct routes to perform the same
+task:
+
+[source,xml]
+-------------------------------------------------------------------------------------------------------------------------------------------------------
+        <route>
+            <from uri="avro:netty:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol">
+            <process ref="putProcessor"/>
+        </route>
+        <route>
+            <from uri="avro:netty:localhost:{{avroport}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol&singleParameter=true"/>
+            <process ref="getProcessor"/>
+        </route>
+-------------------------------------------------------------------------------------------------------------------------------------------------------
+
+In the example above, get takes only one parameter, so `singleParameter`
+is used and `getProcessor` will receive Value class directly in body,
+while `putProcessor` will receive an array of size 2 with String key and
+Value value filled as array contents.
+
+
+== Avro via HTTP SPI
+
+The Avro RPC component offers the `org.apache.camel.component.avro.spi.AvroRpcHttpServerFactory` service provider interface (SPI) so that various platforms can provide their own implementation based on their native HTTP server.
+
+The default implementation available in `org.apache.camel:camel-avro-jetty` is based on `org.apache.avro:avro-ipc-jetty`.
+
+
+include::{page-component-version}@camel-spring-boot::page$avro-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc
new file mode 100644
index 0000000..3d5e0b0
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-secrets-manager-component.adoc
@@ -0,0 +1,142 @@
+[[aws-secrets-manager-component]]
+= AWS Secrets Manager Component
+:docTitle: AWS Secrets Manager
+:artifactId: camel-aws-secrets-manager
+:description: Manage AWS Secrets Manager services using AWS SDK version 2.x.
+:since: 3.9
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-secrets-manager.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS Secrets Manager component supports list secret
+https://aws.amazon.com/secrets-manager/[AWS Secrets Manager] service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Secrets Manager. More information is available at
+https://aws.amazon.com/secrets-manager/[AWS Secrets Manager].
+
+
+== URI Format
+
+-------------------------
+aws-secrets-manager://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Secrets Manager component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
+| *configuration* (producer) | Component configuration |  | SecretsManagerConfiguration
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 8 enums and the value can be one of: listSecrets, createSecret, getSecret, describeSecret, deleteSecret, rotateSecret, updateSecret, replicateSecretToRegions |  | SecretsManagerOperations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Secrets Manager client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Secrets Manager client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which Secrets Manager 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
+| *secretsManagerClient* (producer) | *Autowired* To use a existing configured AWS Secrets Manager as client |  | SecretsManagerClient
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Secrets Manager endpoint is configured using URI syntax:
+
+----
+aws-secrets-manager://label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (15 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *binaryPayload* (producer) | Set if the secret is binary or not | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 8 enums and the value can be one of: listSecrets, createSecret, getSecret, describeSecret, deleteSecret, rotateSecret, updateSecret, replicateSecretToRegions |  | SecretsManagerOperations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the Secrets Manager client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Secrets Manager client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Secrets Manager client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which Secrets Manager 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
+| *secretsManagerClient* (producer) | *Autowired* To use a existing configured AWS Secrets Manager as client |  | SecretsManagerClient
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+=== Secrets Manager Producer operations
+
+Camel-AWS-Secrets-manager component provides the following operation on the producer side:
+
+- listSecrets
+- createSecret
+- deleteSecret
+- describeSecret
+- rotateSecret
+- getSecret
+- updateSecret
+- replicateSecretToRegions
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws-secrets-manager</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws-secrets-manager-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-xray.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-xray.adoc
index 2e71407..b8e1c10 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-xray.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws-xray.adoc
@@ -13,42 +13,6 @@ The camel-aws-xray component is used for tracing and timing incoming and outgoin
 
 Events (subsegments) are captured for incoming and outgoing messages being sent to/from Camel.
 
-== Dependency
-
-In order to include AWS XRay support into Camel, the archive containing the Camel related AWS XRay related classes need to be added to the project. In addition to that, AWS XRay libraries also need to be available.
-
-To include both, AWS XRay and Camel, dependencies use the following Maven imports:
-
-[source,xml]
----------------------------------------------------------------------------------------------------------
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>com.amazonaws</groupId>
-        <artifactId>aws-xray-recorder-sdk-bom</artifactId>
-        <version>2.4.0</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-aws-xray</artifactId>
-      </dependency>
-
-      <dependency>
-        <groupId>com.amazonaws</groupId>
-        <artifactId>aws-xray-recorder-sdk-core</artifactId>
-      </dependency>
-      <dependency>
-        <groupId>com.amazonaws</groupId>
-        <artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
-      </dependency>
-  <dependencies>
----------------------------------------------------------------------------------------------------------
 
 == Configuration
 
@@ -90,7 +54,7 @@ AWS XRay tracer bean. Camel will automatically discover and use it.
 [source,xml]
 ---------------------------------------------------------------------------------------------------------
   <bean id="tracingStrategy" class="..."/>
-  <bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" />
+  <bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer">
     <property name="tracer" ref="tracingStrategy"/>
   </bean>
 ---------------------------------------------------------------------------------------------------------
@@ -119,3 +83,40 @@ Note that the AWS XRay `Entity` (i.e., `Segment` and `Subsegment`) are not seria
 == Example
 
 You can find an example demonstrating the way to configure AWS XRay tracing within the tests accompanying this project.
+
+== Dependency
+
+In order to include AWS XRay support into Camel, the archive containing the Camel related AWS XRay related classes need to be added to the project. In addition to that, AWS XRay libraries also need to be available.
+
+To include both, AWS XRay and Camel, dependencies use the following Maven imports:
+
+[source,xml]
+---------------------------------------------------------------------------------------------------------
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>com.amazonaws</groupId>
+        <artifactId>aws-xray-recorder-sdk-bom</artifactId>
+        <version>2.4.0</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-aws-xray</artifactId>
+      </dependency>
+
+      <dependency>
+        <groupId>com.amazonaws</groupId>
+        <artifactId>aws-xray-recorder-sdk-core</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>com.amazonaws</groupId>
+        <artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId>
+      </dependency>
+  </dependencies>
+---------------------------------------------------------------------------------------------------------
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-athena-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-athena-component.adoc
new file mode 100644
index 0000000..13d43e7
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-athena-component.adoc
@@ -0,0 +1,529 @@
+[[aws2-athena-component]]
+= AWS Athena Component
+:docTitle: AWS Athena
+:artifactId: camel-aws2-athena
+:description: Access AWS Athena service using AWS SDK version 2.x.
+:since: 3.4
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-athena.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Athena component supports running queries with https://aws.amazon.com/athena/[AWS Athena] and working with results.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Athena.  More information is available at
+https://aws.amazon.com/athena/[AWS Athena].
+
+== URI Format
+
+------------------------------
+aws2-athena://label[?options]
+------------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Athena component supports 30 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *accessKey* (producer) | Amazon AWS Access Key. |  | String
+| *amazonAthenaClient* (producer) | *Autowired* The AmazonAthena instance to use as the client. |  | AthenaClient
+| *configuration* (producer) | The component configuration. |  | Athena2Configuration
+| *database* (producer) | The Athena database to use. |  | String
+| *delay* (producer) | Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 2000 | long
+| *encryptionOption* (producer) | The encryption type to use when storing query results in S3. One of SSE_S3, SSE_KMS, or CSE_KMS. There are 4 enums and the value can be one of: SSE_S3, SSE_KMS, CSE_KMS, null |  | EncryptionOption
+| *includeTrace* (producer) | Include useful trace information at the beginning of queries as an SQL comment (prefixed with --). | false | boolean
+| *initialDelay* (producer) | Milliseconds before the first poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 1000 | long
+| *kmsKey* (producer) | For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *maxAttempts* (producer) | Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 1 | int
+| *maxResults* (producer) | Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set, will use the Athena API default for the given operation. |  | Integer
+| *nextToken* (producer) | Pagination token to use in the case where the response from the previous request was truncated. |  | String
+| *operation* (producer) | The Athena API function to call. There are 4 enums and the value can be one of: getQueryExecution, getQueryResults, listQueryExecutions, startQueryExecution | startQueryExecution | Athena2Operations
+| *outputLocation* (producer) | The location in Amazon S3 where query results are stored, such as s3://path/to/query/bucket/. Ensure this value ends with a forward slash ('/'). |  | String
+| *outputType* (producer) | How query results should be returned. One of StreamList (default - return a GetQueryResultsIterable that can page through all results), SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a header than can be used for manual pagination of results), S3Pointer (return an S3 path pointing to the results). There are 3 enums and the value can be one of: StreamList, SelectList, S3Pointer | StreamList | Athena2OutputType
+| *proxyHost* (producer) | To define a proxy host when instantiating the Athena client. |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Athena client. |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Athena client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queryExecutionId* (producer) | The unique ID identifying the query execution. |  | String
+| *queryString* (producer) | The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a header using Athena2Constants.QUERY_STRING to avoid having to deal with URL encoding issues. |  | String
+| *region* (producer) | The region in which Athena 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
+| *resetWaitTimeoutOnRetry* (producer) | Reset the waitTimeout countdown in the event of a query retry. If set to true, potential max time spent waiting for queries is equal to waitTimeout x maxAttempts. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | true | boolean
+| *retry* (producer) | Optional comma separated list of error types to retry the query for. Use 'retryable' to retry all retryable failure conditions (e.g. generic errors and resources exhausted), 'generic' to retry 'GENERIC_INTERNAL_ERROR' failures, 'exhausted' to retry queries that have exhausted resource limits, 'always' to always retry regardless of failure condition, or 'never' or null to never retry (default). See the section 'Waiting for Query Completion and Retrying Failed Querie [...]
+| *secretKey* (producer) | Amazon AWS Secret Key. |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Athena client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in | false | boolean
+| *waitTimeout* (producer) | Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 0 | long
+| *workGroup* (producer) | The workgroup to use for running the query. |  | String
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *clientRequestToken* (advanced) | A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this. |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Athena endpoint is configured using URI syntax:
+
+----
+aws2-athena:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (28 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *accessKey* (producer) | Amazon AWS Access Key. |  | String
+| *amazonAthenaClient* (producer) | *Autowired* The AmazonAthena instance to use as the client. |  | AthenaClient
+| *database* (producer) | The Athena database to use. |  | String
+| *delay* (producer) | Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 2000 | long
+| *encryptionOption* (producer) | The encryption type to use when storing query results in S3. One of SSE_S3, SSE_KMS, or CSE_KMS. There are 4 enums and the value can be one of: SSE_S3, SSE_KMS, CSE_KMS, null |  | EncryptionOption
+| *includeTrace* (producer) | Include useful trace information at the beginning of queries as an SQL comment (prefixed with --). | false | boolean
+| *initialDelay* (producer) | Milliseconds before the first poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 1000 | long
+| *kmsKey* (producer) | For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *maxAttempts* (producer) | Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 1 | int
+| *maxResults* (producer) | Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set, will use the Athena API default for the given operation. |  | Integer
+| *nextToken* (producer) | Pagination token to use in the case where the response from the previous request was truncated. |  | String
+| *operation* (producer) | The Athena API function to call. There are 4 enums and the value can be one of: getQueryExecution, getQueryResults, listQueryExecutions, startQueryExecution | startQueryExecution | Athena2Operations
+| *outputLocation* (producer) | The location in Amazon S3 where query results are stored, such as s3://path/to/query/bucket/. Ensure this value ends with a forward slash ('/'). |  | String
+| *outputType* (producer) | How query results should be returned. One of StreamList (default - return a GetQueryResultsIterable that can page through all results), SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a header than can be used for manual pagination of results), S3Pointer (return an S3 path pointing to the results). There are 3 enums and the value can be one of: StreamList, SelectList, S3Pointer | StreamList | Athena2OutputType
+| *proxyHost* (producer) | To define a proxy host when instantiating the Athena client. |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Athena client. |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Athena client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queryExecutionId* (producer) | The unique ID identifying the query execution. |  | String
+| *queryString* (producer) | The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a header using Athena2Constants.QUERY_STRING to avoid having to deal with URL encoding issues. |  | String
+| *region* (producer) | The region in which Athena 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
+| *resetWaitTimeoutOnRetry* (producer) | Reset the waitTimeout countdown in the event of a query retry. If set to true, potential max time spent waiting for queries is equal to waitTimeout x maxAttempts. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | true | boolean
+| *retry* (producer) | Optional comma separated list of error types to retry the query for. Use 'retryable' to retry all retryable failure conditions (e.g. generic errors and resources exhausted), 'generic' to retry 'GENERIC_INTERNAL_ERROR' failures, 'exhausted' to retry queries that have exhausted resource limits, 'always' to always retry regardless of failure condition, or 'never' or null to never retry (default). See the section 'Waiting for Query Completion and Retrying Failed Querie [...]
+| *secretKey* (producer) | Amazon AWS Secret Key. |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Athena client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in | false | boolean
+| *waitTimeout* (producer) | Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | 0 | long
+| *workGroup* (producer) | The workgroup to use for running the query. |  | String
+| *clientRequestToken* (advanced) | A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this. |  | String
+|===
+// endpoint options: END
+
+Required Athena component options
+
+You have to provide the amazonAthenaClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/athena/[AWS Athena] service.
+
+== Usage
+
+For example, to run a simple query, wait up to 60 seconds for completion, and log the results:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=StreamList")
+    .split(body()).streaming()
+    .to("log:out")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+Similarly, running the query and returning a path to the results in S3:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=S3Pointer")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+=== Message headers evaluated by the Athena producer
+
+Message headers listed here override the corresponding
+query parameters listed in "Query Parameters".
+
+[width="100%",cols="5%,5%,10%,75%,5%",options="header",]
+|=======================================================================
+|Operation |Header |Type |Description |Required
+
+|All |`CamelAwsAthenaOperation` |`String` |The operation to perform. Permitted values are getQueryExecution, getQueryResults, listQueryExecutions, startQueryExecution. Default is startQueryExecution. | No
+
+|startQueryExecution |`CamelAwsAthenaDatabase` |`String` |The Athena database to use. | No
+
+|getQueryExecution, getQueryResults |`CamelAwsAthenaQueryExecutionId` |`String` |The unique ID identifying the query execution. | No
+
+|listQueryExecutions, startQueryExecution |`CamelAwsAthenaWorkGroup` |`String` |The workgroup to use for running the query. | No
+
+|getQueryResults, listQueryExecutions |`CamelAwsAthenaNextToken` |`String` |Pagination token to use in the case where the response from the previous request was truncated. | No
+
+|getQueryResults, listQueryExecutions |`CamelAwsAthenaMaxResults` |`Integer` |Max number of results to return for the given operation (if supported by the Athena API endpoint).
+If not set, will use the Athena API default for the given operation. | No
+
+|startQueryExecution |`CamelAwsAthenaIncludeTrace` |`boolean` |Include useful trace information at the beginning of queries as an SQL comment (prefixed with "--"). | No
+
+|startQueryExecution |`CamelAwsAthenaOutputLocation` |`String` |The location in Amazon S3 where query results are stored, such as s3://path/to/query/bucket/.
+Ensure this value ends with a forward slash ('/'). | No
+
+|getQueryResults |`CamelAwsAthenaOutputType` |`Athena2OutputType` |How query results should be returned.  One of
+StreamList (default - return a GetQueryResultsIterable that can page through all results),
+SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a header than can be used for manual pagination of results),
+S3Pointer (return an S3 path pointing to the results). | No
+
+|startQueryExecution |`CamelAwsAthenaClientRequestToken` |`String` |A unique string to ensure issues queries are idempotent.  It is unlikely you will need to set this. | No
+
+|startQueryExecution |`CamelAwsAthenaQueryString` |`String` |The SQL query to run.  Except for simple queries, prefer setting this as the `body` of the
+Exchange or as this header to avoid having to deal with URL encoding issues. | No
+
+|startQueryExecution |`CamelAwsAthenaEncryptionOption` |`String` |The encryption type to use when storing query results in S3.  One of SSE_S3, SSE_KMS, or CSE_KMS. | No
+
+|startQueryExecution |`CamelAwsAthenaKmsKey` |`String` |For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID. | No
+
+|startQueryExecution |`CamelAwsAthenaWaitTimeout` |`long` |Optional max wait time in millis to wait for a successful query completion.
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|startQueryExecution |`CamelAwsAthenaInitialDelay` |`long` |Milliseconds before the first poll for query execution status.
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|startQueryExecution |`CamelAwsAthenaDelay` |`long` |Milliseconds before the next poll for query execution status.
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|startQueryExecution |`CamelAwsAthenaMaxAttempts` |`int` |Maximum number of times to attempt a query.  Set to 1 to disable retries.
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|startQueryExecution |`CamelAwsAthenaRetry` |`String` |Optional comma separated list of error types to retry the query for.  Use
+'retryable' to retry all retryable failure conditions (e.g. generic errors and resources exhausted),
+'generic' to retry 'GENERIC_INTERNAL_ERROR' failures,
+'exhausted' to retry queries that have exhausted resource limits,
+'always' to always retry regardless of failure condition, or
+'never' or null to never retry (default).
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|startQueryExecution |`CamelAwsAthenaResetWaitTimeoutOnRetry` |`boolean` |Reset the waitTimeout countdown in the event of a query retry.
+If set to true, potential max time spent waiting for queries is equal to waitTimeout x maxAttempts.
+See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more. | No
+
+|=======================================================================
+
+=== Message headers set by the Athena producer
+
+[width="100%",cols="5%,5%,10%,80%",options="header",]
+|=======================================================================
+|Operation |Header |Type |Description
+
+|getQueryExecution, getQueryResults, startQueryExecution |`CamelAwsAthenaQueryExecutionId` |`String` |The unique ID identifying the query execution.
+
+|getQueryExecution, getQueryResults, startQueryExecution |`CamelAwsAthenaQueryExecutionState` |`software.amazon.awssdk.services.athena.model.QueryExecutionState` |The state of the query execution.  One of `QUEUED`, `RUNNING`, `SUCCEEDED`, `FAILED`, `CANCELLED`.
+
+|getQueryExecution, getQueryResults, startQueryExecution |`CamelAwsAthenaOutputLocation` |`String` |The location in Amazon S3 where query results are stored, such as s3://path/to/query/bucket/.
+
+|getQueryExecution, getQueryResults, startQueryExecution |`CamelAwsAthenaQueryExecutionId` |`String` |The unique ID identifying the query execution.
+
+|getQueryResults, listQueryExecutions |`CamelAwsAthenaNextToken` |`String` |Pagination token to use in the case where the response from the previous request was truncated.
+
+|startQueryExecution |`CamelAwsAthenaStartQueryExecutionAttempts` |`int` |Total number of attempts made to run the query.  Will be greater than 1 if the query is retried.
+
+|startQueryExecution |`CamelAwsAthenaStartQueryExecutionElapsedMillis` |`long` |Total time in millis taken in startQueryExecution (mostly relevant when waiting for query completion within startQueryExecution).
+
+|=======================================================================
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Athena Producer operations
+
+The Camel-AWS Athena component provides the following operation on the producer side:
+
+ - getQueryExecution
+ - getQueryResults
+ - listQueryExecutions
+ - startQueryExecution
+
+=== Advanced AmazonAthena configuration
+
+If your Camel Application is running behind a firewall or if you need to
+have more control over the `AthenaClient` instance configuration, you can
+create your own instance and refer to it in your Camel aws2-athena component configuration:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("aws2-athena://MyQuery?amazonAthenaClient=#client&...")
+.to("mock:result");
+--------------------------------------------------------------------------------
+
+=== Overriding query parameters with message headers
+
+Message headers listed in "Message headers evaluated by the Athena producer" override the corresponding
+query parameters listed in "Query Parameters".
+
+For example:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+     .setHeader(Athena2Constants.OUTPUT_LOCATION, constant("s3://other/location/"))
+     .to("aws2-athena:label?outputLocation=s3://foo/bar/")
+     .to("mock:result");
+--------------------------------------------------------------------------------
+
+Will cause the output location to be `s3://other/location/`.
+
+=== Athena Producer Operation examples
+
+- getQueryExecution: this operation returns information about a query given its query execution ID
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .to("aws2-athena://label?operation=getQueryExecution&queryExecutionId=11111111-1111-1111-1111-111111111111")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will yield an
+https://docs.aws.amazon.com/athena/latest/APIReference/API_QueryExecution.html[Athena QueryExecution] in the body.
+
+The getQueryExecution operation also supports retreiving the query execution ID from a header
+(`CamelAwsAthenaQueryExecutionId`), and since startQueryExecution sets the same header upon starting a query,
+these operations can be used together:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryExecution")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will yield an Athena QueryExecution in the body for the query that was just started.
+
+- getQueryResults: this operation returns the results of a query that has succeeded.  The results are returned in the
+body in one of three formats.
+
+`StreamList` - the default - returns a
+https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/athena/paginators/GetQueryResultsIterable.html[GetQueryResultsIterable]
+in the body that can page through all results:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=StreamList")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The output of StreamList can be processed in various ways:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant(
+        "SELECT * FROM ("
+            + "    VALUES"
+            + "        (1, 'a'),"
+            + "        (2, 'b')"
+            + ") AS t (id, name)"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=StreamList")
+    .split(body()).streaming()
+    .process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) {
+        GetQueryResultsResponse page = exchange
+                                        .getMessage()
+                                        .getBody(GetQueryResultsResponse.class);
+        for (Row row : page.resultSet().rows()) {
+          String line = row.data()
+                          .stream()
+                          .map(Datum::varCharValue)
+                          .collect(Collectors.joining(","));
+          System.out.println(line);
+        }
+      }
+    })
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will print the results of the query as CSV to the console.
+
+`SelectList` - returns a
+https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/athena/model/GetQueryResultsResponse.html[GetQueryResponse]
+in the body containing at most 1,000 rows, plus the NextToken value as a header (`CamelAwsAthenaNextToken`),
+which can be used for manual pagination of results:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=SelectList")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will return a
+https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/athena/model/GetQueryResultsResponse.html[GetQueryResponse]
+in the body plus the NextToken value as a header (`CamelAwsAthenaNextToken`), which can be used to manually page
+through the results 1,000 rows at a time.
+
+`S3Pointer` - return an S3 path (e.g. `s3://bucket/path/`) pointing to the results:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=S3Pointer")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will return an
+S3 path (e.g. `s3://bucket/path/`) in the body pointing to the results.  The path will also be set in a header
+(`CamelAwsAthenaOutputLocation`).
+
+- listQueryExecutions: this operation returns a list of query execution IDs
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .to("aws2-athena://label?operation=listQueryExecutions")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will return a list of query executions in the body, plus the NextToken value as a
+header (`CamelAwsAthenaNextToken`) than can be used for manual pagination of results.
+
+- startQueryExecution: this operation starts the execution of a query.  It supports waiting for the query to
+complete before proceeding, and retrying the query based on a set of configurable failure conditions:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&outputLocation=s3://bucket/path/")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will start the query `SELECT 1` and configure the
+results to be saved to `s3://bucket/path/`, but will not wait for the query
+to complete.
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&outputLocation=s3://bucket/path/")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will start a query and wait up to 60 seconds for it to
+reach a status that indicates it is complete (one of SUCCEEDED, FAILED, CANCELLED,
+or UNKNOWN_TO_SDK_VERSION).  Upon failure, the query would not be retried.
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&waitTimeout=60000&initialDelay=10000&delay=1000&maxAttempts=3&retry=retryable&outputLocation=s3://bucket/path/")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will start a query and wait up to 60 seconds for it to reach
+a status that indicates it is complete (one of SUCCEEDED, FAILED, CANCELLED,
+or UNKNOWN_TO_SDK_VERSION).  Upon failure, the query would be automatically
+retried up to 2 more times if the failure state indicates the query may
+succeed upon retry (Athena queries that fail with states such as `GENERIC_INTERNAL_ERROR`
+or "resource limit exhaustion" will sometimes succeed if retried).  While waiting
+for the query to complete, the query status would first be checked after an
+initial delay of 10 seconds, and subsequently every 1 second until the query completes.
+
+=== Putting it all together
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?waitTimeout=60000&&maxAttempts=3&retry=retryable&outputLocation=s3://bucket/path/")
+    .to("aws2-athena://label?operation=getQueryResults&outputType=StreamList")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+The preceding example will start the query and wait up to 60 seconds for it to
+complete.  Upon completion, getQueryResults put the results of the query into
+the body of the message for further processing.
+
+For the sake of completeness, a similar outcome could be achieved with the following:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setBody(constant("SELECT 1"))
+    .to("aws2-athena://label?operation=startQueryExecution&outputLocation=s3://bucket/path/")
+    .loopDoWhile(simple("${header." + Athena2Constants.QUERY_EXECUTION_STATE + "} != 'SUCCEEDED'"))
+      .delay(1_000)
+      .to("aws2-athena://label?operation=getQueryExecution")
+    .end()
+    .to("aws2-athena://label?operation=getQueryResults&outputType=StreamList")
+    .to("mock:result");
+--------------------------------------------------------------------------------
+
+Caution: the preceding example would block indefinitely, however, if the query did not complete with a
+status of SUCCEEDED.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-athena</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-athena-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-cw-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-cw-component.adoc
new file mode 100644
index 0000000..8a2836f
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-cw-component.adoc
@@ -0,0 +1,192 @@
+[[aws2-cw-component]]
+= AWS CloudWatch Component
+:docTitle: AWS CloudWatch
+:artifactId: camel-aws2-cw
+:description: Sending metrics to AWS CloudWatch using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-cw.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Cloudwatch component allows messages to be sent to an
+https://aws.amazon.com/cloudwatch/[Amazon CloudWatch] metrics. The
+implementation of the Amazon API is provided by
+the https://aws.amazon.com/sdkforjava/[AWS SDK].
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon CloudWatch. More information is available at
+https://aws.amazon.com/cloudwatch/[Amazon CloudWatch].
+
+== URI Format
+
+----------------------------
+aws2-cw://namespace[?options]
+----------------------------
+
+The metrics will be created if they don't already exists. +
+ You can append query options to the URI in the following format,
+`?options=value&option2=value&...`
+
+
+// component options: START
+== Component Options
+
+
+The AWS CloudWatch component supports 18 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonCwClient* (producer) | *Autowired* To use the AmazonCloudWatch as the client |  | CloudWatchClient
+| *configuration* (producer) | The component configuration |  | Cw2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *name* (producer) | The metric name |  | String
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the CW client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the CW client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the CW client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which CW 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
+| *timestamp* (producer) | The metric timestamp |  | Instant
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *unit* (producer) | The metric unit |  | String
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *value* (producer) | The metric value |  | Double
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS CloudWatch endpoint is configured using URI syntax:
+
+----
+aws2-cw:namespace
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *namespace* | *Required* The metric namespace |  | String
+|===
+
+
+=== Query Parameters (16 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonCwClient* (producer) | *Autowired* To use the AmazonCloudWatch as the client |  | CloudWatchClient
+| *lazyStartProducer* (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 creating and [...]
+| *name* (producer) | The metric name |  | String
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the CW client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the CW client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the CW client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which CW 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
+| *timestamp* (producer) | The metric timestamp |  | Instant
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *unit* (producer) | The metric unit |  | String
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *value* (producer) | The metric value |  | Double
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+Required CW component options
+
+You have to provide the amazonCwClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/cloudwatch/[Amazon's CloudWatch].
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the CW producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsCwMetricName` |`String` |The Amazon CW metric name.
+
+|`CamelAwsCwMetricValue` |`Double` |The Amazon CW metric value.
+
+|`CamelAwsCwMetricUnit` |`String` |The Amazon CW metric unit.
+
+|`CamelAwsCwMetricNamespace` |`String` |The Amazon CW metric namespace.
+
+|`CamelAwsCwMetricTimestamp` |`Date` |The Amazon CW metric timestamp.
+
+|`CamelAwsCwMetricDimensionName` |`String` |The Amazon CW metric dimension name.
+
+|`CamelAwsCwMetricDimensionValue` |`String` |The Amazon CW metric dimension value.
+
+|`CamelAwsCwMetricDimensions` |`Map<String, String>` |A map of dimension names and dimension values.
+|=======================================================================
+
+=== Advanced CloudWatchClient configuration
+
+If you need more control over the `CloudWatchClient` instance
+configuration you can create your own instance and refer to it from the
+URI:
+
+[source,java]
+-------------------------------------------------
+from("direct:start")
+.to("aws2-cw://namespace?amazonCwClient=#client");
+-------------------------------------------------
+
+The `#client` refers to a `CloudWatchClient` in the
+Registry.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-cw</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `${camel-version`} must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-cw-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddb-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddb-component.adoc
new file mode 100644
index 0000000..ce77572
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddb-component.adoc
@@ -0,0 +1,376 @@
+[[aws2-ddb-component]]
+= AWS DynamoDB Component
+:docTitle: AWS DynamoDB
+:artifactId: camel-aws2-ddb
+:description: Store and retrieve data from AWS DynamoDB service using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-ddb.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 DynamoDB component supports storing and retrieving data from/to
+https://aws.amazon.com/dynamodb[Amazon's DynamoDB] service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon DynamoDB. More information is available at
+https://aws.amazon.com/dynamodb[Amazon DynamoDB].
+
+
+== URI Format
+
+------------------------------
+aws2-ddb://domainName[?options]
+------------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS DynamoDB component supports 21 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonDDBClient* (producer) | *Autowired* To use the AmazonDynamoDB as the client |  | DynamoDbClient
+| *configuration* (producer) | The component configuration |  | Ddb2Configuration
+| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
+| *keyAttributeName* (producer) | Attribute name when creating table |  | String
+| *keyAttributeType* (producer) | Attribute type when creating table |  | String
+| *keyScalarType* (producer) | The key scalar type, it can be S (String), N (Number) and B (Bytes) |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | What operation to perform. There are 10 enums and the value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | Ddb2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
+| *proxyPort* (producer) | 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
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
+| *region* (producer) | The region in which DDB client needs to work |  | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS DynamoDB endpoint is configured using URI syntax:
+
+----
+aws2-ddb:tableName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *tableName* | *Required* The name of the table currently worked with. |  | String
+|===
+
+
+=== Query Parameters (19 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonDDBClient* (producer) | *Autowired* To use the AmazonDynamoDB as the client |  | DynamoDbClient
+| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
+| *keyAttributeName* (producer) | Attribute name when creating table |  | String
+| *keyAttributeType* (producer) | Attribute type when creating table |  | String
+| *keyScalarType* (producer) | The key scalar type, it can be S (String), N (Number) and B (Bytes) |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | What operation to perform. There are 10 enums and the value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | Ddb2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
+| *proxyPort* (producer) | 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
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
+| *region* (producer) | The region in which DDB client needs to work |  | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+Required DDB component options
+
+You have to provide the amazonDDBClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/dynamodb[Amazon's DynamoDB].
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the DDB producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbBatchItems` |`Map<String, KeysAndAttributes>` |A map of the table name and corresponding items to get by primary key.
+
+|`CamelAwsDdbTableName` |`String` |Table Name for this operation.
+
+|`CamelAwsDdbKey` |`Key` |The primary key that uniquely identifies each item in a table.
+
+|`CamelAwsDdbReturnValues` |`String` |Use this parameter if you want to get the attribute name-value pairs
+before or after they are modified(NONE, ALL_OLD, UPDATED_OLD, ALL_NEW,
+UPDATED_NEW).
+
+|`CamelAwsDdbUpdateCondition` |`Map<String, ExpectedAttributeValue>` |Designates an attribute for a conditional modification.
+
+|`CamelAwsDdbAttributeNames` |`Collection<String>` |If attribute names are not specified then all attributes will be
+returned.
+
+|`CamelAwsDdbConsistentRead` |`Boolean` |If set to true, then a consistent read is issued, otherwise eventually
+consistent is used.
+
+|`CamelAwsDdbIndexName` |`String` |If set will be used as Secondary Index for Query operation.
+
+|`CamelAwsDdbItem` |`Map<String, AttributeValue>` |A map of the attributes for the item, and must include the primary key
+values that define the item.
+
+|`CamelAwsDdbExactCount` |`Boolean` |If set to true, Amazon DynamoDB returns a total number of items that
+match the query parameters, instead of a list of the matching items and
+their attributes.
+
+|`CamelAwsDdbKeyConditions` |`Map<String, Condition>` |This header specify the selection criteria for the
+query, and merge together the two old headers *CamelAwsDdbHashKeyValue*
+and *CamelAwsDdbScanRangeKeyCondition*
+
+|`CamelAwsDdbStartKey` |`Key` |Primary key of the item from which to continue an earlier query.
+
+|`CamelAwsDdbHashKeyValue` |`AttributeValue` |Value of the hash component of the composite primary key.
+
+|`CamelAwsDdbLimit` |`Integer` |The maximum number of items to return.
+
+|`CamelAwsDdbScanRangeKeyCondition` |`Condition` |A container for the attribute values and comparison operators to use for
+the query.
+
+|`CamelAwsDdbScanIndexForward` |`Boolean` |Specifies forward or backward traversal of the index.
+
+|`CamelAwsDdbScanFilter` |`Map<String, Condition>` |Evaluates the scan results and returns only the desired values.
+
+|`CamelAwsDdbUpdateValues` |`Map<String, AttributeValueUpdate>` |Map of attribute name to the new value and action for the update.
+|=======================================================================
+
+=== Message headers set during BatchGetItems operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbBatchResponse` |`Map<String,BatchResponse>` |Table names and the respective item attributes from the tables.
+
+|`CamelAwsDdbUnprocessedKeys` |`Map<String,KeysAndAttributes>` |Contains a map of tables and their respective keys that were not
+processed with the current response.
+|=======================================================================
+
+=== Message headers set during DeleteItem operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
+|=======================================================================
+
+=== Message headers set during DeleteTable operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbProvisionedThroughput`| | 
+
+|`ProvisionedThroughputDescription` | |The value of the ProvisionedThroughput property for this table
+
+|`CamelAwsDdbCreationDate` |`Date` |Creation DateTime of this table.
+
+|`CamelAwsDdbTableItemCount` |`Long` |Item count for this table.
+
+|`CamelAwsDdbKeySchema` |`KeySchema` |The KeySchema that identifies the primary key for this table. 
+*From Camel 2.16.0 the type of this header is List<KeySchemaElement> and not KeySchema*
+
+|`CamelAwsDdbTableName` |`String` |The table name. 
+
+|`CamelAwsDdbTableSize` |`Long` |The table size in bytes. 
+
+|`CamelAwsDdbTableStatus` |`String` |The status of the table: CREATING, UPDATING, DELETING, ACTIVE
+|=======================================================================
+
+=== Message headers set during DescribeTable operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbProvisionedThroughput` |{\{ProvisionedThroughputDescription}} |The value of the ProvisionedThroughput property for this table
+
+|`CamelAwsDdbCreationDate` |`Date` |Creation DateTime of this table.
+
+|`CamelAwsDdbTableItemCount` |`Long` |Item count for this table.
+
+|`CamelAwsDdbKeySchema` |{\{KeySchema}} |The KeySchema that identifies the primary key for this table.
+
+
+|`CamelAwsDdbTableName` |`String` |The table name.
+
+|`CamelAwsDdbTableSize` |`Long` |The table size in bytes.
+
+|`CamelAwsDdbTableStatus` |`String` |The status of the table: CREATING, UPDATING, DELETING, ACTIVE
+
+|`CamelAwsDdbReadCapacity` |`Long` |ReadCapacityUnits property of this table.
+
+|`CamelAwsDdbWriteCapacity` |`Long` |WriteCapacityUnits property of this table.
+|=======================================================================
+
+=== Message headers set during GetItem operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
+
+|=======================================================================
+
+=== Message headers set during PutItem operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
+
+|=======================================================================
+
+=== Message headers set during Query operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>` |The list of attributes returned by the operation.
+
+|`CamelAwsDdbLastEvaluatedKey` |`Key` |Primary key of the item where the query operation stopped, inclusive of
+the previous result set.
+
+|`CamelAwsDdbConsumedCapacity` |`Double` |The number of Capacity Units of the provisioned throughput of the table
+consumed during the operation.
+
+|`CamelAwsDdbCount` |`Integer` |Number of items in the response.
+|=======================================================================
+
+=== Message headers set during Scan operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>` |The list of attributes returned by the operation.
+
+|`CamelAwsDdbLastEvaluatedKey` |`Key` |Primary key of the item where the query operation stopped, inclusive of
+the previous result set.
+
+|`CamelAwsDdbConsumedCapacity` |`Double` |The number of Capacity Units of the provisioned throughput of the table
+consumed during the operation.
+
+|`CamelAwsDdbCount` |`Integer` |Number of items in the response.
+
+|`CamelAwsDdbScannedCount` |`Integer` |Number of items in the complete scan before any filters are applied.
+|=======================================================================
+
+=== Message headers set during UpdateItem operation
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
+
+|=======================================================================
+
+=== Advanced AmazonDynamoDB configuration
+
+If you need more control over the `AmazonDynamoDB` instance
+configuration you can create your own instance and refer to it from the
+URI:
+
+[source,java]
+----------------------------------------------------
+from("direct:start")
+.to("aws2-ddb://domainName?amazonDDBClient=#client");
+----------------------------------------------------
+
+The `#client` refers to a `DynamoDbClient` in the
+Registry.
+
+== Supported producer operations
+
+- BatchGetItems
+- DeleteItem
+- DeleteTable
+- DescribeTable
+- GetItem
+- PutItem
+- Query
+- Scan
+- UpdateItem
+- UpdateTable
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-ddb</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-ddb-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddbstream-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddbstream-component.adoc
new file mode 100644
index 0000000..90e3038
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ddbstream-component.adoc
@@ -0,0 +1,206 @@
+[[aws2-ddbstream-component]]
+= AWS DynamoDB Streams Component
+:docTitle: AWS DynamoDB Streams
+:artifactId: camel-aws2-ddb
+:description: Receive messages from AWS DynamoDB Stream service using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only consumer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-ddbstream.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 DynamoDB Stream component supports receiving messages from
+Amazon DynamoDB Stream service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon DynamoDB Streams. More information are available
+at https://aws.amazon.com/dynamodb/[AWS DynamoDB]
+
+== URI Format
+
+------------------------------------
+aws2-ddbstream://table-name[?options]
+------------------------------------
+
+The stream needs to be created prior to it being used. +
+ You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS DynamoDB Streams component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonDynamoDbStreamsClient* (consumer) | *Autowired* Amazon DynamoDB client to use for all requests for this endpoint |  | DynamoDbStreamsClient
+| *bridgeErrorHandler* (consumer) | 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
+| *configuration* (consumer) | The component configuration |  | Ddb2StreamConfiguration
+| *iteratorType* (consumer) | 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. There are 5 enums and the value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, null | LATEST | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
+| *overrideEndpoint* (consumer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
+| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
+| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (consumer) | The region in which DDBStreams client needs to work |  | String
+| *sequenceNumberProvider* (consumer) | 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
+| *trustAllCertificates* (consumer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (consumer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (consumer) | Set whether the DynamoDB Streams client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS DynamoDB Streams endpoint is configured using URI syntax:
+
+----
+aws2-ddbstream:tableName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *tableName* | *Required* Name of the dynamodb table |  | String
+|===
+
+
+=== Query Parameters (33 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonDynamoDbStreamsClient* (consumer) | *Autowired* Amazon DynamoDB client to use for all requests for this endpoint |  | DynamoDbStreamsClient
+| *bridgeErrorHandler* (consumer) | 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
+| *iteratorType* (consumer) | 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. There are 5 enums and the value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, null | LATEST | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
+| *overrideEndpoint* (consumer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
+| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
+| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (consumer) | The region in which DDBStreams client needs to work |  | String
+| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
+| *sequenceNumberProvider* (consumer) | 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
+| *trustAllCertificates* (consumer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (consumer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (consumer) | Set whether the DynamoDB Streams client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
+| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
+| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
+| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
+| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
+| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
+| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
+| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
+| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler | none | Object
+| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
+| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
+| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
+| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required DynamoDBStream component options
+
+You have to provide the DynamoDbStreamsClient in the
+Registry with proxies and relevant credentials
+configured.
+
+== Sequence Numbers
+
+You can provide a literal string as the sequence number or provide a
+bean in the registry. An example of using the bean would be to save your
+current position in the change feed and restore it on Camel startup.
+
+It is an error to provide a sequence number that is greater than the
+largest sequence number in the describe-streams result, as this will
+lead to the AWS call returning an HTTP 400.
+
+== Batch Consumer
+
+This component implements the Batch Consumer.
+
+This allows you for instance to know how many messages exists in this
+batch and for instance let the Aggregator
+aggregate this number of messages.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+== Coping with Downtime
+
+=== AWS DynamoDB Streams outage of less than 24 hours
+
+The consumer will resume from the last seen sequence number (as
+implemented
+for https://issues.apache.org/jira/browse/CAMEL-9515[CAMEL-9515]), so
+you should receive a flood of events in quick succession, as long as the
+outage did not also include DynamoDB itself.
+
+=== AWS DynamoDB Streams outage of more than 24 hours
+
+Given that AWS only retain 24 hours worth of changes, you will have
+missed change events no matter what mitigations are in place.
+
+=== Message Body
+
+The Message body is instance of "software.amazon.awssdk.services.dynamodb.model.Record", for more information about it, have a look at the https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/Record.html[related javadoc]
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-ddb</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-ddb-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ec2-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ec2-component.adoc
new file mode 100644
index 0000000..f910279
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ec2-component.adoc
@@ -0,0 +1,267 @@
+[[aws2-ec2-component]]
+= AWS Elastic Compute Cloud (EC2) Component
+:docTitle: AWS Elastic Compute Cloud (EC2)
+:artifactId: camel-aws2-ec2
+:description: Manage AWS EC2 instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-ec2.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 EC2 component supports the ability to create, run, start, stop and terminate
+https://aws.amazon.com/ec2/[AWS EC2] instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon EC2. More information is available at
+https://aws.amazon.com/ec2/[Amazon EC2].
+
+
+== URI Format
+
+-------------------------
+aws2-ec2://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Elastic Compute Cloud (EC2) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonEc2Client* (producer) | *Autowired* To use a existing configured AmazonEC2Client as client |  | Ec2Client
+| *configuration* (producer) | The component configuration |  | AWS2EC2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags. There are 11 enums and the value can be one of: createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the EC2 client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EC2 client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EC2 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which EC2 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
+| *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the EC2 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Elastic Compute Cloud (EC2) endpoint is configured using URI syntax:
+
+----
+aws2-ec2:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonEc2Client* (producer) | *Autowired* To use a existing configured AmazonEC2Client as client |  | Ec2Client
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags. There are 11 enums and the value can be one of: createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the EC2 client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EC2 client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EC2 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which EC2 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
+| *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the EC2 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+|===
+// endpoint options: END
+
+
+Required EC2 component options
+
+You have to provide the amazonEc2Client in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/ec2/[Amazon EC2] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the EC2 producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsEC2ImageId` |`String` |An image ID of the AWS marketplace
+
+|`CamelAwsEC2InstanceType` |com.amazonaws.services.ec2.model.InstanceType |The instance type we want to create and run
+
+|`CamelAwsEC2Operation` |`String` |The operation we want to perform
+
+|`CamelAwsEC2InstanceMinCount` |`Int` |The mininum number of instances we want to run.
+
+|`CamelAwsEC2InstanceMaxCount` |`Int` |The maximum number of instances we want to run.
+
+|`CamelAwsEC2InstanceMonitoring` |Boolean |Define if we want the running instances to be monitored
+
+|`CamelAwsEC2InstanceEbsOptimized` |`Boolean` |Define if the creating instance is optimized for EBS I/O.
+
+|`CamelAwsEC2InstanceSecurityGroups` |Collection |The security groups to associate to the instances
+
+|`CamelAwsEC2InstancesIds` |`Collection` |A collection of instances IDS to execute start, stop, describe and
+terminate operations on.
+
+|`CamelAwsEC2InstancesTags` |`Collection` |A collection of tags to add or remove from EC2 resources
+|=======================================================================
+
+== Supported producer operations
+
+- createAndRunInstances
+- startInstances
+- stopInstances
+- terminateInstances
+- describeInstances
+- describeInstancesStatus
+- rebootInstances
+- monitorInstances
+- unmonitorInstances
+- createTags
+- deleteTags
+
+== Producer Examples
+
+- createAndRunInstances: this operation will create an EC2 instance and run it
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createAndRun")
+     .setHeader(EC2Constants.IMAGE_ID, constant("ami-fd65ba94"))
+     .setHeader(EC2Constants.INSTANCE_TYPE, constant(InstanceType.T2Micro))
+     .setHeader(EC2Constants.INSTANCE_MIN_COUNT, constant("1"))
+     .setHeader(EC2Constants.INSTANCE_MAX_COUNT, constant("1"))
+     .to("aws2-ec2://TestDomain?accessKey=xxxx&secretKey=xxxx&operation=createAndRunInstances");
+--------------------------------------------------------------------------------
+
+- startInstances: this operation will start a list of EC2 instances
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+     .process(new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                Collection<String> l = new ArrayList<>();
+                l.add("myinstance");
+                exchange.getIn().setHeader(AWS2EC2Constants.INSTANCES_IDS, l);
+            }
+        })
+     .to("aws2-ec2://TestDomain?accessKey=xxxx&secretKey=xxxx&operation=startInstances");
+--------------------------------------------------------------------------------
+
+- stopInstances: this operation will stop a list of EC2 instances
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:stop")
+     .process(new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                Collection<String> l = new ArrayList<>();
+                l.add("myinstance");
+                exchange.getIn().setHeader(AWS2EC2Constants.INSTANCES_IDS, l);
+            }
+        })
+     .to("aws2-ec2://TestDomain?accessKey=xxxx&secretKey=xxxx&operation=stopInstances");
+--------------------------------------------------------------------------------
+
+- terminateInstances: this operation will terminate a list of EC2 instances
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:stop")
+     .process(new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                Collection<String> l = new ArrayList<>();
+                l.add("myinstance");
+                exchange.getIn().setHeader(AWS2EC2Constants.INSTANCES_IDS, l);
+            }
+        })
+     .to("aws2-ec2://TestDomain?accessKey=xxxx&secretKey=xxxx&operation=terminateInstances");
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS EC2 there are multiple operations you can submit, as an example for Create and run an instance, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:start")
+  .setBody(RunInstancesRequest.builder().imageId("test-1").instanceType(InstanceType.T2_MICRO).build())
+  .to("aws2-ec2://TestDomain?accessKey=xxxx&secretKey=xxxx&operation=createAndRunInstances&pojoRequest=true");
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-ec2</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-ec2-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ecs-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ecs-component.adoc
new file mode 100644
index 0000000..998e944
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ecs-component.adoc
@@ -0,0 +1,193 @@
+[[aws2-ecs-component]]
+= AWS Elastic Container Service (ECS) Component
+:docTitle: AWS Elastic Container Service (ECS)
+:artifactId: camel-aws2-ecs
+:description: Manage AWS ECS cluster instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-ecs.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 ECS component supports create, delete, describe and list clusters
+https://aws.amazon.com/ecs/[AWS ECS] clusters instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon ECS. More information is available at
+https://aws.amazon.com/ecs/[Amazon ECS].
+
+== URI Format
+
+-------------------------
+aws2-ecs://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Elastic Container Service (ECS) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | ECS2Configuration
+| *ecsClient* (producer) | *Autowired* To use a existing configured AWS ECS as client |  | EcsClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | ECS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the ECS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the ECS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the ECS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the ECS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Elastic Container Service (ECS) endpoint is configured using URI syntax:
+
+----
+aws2-ecs:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *ecsClient* (producer) | *Autowired* To use a existing configured AWS ECS as client |  | EcsClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | ECS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the ECS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the ECS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the ECS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the ECS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+Required ECS component options
+
+You have to provide the amazonECSClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/ecs/[Amazon ECS] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the ECS producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsECSMaxResults` |`Integer` |The limit number of results while listing clusters
+
+|`CamelAwsECSOperation` |`String` |The operation we want to perform
+
+|`CamelAwsECSClusterName` |`String` |The cluster name
+|=======================================================================
+
+=== ECS Producer operations
+
+Camel-AWS ECS component provides the following operation on the producer side:
+
+- listClusters
+- createCluster
+- describeCluster
+- deleteCluster
+
+== Producer Examples
+
+- listClusters: this operation will list the available clusters in ECS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listClusters")
+    .to("aws2-ecs://test?ecsClient=#amazonEcsClient&operation=listClusters")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS ECS there are multiple operations you can submit, as an example for List cluster request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:start")
+  .setBody(ListClustersRequest.builder().maxResults(10).build())
+  .to("aws2-ecs://test?ecsClient=#amazonEcsClient&operation=listClusters&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-ecs</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-ecs-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eks-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eks-component.adoc
new file mode 100644
index 0000000..c34eba0
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eks-component.adoc
@@ -0,0 +1,201 @@
+[[aws2-eks-component]]
+= AWS Elastic Kubernetes Service (EKS) Component
+:docTitle: AWS Elastic Kubernetes Service (EKS)
+:artifactId: camel-aws2-eks
+:description: Manage AWS EKS cluster instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-eks.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 EKS component supports create, delete, describe and list clusters
+https://aws.amazon.com/eks/[AWS EKS] clusters instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon EKS. More information is available at
+https://aws.amazon.com/eks/[Amazon EKS].
+
+
+== URI Format
+
+-------------------------
+aws2-eks://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Elastic Kubernetes Service (EKS) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | EKS2Configuration
+| *eksClient* (producer) | *Autowired* To use a existing configured AWS EKS as client |  | EksClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | EKS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the EKS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EKS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EKS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the EKS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Elastic Kubernetes Service (EKS) endpoint is configured using URI syntax:
+
+----
+aws2-eks:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *eksClient* (producer) | *Autowired* To use a existing configured AWS EKS as client |  | EksClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | EKS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the EKS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EKS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EKS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the EKS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required EKS component options
+
+You have to provide the amazonEKSClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/eks/[Amazon EKS] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the EKS producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsEKSMaxResults` |`Integer` |The limit number of results while listing clusters
+
+|`CamelAwsEKSOperation` |`String` |The operation we want to perform
+
+|`CamelAwsEKSDescription` |`String` |A key description to use while performing a createKey operation
+
+|`CamelAwsEKSClusterName` |`String` |The cluster name
+
+|`CamelAwsEKSRoleARN` |`String` |The role ARN to use while creating the cluster
+
+|`CamelAwsEKSVPCConfig` |`VPCConfigRequest` |The VPC config for the creations of an EKS cluster
+|=======================================================================
+
+=== EKS Producer operations
+
+Camel-AWS EKS component provides the following operation on the producer side:
+
+- listClusters
+- createCluster
+- describeCluster
+- deleteCluster
+
+== Producer Examples
+
+- listClusters: this operation will list the available clusters in EKS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listClusters")
+    .to("aws2-eks://test?eksClient=#amazonEksClient&operation=listClusters")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS EKS there are multiple operations you can submit, as an example for List cluster request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:start")
+  .setBody(ListClustersRequest.builder().maxResults(12).build())
+  .to("aws2-eks://test?eksClient=#amazonEksClient&operation=listClusters&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-eks</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-eks-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
new file mode 100644
index 0000000..ff4edc3
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
@@ -0,0 +1,345 @@
+[[aws2-eventbridge-component]]
+= AWS Eventbridge Component
+:docTitle: AWS Eventbridge
+:artifactId: camel-aws2-eventbridge
+:description: Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+:since: 3.6
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-eventbridge.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Eventbridge component supports assumeRole operation.
+https://aws.amazon.com/eventbridge/[AWS Eventbridge].
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Eventbridge. More information is available at
+https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
+
+[NOTE]
+====
+To create a rule that triggers on an action by an AWS service that does not emit events, you can base the rule on API calls made by that service. The API calls are recorded by AWS CloudTrail, so you'll need to have CloudTrail enabled. For more information https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html[Services Supported by CloudTrail Event History].
+====
+
+== URI Format
+
+-------------------------
+aws2-eventbridge://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Eventbridge component supports 17 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | EventbridgeConfiguration
+| *eventbridgeClient* (producer) | *Autowired* To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 10 enums and the value can be one of: putRule, putTargets, removeTargets, deleteRule, enableRule, disableRule, describeRule, listRules, listTargetsByRule, listRuleNamesByTarget | putRule | EventbridgeOperations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the Eventbridge client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Eventbridge client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Eventbridge client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which Eventbridge 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Eventbridge client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Eventbridge endpoint is configured using URI syntax:
+
+----
+aws2-eventbridge://eventbusNameOrArn
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *eventbusNameOrArn* | *Required* Event bus name or ARN |  | String
+|===
+
+
+=== Query Parameters (15 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *eventbridgeClient* (producer) | *Autowired* To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 10 enums and the value can be one of: putRule, putTargets, removeTargets, deleteRule, enableRule, disableRule, describeRule, listRules, listTargetsByRule, listRuleNamesByTarget | putRule | EventbridgeOperations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the Eventbridge client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Eventbridge client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Eventbridge client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which Eventbridge 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Eventbridge client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== AWS2-Eventbridge Producer operations
+
+Camel-AWS2-Eventbridge component provides the following operation on the producer side:
+
+- putRule
+- putTargets
+- removeTargets
+- deleteRule
+- enableRule
+- disableRule
+- listRules
+- describeRule
+- listTargetsByRule
+- listRuleNamesByTarget
+
+- PutRule: this operation create a rule related to an eventbus
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:putRule").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=putRule&eventPatternFile=file:src/test/resources/eventpattern.json")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will create a rule named firstrule and it will use a json file for defining the EventPattern.
+
+- PutTargets: this operation will add a target to the rule 
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+          Target target = Target.builder().id("sqs-queue").arn("arn:aws:sqs:eu-west-1:780410022472:camel-connector-test")
+                .build();
+          List<Target> targets = new ArrayList<Target>();
+          targets.add(target);
+          exchange.getIn().setHeader(EventbridgeConstants.TARGETS, targets);
+      }
+  })
+  .to("aws2-eventbridge://test?operation=putTargets")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will add the target sqs-queue with the arn reported to the targets of the firstrule rule.
+
+- RemoveTargets: this operation will remove a collection of target from the rule 
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+          List<String> ids = new ArrayList<String>();
+          targets.add("sqs-queue");
+          exchange.getIn().setHeader(EventbridgeConstants.TARGETS_IDS, targets);
+      }
+  })
+  .to("aws2-eventbridge://test?operation=removeTargets")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will remove the target sqs-queue from the firstrule rule.
+
+- DeleteRule: this operation will delete a rule related to an eventbus
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=deleteRule")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will remove the firstrule rule from the test eventbus.
+
+- EnableRule: this operation will enable a rule related to an eventbus
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=enableRule")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will enable the firstrule rule from the test eventbus.
+
+- DisableRule: this operation will disable a rule related to an eventbus
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=disableRule")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will disable the firstrule rule from the test eventbus.
+
+- ListRules: this operation will list all the rules related to an eventbus with prefix first
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME_PREFIX, "first");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=listRules")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will list all the rules with prefix first from the test eventbus.
+
+- DescribeRule: this operation will describe a specified rule related to an eventbus
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=describeRule")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will describe the firstrule rule from the test eventbus.
+
+- ListTargetsByRule: this operation will return a list of targets associated with a rule
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=listTargetsByRule")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+this operation will return a list of targets associated with the firstrule rule.
+
+- ListRuleNamesByTarget: this operation will return a list of rule associated with a target
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+                    
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(EventbridgeConstants.TARGET_ARN, "firstrule");
+      }
+  })
+  .to("aws2-eventbridge://test?operation=listRuleNamesByTarget")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+this operation will return a list of rule associated with a target.
+
+== Updating the rule
+
+To update a rule you'll need to perform the putRule operation again. 
+There are no explicit update rule operation in the Java SDK.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-eventbridge</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-eventbridge-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-iam-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-iam-component.adoc
new file mode 100644
index 0000000..53d1a1c
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-iam-component.adoc
@@ -0,0 +1,260 @@
+[[aws2-iam-component]]
+= AWS Identity and Access Management (IAM) Component
+:docTitle: AWS Identity and Access Management (IAM)
+:artifactId: camel-aws2-iam
+:description: Manage AWS IAM instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-iam.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 IAM component supports create, run, start, stop and terminate
+https://aws.amazon.com/iam/[AWS IAM] instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon IAM. More information is available at
+https://aws.amazon.com/iam/[Amazon IAM].
+
+
+== URI Format
+
+-------------------------
+aws2-iam://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+[NOTE]
+====
+The AWS2 IAM component works on the aws-global region and it has aws-global as default region
+====
+
+
+// component options: START
+== Component Options
+
+
+The AWS Identity and Access Management (IAM) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | IAM2Configuration
+| *iamClient* (producer) | *Autowired* To use a existing configured AWS IAM as client |  | IamClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. There are 13 enums and the value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAM2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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() | aws-global | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the IAM client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Identity and Access Management (IAM) endpoint is configured using URI syntax:
+
+----
+aws2-iam:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *iamClient* (producer) | *Autowired* To use a existing configured AWS IAM as client |  | IamClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. There are 13 enums and the value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAM2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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() | aws-global | String
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the IAM client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required IAM component options
+
+You have to provide the amazonKmsClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/iam/[Amazon IAM] service.
+
+== Usage
+
+=== Message headers evaluated by the IAM producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsIAMOperation` |`String` |The operation we want to perform
+
+|`CamelAwsIAMUsername` |`String` |The username for the user you want to manage
+
+|`CamelAwsIAMAccessKeyID` |`String` |The accessKey you want to manage
+
+|`CamelAwsIAMAccessKeyStatus` |`String` |The Status of the AccessKey you want to set, possible value are active and inactive
+
+|`CamelAwsIAMGroupName` |`String` |The name of an AWS IAM Group
+
+|`CamelAwsIAMGroupPath` |`String` |The path of an AWS IAM Group
+|=======================================================================
+
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== IAM Producer operations
+
+Camel-AWS2 IAM component provides the following operation on the producer side:
+
+- listAccessKeys
+- createUser
+- deleteUser
+- listUsers
+- getUser
+- createAccessKey
+- deleteAccessKey
+- updateAccessKey
+- createGroup
+- deleteGroup
+- listGroups
+- addUserToGroup
+- removeUserFromGroup
+
+== Producer Examples
+
+- createUser: this operation will create a user in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createUser")
+    .setHeader(IAM2Constants.USERNAME, constant("camel"))
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=createUser")
+--------------------------------------------------------------------------------
+
+- deleteUser: this operation will delete a user in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:deleteUser")
+    .setHeader(IAM2Constants.USERNAME, constant("camel"))
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=deleteUser")
+--------------------------------------------------------------------------------
+
+- listUsers: this operation will list the users in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listUsers")
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=listUsers")
+--------------------------------------------------------------------------------
+
+- createGroup: this operation will add a group in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:deleteUser")
+    .setHeader(IAM2Constants.GROUP_NAME, constant("camel"))
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=createGroup")
+--------------------------------------------------------------------------------
+
+- deleteGroup: this operation will delete a group in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:deleteUser")
+    .setHeader(IAM2Constants.GROUP_NAME, constant("camel"))
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=deleteGroup")
+--------------------------------------------------------------------------------
+
+- listGroups: this operation will list the groups in IAM
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listUsers")
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=listGroups")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS IAM there are multiple operations you can submit, as an example for Create User request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:createUser")
+     .setBody(CreateUserRequest.builder().userName("camel").build())
+    .to("aws2-iam://test?iamClient=#amazonIAMClient&operation=createUser&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-iam</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-iam-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-component.adoc
new file mode 100644
index 0000000..753d198
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-component.adoc
@@ -0,0 +1,246 @@
+[[aws2-kinesis-component]]
+= AWS Kinesis Component
+:docTitle: AWS Kinesis
+:artifactId: camel-aws2-kinesis
+:description: Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.
+:since: 3.2
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-kinesis.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Kinesis component supports receiving messages from and sending messages to Amazon Kinesis (no Batch supported)
+service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Kinesis. More information are available
+at https://aws.amazon.com/kinesis/[AWS Kinesis]
+
+
+== URI Format
+
+-----------------------------------
+aws2-kinesis://stream-name[?options]
+-----------------------------------
+
+The stream needs to be created prior to it being used. +
+ You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Kinesis component supports 21 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonKinesisClient* (common) | *Autowired* Amazon Kinesis client to use for all requests for this endpoint |  | KinesisClient
+| *cborEnabled* (common) | This option will set the CBOR_ENABLED property during the execution | true | boolean
+| *configuration* (common) | Component configuration |  | Kinesis2Configuration
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (common) | To define a proxy host when instantiating the Kinesis client |  | String
+| *proxyPort* (common) | To define a proxy port when instantiating the Kinesis client |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the Kinesis client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (common) | 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
+| *trustAllCertificates* (common) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the Kinesis client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *bridgeErrorHandler* (consumer) | 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
+| *iteratorType* (consumer) | Defines where in the Kinesis stream to start getting records. There are 6 enums and the value can be one of: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST, AT_TIMESTAMP, null | TRIM_HORIZON | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll | 1 | int
+| *sequenceNumber* (consumer) | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
+| *shardClosed* (consumer) | 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. There are 3 enums and the value can be one of: ignore, fail, silent | ignore | Kinesis2ShardClosedStrategyEnum
+| *shardId* (consumer) | Defines which shardId in the Kinesis stream to get records from |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Kinesis endpoint is configured using URI syntax:
+
+----
+aws2-kinesis:streamName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *streamName* | *Required* Name of the stream |  | String
+|===
+
+
+=== Query Parameters (37 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonKinesisClient* (common) | *Autowired* Amazon Kinesis client to use for all requests for this endpoint |  | KinesisClient
+| *cborEnabled* (common) | This option will set the CBOR_ENABLED property during the execution | true | boolean
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (common) | To define a proxy host when instantiating the Kinesis client |  | String
+| *proxyPort* (common) | To define a proxy port when instantiating the Kinesis client |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the Kinesis client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (common) | 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
+| *trustAllCertificates* (common) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the Kinesis client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *bridgeErrorHandler* (consumer) | 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
+| *iteratorType* (consumer) | Defines where in the Kinesis stream to start getting records. There are 6 enums and the value can be one of: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST, AT_TIMESTAMP, null | TRIM_HORIZON | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll | 1 | int
+| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
+| *sequenceNumber* (consumer) | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
+| *shardClosed* (consumer) | 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. There are 3 enums and the value can be one of: ignore, fail, silent | ignore | Kinesis2ShardClosedStrategyEnum
+| *shardId* (consumer) | Defines which shardId in the Kinesis stream to get records from |  | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
+| *lazyStartProducer* (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 creating and [...]
+| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
+| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
+| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
+| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
+| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
+| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
+| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
+| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler | none | Object
+| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
+| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
+| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
+| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required Kinesis component options
+
+You have to provide the KinesisClient in the
+Registry with proxies and relevant credentials
+configured.
+
+== Batch Consumer
+
+This component implements the Batch Consumer.
+
+This allows you for instance to know how many messages exists in this
+batch and for instance let the Aggregator
+aggregate this number of messages.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers set by the Kinesis consumer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsKinesisSequenceNumber` |`String` |The sequence number of the record. This is represented as a String as it
+size is not defined by the API. If it is to be used as a numerical type then use
+
+|`CamelAwsKinesisApproximateArrivalTimestamp` |`String` |The time AWS assigned as the arrival time of the record.
+
+|`CamelAwsKinesisPartitionKey` |`String` |Identifies which shard in the stream the data record is assigned to.
+|=======================================================================
+
+=== AmazonKinesis configuration
+
+You then have to reference the KinesisClient in the `amazonKinesisClient` URI option.
+
+[source,java]
+--------------------------------------------------------------------------------------------------------------------
+from("aws2-kinesis://mykinesisstream?amazonKinesisClient=#kinesisClient")
+  .to("log:out?showAll=true");
+--------------------------------------------------------------------------------------------------------------------
+
+=== Providing AWS Credentials
+
+It is recommended that the credentials are obtained by using the
+http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html[DefaultAWSCredentialsProviderChain]
+that is the default when creating a new ClientConfiguration instance,
+however, a
+different http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html[AWSCredentialsProvider]
+can be specified when calling createClient(...).
+
+=== Message headers used by the Kinesis producer to write to Kinesis.  The producer expects that the message body is a `byte[]`.
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsKinesisPartitionKey` |`String` |The PartitionKey to pass to Kinesis to store this record.
+
+|`CamelAwsKinesisSequenceNumber` |`String` |Optional paramter to indicate the sequence number of this record.
+
+|=======================================================================
+
+=== Message headers set by the Kinesis producer on successful storage of a Record
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsKinesisSequenceNumber` |`String` |The sequence number of the record, as defined in
+http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html#API_PutRecord_ResponseSyntax[Response Syntax]
+
+|`CamelAwsKinesisShardId` |`String` |The shard ID of where the Record was stored
+
+
+|=======================================================================
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-kinesis</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-kinesis-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-firehose-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-firehose-component.adoc
new file mode 100644
index 0000000..58dd3db
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kinesis-firehose-component.adoc
@@ -0,0 +1,237 @@
+[[aws2-kinesis-firehose-component]]
+= AWS Kinesis Firehose Component
+:docTitle: AWS Kinesis Firehose
+:artifactId: camel-aws2-kinesis
+:description: Produce data to AWS Kinesis Firehose streams using AWS SDK version 2.x.
+:since: 3.2
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-kinesis-firehose.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Kinesis Firehose component supports sending messages to Amazon Kinesis Firehose service (Batch not supported).
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Kinesis Firehose. More information are available
+at https://aws.amazon.com/kinesis/firehose/[AWS Kinesis Firehose]
+
+[NOTE]
+====
+The AWS2 Kinesis Firehose component is not supported in OSGI
+====
+
+== URI Format
+
+[source,java]
+-----------------------------------
+aws2-kinesis-firehose://delivery-stream-name[?options]
+-----------------------------------
+
+The stream needs to be created prior to it being used. +
+ You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+== URI Options
+
+
+// component options: START
+== Component Options
+
+
+The AWS Kinesis Firehose component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonKinesisFirehoseClient* (producer) | *Autowired* Amazon Kinesis Firehose client to use for all requests for this endpoint |  | FirehoseClient
+| *cborEnabled* (common) | This option will set the CBOR_ENABLED property during the execution | true | boolean
+| *configuration* (producer) | Component configuration |  | KinesisFirehose2Configuration
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to do in case the user don't want to send only a record. There are 5 enums and the value can be one of: sendBatchRecord, createDeliveryStream, deleteDeliveryStream, describeDeliveryStream, updateDestination |  | KinesisFirehose2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the Kinesis Firehose client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Kinesis Firehose client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+
+
+
+
+
+
+
+// endpoint options: START
+== Endpoint Options
+
+The AWS Kinesis Firehose endpoint is configured using URI syntax:
+
+----
+aws2-kinesis-firehose:streamName
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *streamName* | *Required* Name of the stream |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonKinesisFirehoseClient* (producer) | *Autowired* Amazon Kinesis Firehose client to use for all requests for this endpoint |  | FirehoseClient
+| *cborEnabled* (common) | This option will set the CBOR_ENABLED property during the execution | true | boolean
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to do in case the user don't want to send only a record. There are 5 enums and the value can be one of: sendBatchRecord, createDeliveryStream, deleteDeliveryStream, describeDeliveryStream, updateDestination |  | KinesisFirehose2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the Kinesis Firehose client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Kinesis Firehose client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+
+
+
+
+
+Required Kinesis Firehose component options
+
+You have to provide the FirehoseClient in the
+Registry with proxies and relevant credentials
+configured.
+
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Amazon Kinesis Firehose configuration
+
+You then have to reference the FirehoseClient in the `amazonKinesisFirehoseClient` URI option.
+
+[source,java]
+--------------------------------------------------------------------------------------------------------------------
+from("aws2-kinesis-firehose://mykinesisdeliverystream?amazonKinesisFirehoseClient=#kinesisClient")
+  .to("log:out?showAll=true");
+--------------------------------------------------------------------------------------------------------------------
+
+=== Providing AWS Credentials
+
+It is recommended that the credentials are obtained by using the
+http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html[DefaultAWSCredentialsProviderChain]
+that is the default when creating a new ClientConfiguration instance,
+however, a
+different http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html[AWSCredentialsProvider]
+can be specified when calling createClient(...).
+
+=== Kinesis Firehose Producer operations
+
+Camel-AWS s3 component provides the following operation on the producer side:
+
+- SendBatchRecord
+- CreateDeliveryStream
+- DeleteDeliveryStream
+- DescribeDeliveryStream
+- UpdateDestination
+
+=== Send Batch Records Example
+
+You can send an iterable of Kinesis Record (as the following example shows) or you can send directly a PutRecordBatchRequest POJO instance in the body.
+
+[source,java]
+--------------------------------------------------------------------------------------------------------------------
+    @Test
+    public void testFirehoseBatchRouting() throws Exception {
+        Exchange exchange = template.send("direct:start", ExchangePattern.InOnly, new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                List<Record> recs = new ArrayList<Record>();
+                Record rec = Record.builder().data(SdkBytes.fromString("Test1", Charset.defaultCharset())).build();
+                Record rec1 = Record.builder().data(SdkBytes.fromString("Test2", Charset.defaultCharset())).build();
+                recs.add(rec);
+                recs.add(rec1);
+                exchange.getIn().setBody(recs);
+            }
+        });
+        assertNotNull(exchange.getIn().getBody());
+    }
+
+from("direct:start").to("aws2-kinesis-firehose://cc?amazonKinesisFirehoseClient=#FirehoseClient&operation=sendBatchRecord");
+--------------------------------------------------------------------------------------------------------------------
+
+In the deliveryStream you'll find "Test1Test2".
+
+=== Message headers set by the Kinesis producer on successful storage of a Record
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsKinesisFirehoseRecordId` |`String` |The record ID, as defined in
+http://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecord.html#API_PutRecord_ResponseSyntax[Response Syntax]
+
+
+|=======================================================================
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-kinesis</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-kinesis-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kms-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kms-component.adoc
new file mode 100644
index 0000000..808f4db
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-kms-component.adoc
@@ -0,0 +1,222 @@
+[[aws2-kms-component]]
+= AWS Key Management Service (KMS) Component
+:docTitle: AWS Key Management Service (KMS)
+:artifactId: camel-aws2-kms
+:description: Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-kms.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 KMS component supports the ability to work with keys stored in
+https://aws.amazon.com/kms/[AWS KMS] instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon KMS. More information is available at
+https://aws.amazon.com/kms/[Amazon KMS].
+
+== URI Format
+
+-------------------------
+aws2-kms://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+// component options: START
+== Component Options
+
+
+The AWS Key Management Service (KMS) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | KMS2Configuration
+| *kmsClient* (producer) | *Autowired* To use a existing configured AWS KMS as client |  | KmsClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 6 enums and the value can be one of: listKeys, createKey, disableKey, scheduleKeyDeletion, describeKey, enableKey |  | KMS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the KMS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the KMS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Key Management Service (KMS) endpoint is configured using URI syntax:
+
+----
+aws2-kms:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *kmsClient* (producer) | *Autowired* To use a existing configured AWS KMS as client |  | KmsClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 6 enums and the value can be one of: listKeys, createKey, disableKey, scheduleKeyDeletion, describeKey, enableKey |  | KMS2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the KMS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the KMS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+Required KMS component options
+
+You have to provide the amazonKmsClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/kms/[Amazon KMS] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the KMS producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsKMSLimit` |`Integer` |The limit number of keys to return while performing a listKeys operation
+
+|`CamelAwsKMSOperation` |`String` |The operation we want to perform
+
+|`CamelAwsKMSDescription` |`String` |A key description to use while performing a createKey operation
+
+|`CamelAwsKMSKeyId` |`String` |The key Id 
+|=======================================================================
+
+=== KMS Producer operations
+
+Camel-AWS KMS component provides the following operation on the producer side:
+
+- listKeys
+- createKey
+- disableKey
+- scheduleKeyDeletion
+- describeKey
+- enableKey
+
+== Producer Examples
+
+- listKeys: this operation will list the available keys in KMS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listKeys")
+      .to("aws2-kms://test?kmsClient=#amazonKmsClient&operation=listKeys")
+--------------------------------------------------------------------------------
+
+- createKey: this operation will create a key in KMS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createKey")
+      .to("aws2-kms://test?kmsClient=#amazonKmsClient&operation=createKey")
+--------------------------------------------------------------------------------
+
+- disableKey: this operation will disable a key in KMS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:disableKey")
+      .setHeader(KMS2Constants.KEY_ID, constant("123")
+      .to("aws2-kms://test?kmsClient=#amazonKmsClient&operation=disableKey")
+--------------------------------------------------------------------------------
+
+- enableKey: this operation will enable a key in KMS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:enableKey")
+      .setHeader(KMS2Constants.KEY_ID, constant("123")
+      .to("aws2-kms://test?kmsClient=#amazonKmsClient&operation=enableKey")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS KMS there are multiple operations you can submit, as an example for List keys request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:createUser")
+     .setBody(ListKeysRequest.builder().limit(10).build())
+     .to("aws2-kms://test?kmsClient=#amazonKmsClient&operation=listKeys&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-kms</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-kms-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-lambda-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-lambda-component.adoc
new file mode 100644
index 0000000..4c50b74
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-lambda-component.adoc
@@ -0,0 +1,262 @@
+[[aws2-lambda-component]]
+= AWS Lambda Component
+:docTitle: AWS Lambda
+:artifactId: camel-aws2-lambda
+:description: Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
+:since: 3.2
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-lambda.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 Lambda component supports create, get, list, delete and invoke
+https://aws.amazon.com/lambda/[AWS Lambda] functions.
+
+*Prerequisites*
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon Lambda. More information is available at
+https://aws.amazon.com/lambda/[AWS Lambda].
+
+When creating a Lambda function, you need to specify a IAM role which has at least the AWSLambdaBasicExecuteRole policy attached.
+
+== URI Format
+
+-------------------------
+aws2-lambda://functionName[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS Lambda component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | Lambda2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction. There are 18 enums and the value can be one of: listFunctions, getFunction, createAlias, deleteAlias, getAlias, listAliases, createFunction, deleteFunction, invokeFunction, updateFunction, createEventSourceMapping, deleteEventSourceMapping, listEventSourceMapping, listTags, tagResource, untagResource, publishVersion, listVersions | invokeFunction |  [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *region* (producer) | The region in which Lambda 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Lambda client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *awsLambdaClient* (advanced) | *Autowired* To use a existing configured AwsLambdaClient as client |  | LambdaClient
+| *proxyHost* (proxy) | To define a proxy host when instantiating the Lambda client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the Lambda client |  | Integer
+| *proxyProtocol* (proxy) | To define a proxy protocol when instantiating the Lambda client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Lambda endpoint is configured using URI syntax:
+
+----
+aws2-lambda:function
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *function* | *Required* Name of the Lambda function. |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction. There are 18 enums and the value can be one of: listFunctions, getFunction, createAlias, deleteAlias, getAlias, listAliases, createFunction, deleteFunction, invokeFunction, updateFunction, createEventSourceMapping, deleteEventSourceMapping, listEventSourceMapping, listTags, tagResource, untagResource, publishVersion, listVersions | invokeFunction |  [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *region* (producer) | The region in which Lambda 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Lambda client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *awsLambdaClient* (advanced) | *Autowired* To use a existing configured AwsLambdaClient as client |  | LambdaClient
+| *proxyHost* (proxy) | To define a proxy host when instantiating the Lambda client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the Lambda client |  | Integer
+| *proxyProtocol* (proxy) | To define a proxy protocol when instantiating the Lambda client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required Lambda component options
+
+You have to provide the awsLambdaClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/lambda/[Amazon Lambda] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the Lambda producer
+
+[width="100%",cols="5%,5%,10%,75%,5%",options="header",]
+|=======================================================================
+|Operation |Header |Type |Description |Required
+
+|All |`CamelAwsLambdaOperation` |`String` |The operation we want to perform. Override operation passed as query parameter| Yes
+
+|createFunction |`CamelAwsLambdaS3Bucket` |`String` |Amazon S3 bucket name where the .zip file containing
+your deployment package is stored. This bucket must reside in the same AWS region where you are creating the Lambda function.| No
+
+|createFunction |`CamelAwsLambdaS3Key` |`String` |The Amazon S3 object (the deployment package) key name
+you want to upload.| No
+
+|createFunction |`CamelAwsLambdaS3ObjectVersion` |String |The Amazon S3 object (the deployment package) version
+you want to upload.| No
+
+|createFunction |`CamelAwsLambdaZipFile` |`String` |The local path of the zip file (the deployment package).
+ Content of zip file can also be put in Message body.| No
+
+|createFunction |`CamelAwsLambdaRole` |`String` |The Amazon Resource Name (ARN) of the IAM role that Lambda assumes
+ when it executes your function to access any other Amazon Web Services (AWS) resources. |Yes
+
+|createFunction |`CamelAwsLambdaRuntime` |String |The runtime environment for the Lambda function you are uploading.
+ (nodejs, nodejs4.3, nodejs6.10, java8, python2.7, python3.6, dotnetcore1.0, odejs4.3-edge) |Yes
+
+|createFunction |`CamelAwsLambdaHandler` |`String` |The function within your code that Lambda calls to begin execution.
+ For Node.js, it is the module-name.export value in your function.
+ For Java, it can be package.class-name::handler or package.class-name.|Yes
+
+|createFunction |`CamelAwsLambdaDescription` |`String` |The user-provided description.|No
+
+|createFunction |`CamelAwsLambdaTargetArn` |`String` |The parent object that contains the target ARN (Amazon Resource Name)
+of an Amazon SQS queue or Amazon SNS topic.|No
+
+|createFunction |`CamelAwsLambdaMemorySize` |`Integer` |The memory size, in MB, you configured for the function.
+Must be a multiple of 64 MB.|No
+
+|createFunction |`CamelAwsLambdaKMSKeyArn` |`String` |The Amazon Resource Name (ARN) of the KMS key used to encrypt your function's environment variables.
+If not provided, AWS Lambda will use a default service key.|No
+
+|createFunction |`CamelAwsLambdaPublish` |`Boolean` |This boolean parameter can be used to request AWS Lambda
+to create the Lambda function and publish a version as an atomic operation.|No
+
+|createFunction |`CamelAwsLambdaTimeout` |`Integer` |The function execution time at which Lambda should terminate the function.
+The default is 3 seconds.|No
+
+|createFunction |`CamelAwsLambdaTracingConfig` |`String` |Your function's tracing settings (Active or PassThrough).|No
+
+|createFunction |`CamelAwsLambdaEnvironmentVariables` |`Map<String, String>` |The key-value pairs that represent your environment's configuration settings.|No
+
+|createFunction |`CamelAwsLambdaEnvironmentTags` |`Map<String, String>` |The list of tags (key-value pairs) assigned to the new function.|No
+
+|createFunction |`CamelAwsLambdaSecurityGroupIds` |`List<String>` |If your Lambda function accesses resources in a VPC, a list of one or more security groups IDs in your VPC.|No
+
+|createFunction |`CamelAwsLambdaSubnetIds` |`List<String>` |If your Lambda function accesses resources in a VPC, a list of one or more subnet IDs in your VPC.|No
+
+|createAlias |`CamelAwsLambdaFunctionVersion` |`String` |The function version to set in the alias|Yes
+
+|createAlias |`CamelAwsLambdaAliasFunctionName` |`String` |The function name to set in the alias|Yes
+
+|createAlias |`CamelAwsLambdaAliasFunctionDescription` |`String` |The function description to set in the alias|No
+
+|deleteAlias |`CamelAwsLambdaAliasFunctionName` |`String` |The function name of the alias|Yes
+
+|getAlias |`CamelAwsLambdaAliasFunctionName` |`String` |The function name of the alias|Yes
+
+|listAliases |`CamelAwsLambdaFunctionVersion` |`String` |The function version to set in the alias|Yes
+
+|=======================================================================
+
+== List of Avalaible Operations
+
+- listFunctions
+- getFunction
+- createFunction
+- deleteFunction
+- invokeFunction
+- updateFunction
+- createEventSourceMapping
+- deleteEventSourceMapping
+- listEventSourceMapping
+- listTags
+- tagResource
+- untagResource
+- publishVersion
+- listVersions
+- createAlias
+- deleteAlias
+- getAlias
+- listAliases
+
+== Example
+
+To have a full understanding of how the component works, you may have a look at this https://github.com/apache/camel/blob/main/components/camel-aws2-lambda/src/test/java/org/apache/camel/component/aws2/lambda/integration/LambdaComponentIntegrationTest.java[integration test]
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS Lambda there are multiple operations you can submit, as an example for Get Function request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:getFunction")
+     .setBody(GetFunctionRequest.builder().functionName("test").build())
+     .to("aws2-lambda://GetHelloWithName?awsLambdaClient=#awsLambdaClient&operation=getFunction&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-lambda</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-lambda-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-mq-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-mq-component.adoc
new file mode 100644
index 0000000..eea79aa
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-mq-component.adoc
@@ -0,0 +1,253 @@
+[[aws2-mq-component]]
+= AWS MQ Component
+:docTitle: AWS MQ
+:artifactId: camel-aws2-mq
+:description: Manage AWS MQ instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-mq.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 MQ component supports create, run, start, stop and terminate
+https://aws.amazon.com/amazon-mq/[AWS MQ] instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon MQ. More information is available at
+https://aws.amazon.com/amazon-mq/[Amazon MQ].
+
+== URI Format
+
+-------------------------
+aws2-mq://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+// component options: START
+== Component Options
+
+
+The AWS MQ component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonMqClient* (producer) | *Autowired* To use a existing configured AmazonMQClient as client |  | MqClient
+| *configuration* (producer) | Component configuration |  | MQ2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be listBrokers,createBroker,deleteBroker. There are 6 enums and the value can be one of: listBrokers, createBroker, deleteBroker, rebootBroker, updateBroker, describeBroker |  | MQ2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the MQ client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MQ client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MQ client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which MQ 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the MQ client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS MQ endpoint is configured using URI syntax:
+
+----
+aws2-mq:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonMqClient* (producer) | *Autowired* To use a existing configured AmazonMQClient as client |  | MqClient
+| *lazyStartProducer* (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 creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be listBrokers,createBroker,deleteBroker. There are 6 enums and the value can be one of: listBrokers, createBroker, deleteBroker, rebootBroker, updateBroker, describeBroker |  | MQ2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the MQ client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MQ client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MQ client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which MQ 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the MQ client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required MQ component options
+
+You have to provide the amazonMqClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/amazon-mq/[Amazon MQ] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the MQ producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsMQMaxResults` |`String` |The number of results that must be retrieved from listBrokers operation
+
+|`CamelAwsMQBrokerName` |`String` |The broker name
+
+|`CamelAwsMQOperation` |`String` |The operation we want to perform
+
+|`CamelAwsMQBrokerId` |`String` |The broker id
+
+|`CamelAwsMQBrokerDeploymentMode` |`String` |The deployment mode for the broker in the createBroker operation
+
+|`CamelAwsMQBrokerInstanceType` |`String` |The instance type for the MQ machine in the createBroker operation
+
+|`CamelAwsMQBrokerEngine` |`String` |The Broker Engine for MQ. Default is ACTIVEMQ
+
+|`CamelAwsMQBrokerEngineVersion` |`String` |The Broker Engine Version for MQ. Currently you can choose between 5.15.6 and 5.15.0 of ACTIVEMQ
+
+|`CamelAwsMQBrokerUsers` |`List<User>` |The list of users for MQ
+
+|`CamelAwsMQBrokerPubliclyAccessible` |`Boolean` |If the MQ instance must be publicly available or not. Default is false.
+|=======================================================================
+
+=== MQ Producer operations
+
+Camel-AWS MQ component provides the following operation on the producer side:
+
+- listBrokers
+- createBroker
+- deleteBroker
+- rebootBroker
+- updateBroker
+- describeBroker
+
+== Producer Examples
+
+- listBrokers: this operation will list the available MQ Brokers in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listBrokers")
+    .to("aws2-mq://test?amazonMqClient=#amazonMqClient&operation=listBrokers")
+--------------------------------------------------------------------------------
+
+- createBroker: this operation will create an MQ Broker in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createBroker")
+    .process(new Processor() {
+       @Override
+       public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(MQ2Constants.BROKER_NAME, "test");
+                exchange.getIn().setHeader(MQ2Constants.BROKER_DEPLOYMENT_MODE, DeploymentMode.SINGLE_INSTANCE);
+                exchange.getIn().setHeader(MQ2Constants.BROKER_INSTANCE_TYPE, "mq.t2.micro");
+                exchange.getIn().setHeader(MQ2Constants.BROKER_ENGINE, EngineType.ACTIVEMQ.name());
+                exchange.getIn().setHeader(MQ2Constants.BROKER_ENGINE_VERSION, "5.15.6");
+                exchange.getIn().setHeader(MQ2Constants.BROKER_PUBLICLY_ACCESSIBLE, false);
+                List<User> users = new ArrayList<>();
+                User.Builder user = User.builder();
+                user.username("camel");
+                user.password("camelpwd");
+                users.add(user.build());
+                exchange.getIn().setHeader(MQ2Constants.BROKER_USERS, users);
+						
+       }
+    })
+    .to("aws2-mq://test?amazonMqClient=#amazonMqClient&operation=createBroker")
+--------------------------------------------------------------------------------
+
+- deleteBroker: this operation will delete an MQ Broker in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listBrokers")
+    .setHeader(MQ2Constants.BROKER_ID, constant("123")
+    .to("aws2-mq://test?amazonMqClient=#amazonMqClient&operation=deleteBroker")
+--------------------------------------------------------------------------------
+
+- rebootBroker: this operation will delete an MQ Broker in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listBrokers")
+    .setHeader(MQ2Constants.BROKER_ID, constant("123")
+    .to("aws2-mq://test?amazonMqClient=#amazonMqClient&operation=rebootBroker")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS MQ there are multiple operations you can submit, as an example for List brokers request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:aws2-mq")
+     .setBody(ListBrokersRequest.builder().maxResults(10).build())
+     .to("aws2-mq://test?amazonMqClient=#amazonMqClient&operation=listBrokers&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-mq</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-mq-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-msk-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-msk-component.adoc
new file mode 100644
index 0000000..7de85ba
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-msk-component.adoc
@@ -0,0 +1,244 @@
+[[aws2-msk-component]]
+= AWS Managed Streaming for Apache Kafka (MSK) Component
+:docTitle: AWS Managed Streaming for Apache Kafka (MSK)
+:artifactId: camel-aws2-msk
+:description: Manage AWS MSK instances using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-msk.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 MSK component supports create, run, start, stop and terminate
+https://aws.amazon.com/msk/[AWS MSK] instances.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon MSK. More information is available at
+https://aws.amazon.com/msk/[Amazon MSK].
+
+== URI Format
+
+-------------------------
+aws2-msk://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+// component options: START
+== Component Options
+
+
+The AWS Managed Streaming for Apache Kafka (MSK) component supports 16 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *configuration* (producer) | Component configuration |  | MSK2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *mskClient* (producer) | *Autowired* To use a existing configured AWS MSK as client |  | KafkaClient
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, createCluster, deleteCluster, describeCluster |  | MSK2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the MSK client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MSK client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MSK client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which MSK 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Kafka client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Managed Streaming for Apache Kafka (MSK) endpoint is configured using URI syntax:
+
+----
+aws2-msk:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *lazyStartProducer* (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 creating and [...]
+| *mskClient* (producer) | *Autowired* To use a existing configured AWS MSK as client |  | KafkaClient
+| *operation* (producer) | *Required* The operation to perform. There are 4 enums and the value can be one of: listClusters, createCluster, deleteCluster, describeCluster |  | MSK2Operations
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the MSK client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MSK client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MSK client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which MSK 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
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Kafka client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required MSK component options
+
+You have to provide the amazonMskClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/msk/[Amazon MSK] service.
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the MSK producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsMSKOperation` |`String` |The operation to perform
+
+|`CamelAwsMSKClusterFilter` |`String` |The cluster name filter for list operation
+
+|`CamelAwsMSKClusterName` |`String` |The cluster name for list and create operation
+
+|`CamelAwsMSKClusterArn` |`String` |The cluster arn for delete operation
+
+|`CamelAwsMSKClusterKafkaVersion` |`String` | The Kafka for the cluster during create operation
+
+|`CamelAwsMSKBrokerNodesNumber` |`Integer`| The number of nodes for the cluster during create operation
+
+|`CamelAwsMSKBrokerNodesGroupInfo` |`com.amazonaws.services.kafka.model.BrokerNodeGroupInfo`| The Broker nodes group info to provide during the create operation
+|=======================================================================
+
+=== MSK Producer operations
+
+Camel-AWS MSK component provides the following operation on the producer side:
+
+- listClusters
+- createCluster
+- deleteCluster
+- describeCluster
+
+== Producer Examples
+
+- listClusters: this operation will list the available MSK Brokers in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:listClusters")
+    .to("aws2-msk://test?mskClient=#amazonMskClient&operation=listClusters")
+--------------------------------------------------------------------------------
+
+- createCluster: this operation will create an MSK Cluster in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createCluster")
+    .process(new Processor() {
+       @Override
+       public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(MSK2Constants.CLUSTER_NAME, "test-kafka");
+                exchange.getIn().setHeader(MSK2Constants.CLUSTER_KAFKA_VERSION, "2.1.1");
+                exchange.getIn().setHeader(MSK2Constants.BROKER_NODES_NUMBER, 2);
+                BrokerNodeGroupInfo groupInfo = BrokerNodeGroupInfo.builder().build();
+                exchange.getIn().setHeader(MSK2Constants.BROKER_NODES_GROUP_INFO, groupInfo);					
+       }
+    })
+    .to("aws2-msk://test?mskClient=#amazonMskClient&operation=createCluster")
+--------------------------------------------------------------------------------
+
+- deleteCluster: this operation will delete an MSK Cluster in AWS
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:deleteCluster")
+    .setHeader(MSK2Constants.CLUSTER_ARN, constant("test-kafka"));
+    .to("aws2-msk://test?mskClient=#amazonMskClient&operation=deleteCluster")
+--------------------------------------------------------------------------------
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:createCluster")
+    .process(new Processor() {
+       @Override
+       public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(MSK2Constants.CLUSTER_NAME, "test-kafka");
+                exchange.getIn().setHeader(MSK2Constants.CLUSTER_KAFKA_VERSION, "2.1.1");
+                exchange.getIn().setHeader(MSK2Constants.BROKER_NODES_NUMBER, 2);
+                BrokerNodeGroupInfo groupInfo = BrokerNodeGroupInfo.builder().build();
+                exchange.getIn().setHeader(MSK2Constants.BROKER_NODES_GROUP_INFO, groupInfo);					
+       }
+    })
+    .to("aws2-msk://test?mskClient=#amazonMskClient&operation=deleteCluster")
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS MSK there are multiple operations you can submit, as an example for List clusters request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:aws2-msk")
+     .setBody(ListClustersRequest.builder().maxResults(10).build())
+     .to("aws2-msk://test?mskClient=#amazonMskClient&operation=listClusters&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-msk</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::{page-component-version}@camel-spring-boot::page$aws2-msk-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
new file mode 100644
index 0000000..c116926
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
@@ -0,0 +1,717 @@
+[[aws2-s3-component]]
+= AWS S3 Storage Service Component
+:docTitle: AWS S3 Storage Service
+:artifactId: camel-aws2-s3
+:description: Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
+:since: 3.2
+:supportLevel: Stable
+:component-header: Both producer and consumer are supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-s3.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 S3 component supports storing and retrieving objects from/to
+https://aws.amazon.com/s3[Amazon's S3] service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon S3. More information is available at
+https://aws.amazon.com/s3[Amazon S3].
+
+== URI Format
+
+------------------------------
+aws2-s3://bucketNameOrArn[?options]
+------------------------------
+
+The bucket will be created if it don't already exists. +
+ You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+
+// component options: START
+== Component Options
+
+
+The AWS S3 Storage Service component supports 50 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonS3Client* (common) | *Autowired* Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. |  | S3Client
+| *amazonS3Presigner* (common) | *Autowired* An S3 Presigner for Request, used mainly in createDownloadLink operation |  | S3Presigner
+| *autoCreateBucket* (common) | Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfterRead option enabled and it will create the destinationBucket if it doesn't exist already. | false | boolean
+| *configuration* (common) | The component configuration |  | AWS2S3Configuration
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (common) | If we want to use a POJO request as body or not | false | boolean
+| *policy* (common) | The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
+| *proxyHost* (common) | To define a proxy host when instantiating the SQS client |  | String
+| *proxyPort* (common) | Specify a proxy port to be used inside the client definition. |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (common) | The region in which S3 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
+| *trustAllCertificates* (common) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *customerAlgorithm* (common) | Define the customer algorithm to use in case CustomerKey is enabled |  | String
+| *customerKeyId* (common) | Define the id of Customer key to use in case CustomerKey is enabled |  | String
+| *customerKeyMD5* (common) | Define the MD5 of Customer key to use in case CustomerKey is enabled |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *deleteAfterRead* (consumer) | 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 AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...]
+| *delimiter* (consumer) | The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. |  | String
+| *destinationBucketPrefix* (consumer) | Define the destination bucket prefix to use when an object must be moved and moveAfterRead is set to true. |  | String
+| *destinationBucketSuffix* (consumer) | Define the destination bucket suffix to use when an object must be moved and moveAfterRead is set to true. |  | String
+| *doneFileName* (consumer) | If provided, Camel will only consume files if a done file exists. |  | String
+| *fileName* (consumer) | To get the object from the bucket with the given file name |  | String
+| *ignoreBody* (consumer) | If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will be put in the body. Setting this to true, will override any behavior defined by includeBody option. | false | boolean
+| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed, while in case of includeBody false then it will be up to the caller to close the S3Object [...]
+| *includeFolders* (consumer) | If it is true, the folders/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those | true | boolean
+| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean
+| *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *autocloseBody* (consumer) | If this option is true and includeBody is false, 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 false 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
+| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int
+| *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean
+| *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *multiPartUpload* (producer) | 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
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum
+| *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 8 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange, createDownloadLink |  | AWS2S3Operations
+| *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum
+| *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
+| *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean
+| *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload |  | long
+| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is enabled |  | String
+| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
+| *useCustomerKey* (producer) | Define if Customer Key must be used or not | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS S3 Storage Service endpoint is configured using URI syntax:
+
+----
+aws2-s3://bucketNameOrArn
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *bucketNameOrArn* | *Required* Bucket name or ARN |  | String
+|===
+
+
+=== Query Parameters (68 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonS3Client* (common) | *Autowired* Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. |  | S3Client
+| *amazonS3Presigner* (common) | *Autowired* An S3 Presigner for Request, used mainly in createDownloadLink operation |  | S3Presigner
+| *autoCreateBucket* (common) | Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfterRead option enabled and it will create the destinationBucket if it doesn't exist already. | false | boolean
+| *overrideEndpoint* (common) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *pojoRequest* (common) | If we want to use a POJO request as body or not | false | boolean
+| *policy* (common) | The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
+| *proxyHost* (common) | To define a proxy host when instantiating the SQS client |  | String
+| *proxyPort* (common) | Specify a proxy port to be used inside the client definition. |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the S3 client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (common) | The region in which S3 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
+| *trustAllCertificates* (common) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (common) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (common) | Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *customerAlgorithm* (common) | Define the customer algorithm to use in case CustomerKey is enabled |  | String
+| *customerKeyId* (common) | Define the id of Customer key to use in case CustomerKey is enabled |  | String
+| *customerKeyMD5* (common) | Define the MD5 of Customer key to use in case CustomerKey is enabled |  | String
+| *bridgeErrorHandler* (consumer) | 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
+| *deleteAfterRead* (consumer) | 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 AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3C [...]
+| *delimiter* (consumer) | The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *destinationBucket* (consumer) | Define the destination bucket where an object must be moved when moveAfterRead is set to true. |  | String
+| *destinationBucketPrefix* (consumer) | Define the destination bucket prefix to use when an object must be moved and moveAfterRead is set to true. |  | String
+| *destinationBucketSuffix* (consumer) | Define the destination bucket suffix to use when an object must be moved and moveAfterRead is set to true. |  | String
+| *doneFileName* (consumer) | If provided, Camel will only consume files if a done file exists. |  | String
+| *fileName* (consumer) | To get the object from the bucket with the given file name |  | String
+| *ignoreBody* (consumer) | If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will be put in the body. Setting this to true, will override any behavior defined by includeBody option. | false | boolean
+| *includeBody* (consumer) | If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed, while in case of includeBody false then it will be up to the caller to close the S3Object [...]
+| *includeFolders* (consumer) | If it is true, the folders/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those | true | boolean
+| *maxConnections* (consumer) | Set the maxConnections parameter in the S3 client configuration | 60 | int
+| *maxMessagesPerPoll* (consumer) | Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as unlimited. | 10 | int
+| *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean
+| *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
+| *autocloseBody* (consumer) | If this option is true and includeBody is false, 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 false 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
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
+| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
+| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int
+| *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean
+| *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *multiPartUpload* (producer) | 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
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum
+| *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 8 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange, createDownloadLink |  | AWS2S3Operations
+| *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum
+| *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
+| *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean
+| *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload |  | long
+| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is enabled |  | String
+| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
+| *useCustomerKey* (producer) | Define if Customer Key must be used or not | false | boolean
+| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
+| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
+| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
+| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
+| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
+| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
+| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
+| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
+| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler | none | Object
+| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
+| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
+| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
+| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required S3 component options
+
+You have to provide the amazonS3Client in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/s3[Amazon's S3].
+
+== Batch Consumer
+
+This component implements the Batch Consumer.
+
+This allows you for instance to know how many messages exists in this
+batch and for instance let the Aggregator
+aggregate this number of messages.
+
+== Usage
+
+For example in order to read file `hello.txt` from bucket `helloBucket`, use the following snippet:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
+  .to("file:/var/downloaded");
+--------------------------------------------------------------------------------
+
+=== Message headers evaluated by the S3 producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsS3BucketName` |`String` |The bucket Name which this object will be stored or which will be used for the current operation
+
+|`CamelAwsS3BucketDestinationName` |`String` |The bucket Destination Name which will be used for the current operation
+
+|`CamelAwsS3ContentLength` |`Long` |The content length of this object.
+
+|`CamelAwsS3ContentType` |`String` |The content type of this object.
+
+|`CamelAwsS3ContentControl` |`String` |The content control of this object.
+
+|`CamelAwsS3ContentDisposition` |`String` |The content disposition of this object.
+
+|`CamelAwsS3ContentEncoding` |`String` |The content encoding of this object.
+
+|`CamelAwsS3ContentMD5` |`String` |The md5 checksum of this object.
+
+|`CamelAwsS3DestinationKey` |`String` |The Destination key which will be used for the current operation
+
+|`CamelAwsS3Key` |`String` |The key under which this object will be stored or which will be used for the current operation
+
+|`CamelAwsS3LastModified` |`java.util.Date` |The last modified timestamp of this object.
+
+|`CamelAwsS3Operation` |`String` |The operation to perform. Permitted values are copyObject, deleteObject, listBuckets, deleteBucket, listObjects
+
+|`CamelAwsS3StorageClass` |`String` |The storage class of this object.
+
+|`CamelAwsS3CannedAcl` |`String` |The canned acl that will be applied to the object. see
+`software.amazon.awssdk.services.s3.model.ObjectCannedACL` for allowed
+values.
+
+|`CamelAwsS3Acl` |`software.amazon.awssdk.services.s3.model.BucketCannedACL` |A well constructed Amazon S3 Access Control List object.
+see `software.amazon.awssdk.services.s3.model.BucketCannedACL` for more details
+
+|`CamelAwsS3Headers` |`Map<String,String>` |Support to get or set custom objectMetadata headers.
+
+|`CamelAwsS3ServerSideEncryption` |String |Sets the server-side encryption algorithm when encrypting
+the object using AWS-managed keys. For example use AES256.
+
+|`CamelAwsS3VersionId` |`String` |The version Id of the object to be stored or returned from the current operation
+|`CamelAwsS3Metadata` |`Map<String, String>` |A map of metadata stored with the object in S3.
+|=======================================================================
+
+=== Message headers set by the S3 producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+|`CamelAwsS3ETag` |`String` |The ETag value for the newly uploaded object.
+
+|`CamelAwsS3VersionId` |`String` |The *optional* version ID of the newly uploaded object.
+
+
+|=======================================================================
+
+=== Message headers set by the S3 consumer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsS3Key` |`String` |The key under which this object is stored.
+
+|`CamelAwsS3BucketName` |`String` |The name of the bucket in which this object is contained.
+
+|`CamelAwsS3ETag` |`String` |The hex encoded 128-bit MD5 digest of the associated object according to
+RFC 1864. This data is used as an integrity check to verify that the
+data received by the caller is the same data that was sent by Amazon S3.
+
+|`CamelAwsS3LastModified` |`Date` |The value of the Last-Modified header, indicating the date and time at
+which Amazon S3 last recorded a modification to the associated object.
+
+|`CamelAwsS3VersionId` |`String` |The version ID of the associated Amazon S3 object if available. Version
+IDs are only assigned to objects when an object is uploaded to an Amazon
+S3 bucket that has object versioning enabled.
+
+|`CamelAwsS3ContentType` |`String` |The Content-Type HTTP header, which indicates the type of content stored
+in the associated object. The value of this header is a standard MIME
+type.
+
+|`CamelAwsS3ContentMD5` |`String` |The base64 encoded 128-bit MD5 digest of the associated object (content
+- not including headers) according to RFC 1864. This data is used as a
+message integrity check to verify that the data received by Amazon S3 is
+the same data that the caller sent.
+
+|`CamelAwsS3ContentLength` |`Long` |The Content-Length HTTP header indicating the size of the associated
+object in bytes.
+
+|`CamelAwsS3ContentEncoding` |`String` |The *optional* Content-Encoding HTTP header specifying what content
+encodings have been applied to the object and what decoding mechanisms
+must be applied in order to obtain the media-type referenced by the
+Content-Type field.
+
+|`CamelAwsS3ContentDisposition` |`String` |The *optional* Content-Disposition HTTP header, which specifies
+presentational information such as the recommended filename for the
+object to be saved as.
+
+|`CamelAwsS3ContentControl` |`String` |The *optional* Cache-Control HTTP header which allows the user to
+specify caching behavior along the HTTP request/reply chain.
+
+|`CamelAwsS3ServerSideEncryption` |String |The server-side encryption algorithm when encrypting the
+object using AWS-managed keys.
+|=======================================================================
+
+=== S3 Producer operations
+
+Camel-AWS2-S3 component provides the following operation on the producer side:
+
+- copyObject
+- deleteObject
+- listBuckets
+- deleteBucket
+- listObjects
+- getObject (this will return an S3Object instance)
+- getObjectRange (this will return an S3Object instance)
+- createDownloadLink
+
+If you don't specify an operation explicitly the producer will do:
+- a single file upload
+- a multipart upload if multiPartUpload option is enabled
+
+=== Advanced AmazonS3 configuration
+
+If your Camel Application is running behind a firewall or if you need to
+have more control over the `S3Client` instance configuration, you can
+create your own instance and refer to it in your Camel aws2-s3 component configuration:
+
+[source,java]
+--------------------------------------------------------------------------------
+from("aws2-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
+.to("mock:result");
+--------------------------------------------------------------------------------
+
+=== Use KMS with the S3 component
+
+To use AWS KMS to encrypt/decrypt data by using AWS infrastructure you can use the options introduced in 2.21.x like in the following example
+
+[source,java]
+--------------------------------------------------------------------------------
+from("file:tmp/test?fileName=test.txt")
+     .setHeader(S3Constants.KEY, constant("testFile"))
+     .to("aws2-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
+--------------------------------------------------------------------------------
+
+In this way you'll ask to S3, to use the KMS key 3f0637ad-296a-3dfe-a796-e60654fb128c, to encrypt the file test.txt. When you'll ask to download this file, the decryption will be done directly before the download.
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== S3 Producer Operation examples
+
+- Single Upload: This operation will upload a file to S3 based on the body content
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.KEY, "camel.txt");
+          exchange.getIn().setBody("Camel rocks!");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will upload the file camel.txt with the content "Camel rocks!" in the mycamelbucket bucket
+
+- Multipart Upload: This operation will perform a multipart upload of a file to S3 based on the body content
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(AWS2S3Constants.KEY, "empty.txt");
+          exchange.getIn().setBody(new File("src/empty.txt"));
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&multiPartUpload=true&autoCreateBucket=true&partSize=1048576")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will perform a multipart upload of the file empty.txt with based on the content the file src/empty.txt in the mycamelbucket bucket
+
+- CopyObject: this operation copy an object from one bucket to a different one
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.BUCKET_DESTINATION_NAME, "camelDestinationBucket");
+          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
+          exchange.getIn().setHeader(S3Constants.DESTINATION_KEY, "camelDestinationKey");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=copyObject")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will copy the object with the name expressed in the header camelDestinationKey to the camelDestinationBucket bucket, from the bucket mycamelbucket.
+
+- DeleteObject: this operation deletes an object from a bucket
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteObject")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will delete the object camelKey from the bucket mycamelbucket.
+
+- ListBuckets: this operation list the buckets for this account in this region
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start")
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will list the buckets for this account
+
+- DeleteBucket: this operation delete the bucket specified as URI parameter or header
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start")
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will delete the bucket mycamelbucket
+
+- ListObjects: this operation list object in a specific bucket
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start")
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will list the objects in the mycamelbucket bucket
+
+- GetObject: this operation get a single object in a specific bucket
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObject")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will return an S3Object instance related to the camelKey object in mycamelbucket bucket.
+
+- GetObjectRange: this operation get a single object range in a specific bucket
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
+          exchange.getIn().setHeader(S3Constants.RANGE_START, "0");
+          exchange.getIn().setHeader(S3Constants.RANGE_END, "9");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObjectRange")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will return an S3Object instance related to the camelKey object in mycamelbucket bucket, containing a the bytes from 0 to 9.
+
+- CreateDownloadLink: this operation will return a download link through S3 Presigner
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("direct:start").process(new Processor() {
+
+      @Override
+      public void process(Exchange exchange) throws Exception {
+          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
+      }
+  })
+  .to("aws2-s3://mycamelbucket?accessKey=xxx&secretKey=yyy&region=region&operation=createDownloadLink")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+This operation will return a download link url for the file camel-key in the bucket mycamelbucket and region region
+
+== Streaming Upload mode
+
+With the stream mode enabled users will be able to upload data to S3 without knowing ahead of time the dimension of the data, by leveraging multipart upload.
+The upload will be completed when: the batchSize has been completed or the batchMessageNumber has been reached.
+There are two possible naming strategy: progressive and random. With the progressive strategy each file will have the name composed by keyName option and a progressive counter, and eventually the file extension (if any), while with the random strategy a UUID will be added after keyName and eventually the file extension will appended.
+
+As an example:
+
+[source,java]
+--------------------------------------------------------------------------------
+from(kafka("topic1").brokers("localhost:9092"))
+        .log("Kafka Message is: ${body}")
+        .to(aws2S3("camel-bucket").streamingUploadMode(true).batchMessageNumber(25).namingStrategy(AWS2S3EndpointBuilderFactory.AWSS3NamingStrategyEnum.progressive).keyName("{{kafkaTopic1}}/{{kafkaTopic1}}.txt"));
+
+from(kafka("topic2").brokers("localhost:9092"))
+         .log("Kafka Message is: ${body}")
+         .to(aws2S3("camel-bucket").streamingUploadMode(true).batchMessageNumber(25).namingStrategy(AWS2S3EndpointBuilderFactory.AWSS3NamingStrategyEnum.progressive).keyName("{{kafkaTopic2}}/{{kafkaTopic2}}.txt"));
+--------------------------------------------------------------------------------
+
+The default size for a batch is 1 Mb, but you can adjust it according to your requirements.
+
+When you'll stop your producer route, the producer will take care of flushing the remaining buffered messaged and complete the upload.
+
+In Streaming upload you'll be able restart the producer from the point where it left. It's important to note that this feature is critical only when using the progressive naming strategy.
+
+By setting the restartingPolicy to lastPart, you will restart uploading files and contents from the last part number the producer left.
+
+As example: 
+- Start the route with progressive naming strategy and keyname equals to camel.txt, with batchMessageNumber equals to 20, and restartingPolicy equals to lastPart
+- Send 70 messages.
+- Stop the route
+- On your S3 bucket you should now see 4 files: camel.txt, camel-1.txt, camel-2.txt and camel-3.txt, the first three will have 20 messages, while the last one only 10.
+- Restart the route
+- Send 25 messages
+- Stop the route
+- You'll now have 2 other files in your bucket: camel-5.txt and camel-6.txt, the first with 20 messages and second with 5 messages.
+- Go ahead
+
+This won't be needed when using the random naming strategy.
+
+On the opposite you can specify the override restartingPolicy. In that case you'll be able to override whatever you written before (for that particular keyName) on your bucket.
+
+[NOTE]
+====
+In Streaming upload mode the only keyName option that will be taken into account is the endpoint option. Using the header will throw an NPE and this is done by design.
+Setting the header means potentially change the file name on each exchange and this is against the aim of the streaming upload producer. The keyName needs to be fixed and static. 
+The selected naming strategy will do the rest of the of the work.
+====
+
+== Bucket Autocreation
+
+With the option `autoCreateBucket` users are able to avoid the autocreation of an S3 Bucket in case it doesn't exist. The default for this option is `true`.
+If set to false any operation on a not-existent bucket in AWS won't be successful and an error will be returned.
+
+== Moving stuff between a bucket and another bucket
+
+Some users like to consume stuff from a bucket and move the content in a different one without using the copyObject feature of this component.
+If this is case for you, don't forget to remove the bucketName header from the incoming exchange of the consumer, otherwise the file will be always overwritten on the same
+original bucket.
+
+== MoveAfterRead consumer option
+
+In addition to deleteAfterRead it has been added another option, moveAfterRead. With this option enabled the consumed object will be moved to a target destinationBucket instead of being only deleted.
+This will require specifying the destinationBucket option. As example:
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&moveAfterRead=true&destinationBucket=myothercamelbucket")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+In this case the objects consumed will be moved to myothercamelbucket bucket and deleted from the original one (because of deleteAfterRead set to true as default).
+
+You have also the possibility of using a key prefix/suffix while moving the file to a different bucket. The options are destinationBucketPrefix and destinationBucketSuffix.
+
+Taking the above example, you could do something like:
+
+[source,java]
+--------------------------------------------------------------------------------
+  from("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&moveAfterRead=true&destinationBucket=myothercamelbucket&destinationBucketPrefix=RAW(pre-)&destinationBucketSuffix=RAW(-suff)")
+  .to("mock:result");
+--------------------------------------------------------------------------------
+
+In this case the objects consumed will be moved to myothercamelbucket bucket and deleted from the original one (because of deleteAfterRead set to true as default).
+
+So if the file name is test, in the myothercamelbucket you should see a file called pre-test-suff.
+
+== Using customer key as encryption
+
+We introduced also the customer key support (an alternative of using KMS). The following code shows an example.
+
+[source,java]
+--------------------------------------------------------------------------------
+String key = UUID.randomUUID().toString();
+byte[] secretKey = generateSecretKey();
+String b64Key = Base64.getEncoder().encodeToString(secretKey);
+String b64KeyMd5 = Md5Utils.md5AsBase64(secretKey);
+
+String awsEndpoint = "aws2-s3://mycamel?autoCreateBucket=false&useCustomerKey=true&customerKeyId=RAW(" + b64Key + ")&customerKeyMD5=RAW(" + b64KeyMd5 + ")&customerAlgorithm=" + AES256.name();
+
+from("direct:putObject")
+    .setHeader(AWS2S3Constants.KEY, constant("test.txt"))
+    .setBody(constant("Test"))
+    .to(awsEndpoint);
+--------------------------------------------------------------------------------
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS S3 there are multiple operations you can submit, as an example for List brokers request, you can do something like:
+
+[source,java]
+------------------------------------------------------------------------------------------------------
+from("direct:aws2-s3")
+     .setBody(ListObjectsRequest.builder().bucket(bucketName).build())
+     .to("aws2-s3://test?amazonS3Client=#amazonS3Client&operation=listObjects&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Create S3 client and add component to registry
+Sometimes you would want to perform some advanced configuration using AWS2S3Configuration which also allows to set the S3 client.
+You can create and set the S3 client in the component configuration as shown in the following example
+
+[source,java]
+--------------------------------------------------------------------------------
+String awsBucketAccessKey = "your_access_key";
+String awsBucketSecretKey = "your_secret_key";
+
+S3Client s3Client = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(awsBucketAccessKey, awsBucketSecretKey)))
+                .region(Region.US_EAST_1).build();
+
+AWS2S3Configuration configuration = new AWS2S3Configuration();
+configuration.setAmazonS3Client(s3Client);
+configuration.setAutoDiscoverClient(true);
+configuration.setBucketName("s3bucket2020");
+configuration.setRegion("us-east-1");
+--------------------------------------------------------------------------------
+
+Now you can configure the S3 component (using the configuration object created above) and add it to the registry in the
+configure method before initialization of routes.
+
+[source,java]
+--------------------------------------------------------------------------------
+AWS2S3Component s3Component = new AWS2S3Component(getContext());
+s3Component.setConfiguration(configuration);
+s3Component.setLazyStartProducer(true);
+camelContext.addComponent("aws2-s3", s3Component);
+--------------------------------------------------------------------------------
+
+Now your component will be used for all the operations implemented in camel routes.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-s3</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-s3-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ses-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ses-component.adoc
new file mode 100644
index 0000000..481f532
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-ses-component.adoc
@@ -0,0 +1,204 @@
+[[aws2-ses-component]]
+= AWS Simple Email Service (SES) Component
+:docTitle: AWS Simple Email Service (SES)
+:artifactId: camel-aws2-ses
+:description: Send e-mails through AWS SES service using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-ses.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 SES component supports sending emails with
+https://aws.amazon.com/ses[Amazon's SES] service.
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon SES. More information is available at
+https://aws.amazon.com/ses[Amazon SES].
+
+== URI Format
+
+------------------------
+aws2-ses://from[?options]
+------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+// component options: START
+== Component Options
+
+
+The AWS Simple Email Service (SES) component supports 18 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonSESClient* (producer) | *Autowired* To use the AmazonSimpleEmailService as the client |  | SesClient
+| *configuration* (producer) | component configuration |  | Ses2Configuration
+| *lazyStartProducer* (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 creating and [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the SES client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SES client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SES client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which SES 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
+| *replyToAddresses* (producer) | List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header. |  | List
+| *returnPath* (producer) | The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header. |  | String
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSesSubject' is not present. |  | String
+| *to* (producer) | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Ses client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Simple Email Service (SES) endpoint is configured using URI syntax:
+
+----
+aws2-ses:from
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *from* | *Required* The sender's email address. |  | String
+|===
+
+
+=== Query Parameters (16 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonSESClient* (producer) | *Autowired* To use the AmazonSimpleEmailService as the client |  | SesClient
+| *lazyStartProducer* (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 creating and [...]
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the SES client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SES client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SES client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which SES 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
+| *replyToAddresses* (producer) | List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header. |  | List
+| *returnPath* (producer) | The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header. |  | String
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSesSubject' is not present. |  | String
+| *to* (producer) | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the Ses client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+Required SES component options
+
+You have to provide the amazonSESClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/ses[Amazon's SES].
+
+== Usage
+
+=== Static credentials vs Default Credential Provider
+
+You have the possibility of avoiding the usage of explicit static credentials, by specifying the useDefaultCredentialsProvider option and set it to true.
+
+ - Java system properties - aws.accessKeyId and aws.secretKey
+ - Environment variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
+ - Web Identity Token from AWS STS.
+ - The shared credentials and config files.
+ - Amazon ECS container credentials - loaded from the Amazon ECS if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set.
+ - Amazon EC2 Instance profile credentials. 
+
+For more information about this you can look at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html[AWS credentials documentation]
+
+=== Message headers evaluated by the SES producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsSesFrom` |`String` |The sender's email address.
+
+|`CamelAwsSesTo` |`List<String>` |The destination(s) for this email.
+
+|`CamelAwsSesSubject` |`String` |The subject of the message.
+
+|`CamelAwsSesReplyToAddresses` |`List<String>` |The reply-to email address(es) for the message.
+
+|`CamelAwsSesReturnPath` |`String` |The email address to which bounce notifications are to be forwarded.
+
+|`CamelAwsSesHtmlEmail` |`Boolean` |The flag to show if email content is HTML.
+|=======================================================================
+
+=== Message headers set by the SES producer
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|`CamelAwsSesMessageId` |`String` |The Amazon SES message ID.
+|=======================================================================
+
+=== Advanced SesClient configuration
+
+If you need more control over the `SesClient` instance
+configuration you can create your own instance and refer to it from the
+URI:
+
+[source,java]
+-------------------------------------------------------------
+from("direct:start")
+.to("aws2-ses://example@example.com?amazonSESClient=#client");
+-------------------------------------------------------------
+
+The `#client` refers to a `SesClient` in the Registry.
+
+== Producer Examples
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:start")
+    .setHeader(SesConstants.SUBJECT, constant("This is my subject"))
+    .setHeader(SesConstants.TO, constant(Collections.singletonList("to@example.com"))
+    .setBody(constant("This is my message text."))
+    .to("aws2-ses://from@example.com?accessKey=xxx&secretKey=yyy");
+--------------------------------------------------------------------------------
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-ses</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+
+include::{page-component-version}@camel-spring-boot::page$aws2-ses-starter.adoc[]
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-sns-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-sns-component.adoc
new file mode 100644
index 0000000..be417fc
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-sns-component.adoc
@@ -0,0 +1,280 @@
+[[aws2-sns-component]]
+= AWS Simple Notification System (SNS) Component
+:docTitle: AWS Simple Notification System (SNS)
+:artifactId: camel-aws2-sns
+:description: Send messages to an AWS Simple Notification Topic using AWS SDK version 2.x.
+:since: 3.1
+:supportLevel: Stable
+:component-header: Only producer is supported
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws2-sns.adoc[opts=optional]
+//Manually maintained attributes
+:group: AWS
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 SNS component allows messages to be sent to an
+https://aws.amazon.com/sns[Amazon Simple Notification] Topic. The
+implementation of the Amazon API is provided by
+the https://aws.amazon.com/sdkforjava/[AWS SDK].
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon SNS. More information is available at
+https://aws.amazon.com/sns[Amazon SNS].
+
+== URI Format
+
+-----------------------------
+aws2-sns://topicNameOrArn[?options]
+-----------------------------
+
+The topic will be created if they don't already exists. +
+ You can append query options to the URI in the following format,
+`?options=value&option2=value&...`
+
+== URI Options
+
+// component options: START
+== Component Options
+
+
+The AWS Simple Notification System (SNS) component supports 24 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonSNSClient* (producer) | *Autowired* To use the AmazonSNS as the client |  | SnsClient
+| *autoCreateTopic* (producer) | Setting the autocreation of the topic | false | boolean
+| *configuration* (producer) | Component configuration |  | Sns2Configuration
+| *kmsMasterKeyId* (producer) | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *messageDeduplicationIdStrategy* (producer) | Only for FIFO Topic. 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. There are 2 enums and the value can be one of: useExchangeId, useContentBasedDeduplication | useExchangeId | String
+| *messageGroupIdStrategy* (producer) | Only for FIFO Topic. 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. There are 3 enums and the value can be one of: useConstant, useExchangeId, usePropertyValue |  | String
+| *messageStructure* (producer) | The message structure to use such as json |  | String
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *policy* (producer) | The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the SNS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SNS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SNS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueUrl* (producer) | The queueUrl to subscribe to |  | String
+| *region* (producer) | The region in which SNS 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
+| *serverSideEncryptionEnabled* (producer) | Define if Server Side Encryption is enabled or not on the topic | false | boolean
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |  | String
+| *subscribeSNStoSQS* (producer) | Define if the subscription between SNS Topic and SQS must be done or not | false | boolean
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the SNS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in. | false | boolean
+| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+// endpoint options: START
+== Endpoint Options
+
+The AWS Simple Notification System (SNS) endpoint is configured using URI syntax:
+
+----
+aws2-sns:topicNameOrArn
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *topicNameOrArn* | *Required* Topic name or ARN |  | String
+|===
+
+
+=== Query Parameters (23 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *amazonSNSClient* (producer) | *Autowired* To use the AmazonSNS as the client |  | SnsClient
+| *autoCreateTopic* (producer) | Setting the autocreation of the topic | false | boolean
+| *headerFilterStrategy* (producer) | To use a custom HeaderFilterStrategy to map headers to/from Camel. |  | HeaderFilterStrategy
+| *kmsMasterKeyId* (producer) | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
+| *lazyStartProducer* (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 creating and [...]
+| *messageDeduplicationIdStrategy* (producer) | Only for FIFO Topic. 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. There are 2 enums and the value can be one of: useExchangeId, useContentBasedDeduplication | useExchangeId | String
+| *messageGroupIdStrategy* (producer) | Only for FIFO Topic. 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. There are 3 enums and the value can be one of: useConstant, useExchangeId, usePropertyValue |  | String
+| *messageStructure* (producer) | The message structure to use such as json |  | String
+| *overrideEndpoint* (producer) | Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option | false | boolean
+| *policy* (producer) | The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the SNS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SNS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SNS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueUrl* (producer) | The queueUrl to subscribe to |  | String
+| *region* (producer) | The region in which SNS 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
+| *serverSideEncryptionEnabled* (producer) | Define if Server Side Encryption is enabled or not on the topic | false | boolean
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |  | String
+| *subscribeSNStoSQS* (producer) | Define if the subscription between SNS Topic and SQS must be done or not | false | boolean
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *uriEndpointOverride* (producer) | Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option |  | String
+| *useDefaultCredentialsProvider* (producer) | Set whether the SNS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in. | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+Required SNS component options
+
+You have to provide the amazonSNSClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/sns[Amazon's SNS].
+
+== Usage
+
... 152279 lines suppressed ...