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

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

commit 4f0d5d4e024cc5619d565fbb1f464db9b14403d1
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Feb 12 12:22:38 2020 +0100

    CAMEL-14492: Regen camel-etcd starter
---
 .../camel/springboot/catalog/components.properties |  5 ++
 .../springboot/catalog/components/aws2-ddb.json    | 48 ++++++++++++++++
 .../catalog/components/aws2-ddbstream.json         | 63 ++++++++++++++++++++
 .../springboot/catalog/components/etcd-keys.json   | 45 +++++++++++++++
 .../springboot/catalog/components/etcd-stats.json  | 67 ++++++++++++++++++++++
 .../springboot/catalog/components/etcd-watch.json  | 48 ++++++++++++++++
 .../camel/springboot/catalog/components/ftp.json   |  4 +-
 .../camel/springboot/catalog/components/ftps.json  |  4 +-
 .../camel/springboot/catalog/components/sftp.json  |  4 +-
 components-starter/README.adoc                     | 17 +++++-
 10 files changed, 298 insertions(+), 7 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
index c5741d3..ee8361a 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
@@ -37,6 +37,8 @@ aws-sqs
 aws-swf
 aws-translate
 aws2-cw
+aws2-ddb
+aws2-ddbstream
 aws2-ec2
 aws2-ecs
 aws2-eks
@@ -99,6 +101,9 @@ ehcache
 elasticsearch-rest
 elsql
 elytron
+etcd-keys
+etcd-stats
+etcd-watch
 exec
 facebook
 fhir
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddb.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddb.json
new file mode 100644
index 0000000..f4af812
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddb.json
@@ -0,0 +1,48 @@
+{
+  "component": {
+    "kind": "component",
+    "scheme": "aws2-ddb",
+    "extendsScheme": "",
+    "syntax": "aws2-ddb:tableName",
+    "title": "AWS 2 DynamoDB",
+    "description": "The aws2-ddb component is used for storing and retrieving 
data from Amazon's DynamoDB service.",
+    "label": "cloud,database,nosql",
+    "deprecated": false,
+    "async": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "javaType": "org.apache.camel.component.aws2.ddb.Ddb2Component",
+    "firstVersion": "3.1.0",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-aws2-ddb-starter",
+    "version": "3.1.0-SNAPSHOT"
+  },
+  "componentProperties": {
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"Amazon AWS Access Key" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the r [...]
+    "region": { "kind": "property", "displayName": "Region", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
region in which DDB client needs to work" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"Amazon AWS Secret Key" },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the component should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"deprecated": false, "secret": false, "description": "The AWS DDB default 
configuration" }
+  },
+  "properties": {
+    "tableName": { "kind": "path", "displayName": "Table Name", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "secret": 
false, "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": 
"configuration", "description": "The name of the table currently worked with." 
},
+    "amazonDDBClient": { "kind": "parameter", "displayName": "Amazon 
DDBClient", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"software.amazon.awssdk.services.dynamodb.DynamoDbClient", "deprecated": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": 
"configuration", "description": "To use the AmazonDynamoDB as the client" },
+    "consistentRead": { "kind": "parameter", "displayName": "Consistent Read", 
"group": "producer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": 
"configuration", "description": "Determines whether or not strong consistency 
should be enforced when data is read." },
+    "keyAttributeName": { "kind": "parameter", "displayName": "Key Attribute 
Name", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "Attribute name when 
creating table" },
+    "keyAttributeType": { "kind": "parameter", "displayName": "Key Attribute 
Type", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "Attribute type when 
creating table" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the  [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": 
"producer", "label": "", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.aws2.ddb.Ddb2Operations", "enum": [ 
"BatchGetItems", "DeleteItem", "DeleteTable", "DescribeTable", "GetItem", 
"PutItem", "Query", "Scan", "UpdateItem", "UpdateTable" ], "deprecated": false, 
"secret": false, "defaultValue": "PutItem", "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration",  [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": 
"configuration", "description": "To define a proxy host when instantiating the 
DDB client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": 
"producer", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "The region in which 
DynamoDB client needs to work. When using this parameter, the configuration 
will expect the lowercase name of the region (for  [...]
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", 
"group": "producer", "label": "", "required": false, "type": "object", 
"javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" 
], "deprecated": false, "secret": false, "defaultValue": "HTTPS", 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "To define a proxy 
protocol when instantiating the DDB client" },
+    "readCapacity": { "kind": "parameter", "displayName": "Read Capacity", 
"group": "producer", "label": "", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "The provisioned 
throughput to reserve for reading resources from your table" },
+    "region": { "kind": "parameter", "displayName": "Region", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": 
"configuration", "description": "The region in which DDB client needs to work" 
},
+    "writeCapacity": { "kind": "parameter", "displayName": "Write Capacity", 
"group": "producer", "label": "", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "The provisioned 
throughput to reserved for writing resources to your table" },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the endpoint should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddbstream.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddbstream.json
new file mode 100644
index 0000000..49c992b
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ddbstream.json
@@ -0,0 +1,63 @@
+{
+  "component": {
+    "kind": "component",
+    "scheme": "aws2-ddbstream",
+    "extendsScheme": "",
+    "syntax": "aws2-ddbstream:tableName",
+    "title": "AWS 2 DynamoDB Streams",
+    "description": "The aws2-ddbstream component is used for working with 
Amazon DynamoDB Streams.",
+    "label": "cloud,messaging,streams",
+    "deprecated": false,
+    "async": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "javaType": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamComponent",
+    "firstVersion": "3.1.0",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-aws2-ddb-starter",
+    "version": "3.1.0-SNAPSHOT"
+  },
+  "componentProperties": {
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": 
"consumer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"Amazon AWS Access Key" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by [...]
+    "region": { "kind": "property", "displayName": "Region", "group": 
"consumer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"Amazon AWS Region" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": 
"consumer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"Amazon AWS Secret Key" },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the component should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"deprecated": false, "secret": false, "description": "The AWS DDB stream 
default configuration" }
+  },
+  "properties": {
+    "tableName": { "kind": "path", "displayName": "Table Name", "group": 
"consumer", "label": "consumer", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Name of the dynamodb 
table" },
+    "amazonDynamoDbStreamsClient": { "kind": "parameter", "displayName": 
"Amazon Dynamo Db Streams Client", "group": "consumer", "label": "consumer", 
"required": false, "type": "object", "javaType": 
"software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient", 
"deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Amazon DynamoDB client 
to use for a [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled b [...]
+    "iteratorType": { "kind": "parameter", "displayName": "Iterator Type", 
"group": "consumer", "label": "consumer", "required": false, "type": "object", 
"javaType": "software.amazon.awssdk.services.dynamodb.model.ShardIteratorType", 
"enum": [ "TRIM_HORIZON", "LATEST", "AT_SEQUENCE_NUMBER", 
"AFTER_SEQUENCE_NUMBER", "null" ], "deprecated": false, "secret": false, 
"defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configura 
[...]
+    "maxResultsPerRequest": { "kind": "parameter", "displayName": "Max Results 
Per Request", "group": "consumer", "label": "consumer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Maximum number of 
records that will be fetched in each poll" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": 
"consumer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the DDBStreams client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": 
"consumer", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "To define a proxy port 
when instantiating the DDBStreams client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", 
"group": "consumer", "label": "", "required": false, "type": "object", 
"javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" 
], "deprecated": false, "secret": false, "defaultValue": "HTTPS", 
"configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "To define a proxy 
protocol when instantiating the DDBS [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": 
"consumer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "The region in which 
DDBStreams client needs to work" },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": 
false, "defaultValue": false, "description": "If the polling consumer did not 
poll any files, you can enable this option to send an empty message (no body) 
instead." },
+    "sequenceNumberProvider": { "kind": "parameter", "displayName": "Sequence 
Number Provider", "group": "consumer", "label": "consumer", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider", 
"deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Provider for the 
sequence number when using one of th [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation before an Exchange h [...]
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the endpoint should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff 
Error Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"secret": false, "description": "The number of subsequent error polls (failed 
due some error) that should happen before the backoffMultipler should kick-in." 
},
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff 
Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"secret": false, "description": "The number of subsequent idle polls that 
should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff 
Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "secret": 
false, "description": "To let the scheduled polling consumer backoff if there 
has been a number of subsequent idles\/errors in a row. The multiplier is then 
the number of polls that will be skipped before the next actual attempt is 
happening again. When this option  [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "500", "description": "Milliseconds before the next poll. You 
can also specify time values using units, such as 60s (60 seconds), 5m30s (5 
minutes and 30 seconds), and 1h (1 hour)." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "If greedy is enabled, then the 
ScheduledPollConsumer will run immediately again, if the previous run polled 1 
or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "1000", "description": "Milliseconds before the first poll 
starts. You can also specify time values using units, such as 60s (60 seconds), 
5m30s (5 minutes and 30 seconds), and 1h (1 hour)." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "0", "description": "Specifies a maximum limit of number of 
fires. So if you set it to 1, the scheduler will only fire once. If you set it 
to 5, it will only fire five times. A value of zero or negative means fire 
forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging 
Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ 
"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, 
"secret": false, "defaultValue": "TRACE", "description": "The consumer logs a 
start\/complete log line when it polls. This option allows you to configure the 
logging level for that." },
+    "scheduledExecutorService": { "kind": "parameter", "displayName": 
"Scheduled Executor Service", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "object", "javaType": 
"java.util.concurrent.ScheduledExecutorService", "deprecated": false, "secret": 
false, "description": "Allows for configuring a custom\/shared thread pool to 
use for the consumer. By default each consumer has its own single threaded 
thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "none", "spring", "quartz" 
], "deprecated": false, "secret": false, "defaultValue": "none", "description": 
"To use a cron scheduler from either camel-spring or camel-quartz component" },
+    "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler 
Properties", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": 
false, "secret": false, "description": "To configure additional properties when 
using a custom scheduler or any of the Quartz, Spring based scheduler." },
+    "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": "true", "description": "Whether the scheduler should be auto 
started." },
+    "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", 
"MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], 
"deprecated": false, "secret": false, "defaultValue": "MILLISECONDS", 
"description": "Time unit for initialDelay and delay options." },
+    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": "true", "description": "Controls if fixed delay or fixed rate 
is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": 
"org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-keys.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-keys.json
new file mode 100644
index 0000000..ca23bc5
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-keys.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "scheme": "etcd-keys",
+    "extendsScheme": "",
+    "syntax": "etcd-keys:path",
+    "title": "Etcd Keys",
+    "description": "Camel Etcd support",
+    "label": "clustering,database",
+    "deprecated": false,
+    "async": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "javaType": "org.apache.camel.component.etcd.EtcdKeysComponent",
+    "firstVersion": "2.18.0",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-etcd-starter",
+    "version": "3.1.0-SNAPSHOT"
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the r [...]
+    "password": { "kind": "property", "displayName": "Password", "group": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
password to use for basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context 
Parameters", "group": "producer", "required": false, "type": "object", 
"javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": 
false, "secret": false, "description": "To configure security using 
SSLContextParameters." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "producer", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "To set the URIs the 
client connects." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
user name to use for basic authentication." },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the component should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": 
false, "secret": false, "description": "Sets the common configuration shared 
among endpoints" },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": "false", "description": "Enable usage 
of global SSL context parameters." }
+  },
+  "properties": {
+    "path": { "kind": "path", "displayName": "Path", "group": "producer", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
path the endpoint refers to" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the  [...]
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"producer", "label": "", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "To apply an action 
recursively." },
+    "servicePath": { "kind": "parameter", "displayName": "Service Path", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"defaultValue": "\/services\/", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"producer", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Long", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the maximum time an action could take 
to complete." },
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", 
"group": "producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "java.lang.Integer", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "To set the lifespan of a 
key in milliseconds." },
+    "uris": { "kind": "parameter", "displayName": "Uris", "group": "producer", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "defaultValue": 
"http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the URIs the client connects." },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the endpoint should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The password to use for 
basic authentication." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context 
Parameters", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To configure security using 
SSLContextParameters." },
+    "userName": { "kind": "parameter", "displayName": "User Name", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The user name to use for 
basic authentication." }
+  }
+}
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-stats.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-stats.json
new file mode 100644
index 0000000..b86c6e6
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-stats.json
@@ -0,0 +1,67 @@
+{
+  "component": {
+    "kind": "component",
+    "scheme": "etcd-stats",
+    "extendsScheme": "",
+    "syntax": "etcd-stats:path",
+    "title": "Etcd Stats",
+    "description": "The camel etcd component allows you to work with Etcd, a 
distributed reliable key-value store.",
+    "label": "clustering,database",
+    "deprecated": false,
+    "async": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "javaType": "org.apache.camel.component.etcd.EtcdStatsComponent",
+    "firstVersion": "2.18.0",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-etcd-starter",
+    "version": "3.1.0-SNAPSHOT"
+  },
+  "componentProperties": {
+    "password": { "kind": "property", "displayName": "Password", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "The password to use for 
basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context 
Parameters", "group": "common", "required": false, "type": "object", 
"javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": 
false, "secret": false, "description": "To configure security using 
SSLContextParameters." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "common", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "To set the URIs the 
client connects." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": 
"common", "required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "The user name to use for 
basic authentication." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the r [...]
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the component should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": 
false, "secret": false, "description": "Sets the common configuration shared 
among endpoints" },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": "false", "description": "Enable usage 
of global SSL context parameters." }
+  },
+  "properties": {
+    "path": { "kind": "path", "displayName": "Path", "group": "common", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
path the endpoint refers to" },
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"common", "label": "", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "To apply an action 
recursively." },
+    "servicePath": { "kind": "parameter", "displayName": "Service Path", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"defaultValue": "\/services\/", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"common", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Long", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the maximum time an action could take 
to complete." },
+    "uris": { "kind": "parameter", "displayName": "Uris", "group": "common", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "defaultValue": 
"http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the URIs the client connects." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled b [...]
+    "sendEmptyExchangeOnTimeout": { "kind": "parameter", "displayName": "Send 
Empty Exchange On Timeout", "group": "consumer", "label": "consumer", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To send an empty message in case of timeout 
watching for a key." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": 
false, "defaultValue": false, "description": "If the polling consumer did not 
poll any files, you can enable this option to send an empty message (no body) 
instead." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "fromIndex": { "kind": "parameter", "displayName": "From Index", "group": 
"consumer (advanced)", "label": "consumer,advanced", "required": false, "type": 
"integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, 
"defaultValue": "0", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "The index to watch from" },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation before an Exchange h [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a producer may otherwise 
fail during starting and cause the  [...]
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", 
"group": "producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "java.lang.Integer", "deprecated": false, "secret": false, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "To set the lifespan of a 
key in milliseconds." },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the endpoint should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff 
Error Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"secret": false, "description": "The number of subsequent error polls (failed 
due some error) that should happen before the backoffMultipler should kick-in." 
},
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff 
Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"secret": false, "description": "The number of subsequent idle polls that 
should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff 
Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "secret": 
false, "description": "To let the scheduled polling consumer backoff if there 
has been a number of subsequent idles\/errors in a row. The multiplier is then 
the number of polls that will be skipped before the next actual attempt is 
happening again. When this option  [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "500", "description": "Milliseconds before the next poll. You 
can also specify time values using units, such as 60s (60 seconds), 5m30s (5 
minutes and 30 seconds), and 1h (1 hour)." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "If greedy is enabled, then the 
ScheduledPollConsumer will run immediately again, if the previous run polled 1 
or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "1000", "description": "Milliseconds before the first poll 
starts. You can also specify time values using units, such as 60s (60 seconds), 
5m30s (5 minutes and 30 seconds), and 1h (1 hour)." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "secret": false, 
"defaultValue": "0", "description": "Specifies a maximum limit of number of 
fires. So if you set it to 1, the scheduler will only fire once. If you set it 
to 5, it will only fire five times. A value of zero or negative means fire 
forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging 
Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ 
"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, 
"secret": false, "defaultValue": "TRACE", "description": "The consumer logs a 
start\/complete log line when it polls. This option allows you to configure the 
logging level for that." },
+    "scheduledExecutorService": { "kind": "parameter", "displayName": 
"Scheduled Executor Service", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "object", "javaType": 
"java.util.concurrent.ScheduledExecutorService", "deprecated": false, "secret": 
false, "description": "Allows for configuring a custom\/shared thread pool to 
use for the consumer. By default each consumer has its own single threaded 
thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"string", "javaType": "java.lang.String", "enum": [ "none", "spring", "quartz" 
], "deprecated": false, "secret": false, "defaultValue": "none", "description": 
"To use a cron scheduler from either camel-spring or camel-quartz component" },
+    "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler 
Properties", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "object", "javaType": "java.util.Map<java.lang.String, 
java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": 
false, "secret": false, "description": "To configure additional properties when 
using a custom scheduler or any of the Quartz, Spring based scheduler." },
+    "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": "true", "description": "Whether the scheduler should be auto 
started." },
+    "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", 
"MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], 
"deprecated": false, "secret": false, "defaultValue": "MILLISECONDS", 
"description": "Time unit for initialDelay and delay options." },
+    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": "true", "description": "Controls if fixed delay or fixed rate 
is used. See ScheduledExecutorService in JDK for details." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The password to use for 
basic authentication." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context 
Parameters", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To configure security using 
SSLContextParameters." },
+    "userName": { "kind": "parameter", "displayName": "User Name", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The user name to use for 
basic authentication." }
+  }
+}
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-watch.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-watch.json
new file mode 100644
index 0000000..83ccb37
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/etcd-watch.json
@@ -0,0 +1,48 @@
+{
+  "component": {
+    "kind": "component",
+    "scheme": "etcd-watch",
+    "extendsScheme": "",
+    "syntax": "etcd-watch:path",
+    "title": "Etcd Watch",
+    "description": "The camel etcd component allows you to work with Etcd, a 
distributed reliable key-value store.",
+    "label": "clustering,database",
+    "deprecated": false,
+    "async": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "javaType": "org.apache.camel.component.etcd.EtcdWatchComponent",
+    "firstVersion": "2.18.0",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-etcd-starter",
+    "version": "3.1.0-SNAPSHOT"
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled by [...]
+    "password": { "kind": "property", "displayName": "Password", "group": 
"consumer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
password to use for basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context 
Parameters", "group": "consumer", "required": false, "type": "object", 
"javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": 
false, "secret": false, "description": "To configure security using 
SSLContextParameters." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "consumer", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "To set the URIs the 
client connects." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": 
"consumer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
user name to use for basic authentication." },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the component should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "configuration": { "kind": "property", "displayName": "Configuration", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": 
false, "secret": false, "description": "Sets the common configuration shared 
among endpoints" },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": "false", "description": "Enable usage 
of global SSL context parameters." }
+  },
+  "properties": {
+    "path": { "kind": "path", "displayName": "Path", "group": "consumer", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": "The 
path the endpoint refers to" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions occurred while the 
consumer is trying to pickup incoming messages, or the likes, will now be 
processed as a message and handled b [...]
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"consumer", "label": "", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "To apply an action 
recursively." },
+    "sendEmptyExchangeOnTimeout": { "kind": "parameter", "displayName": "Send 
Empty Exchange On Timeout", "group": "consumer", "label": "consumer", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To send an empty message in case of timeout 
watching for a key." },
+    "servicePath": { "kind": "parameter", "displayName": "Service Path", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"defaultValue": "\/services\/", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"consumer", "label": "", "required": false, "type": "integer", "javaType": 
"java.lang.Long", "deprecated": false, "secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the maximum time an action could take 
to complete." },
+    "uris": { "kind": "parameter", "displayName": "Uris", "group": "consumer", 
"label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "defaultValue": 
"http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To set the URIs the client connects." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "fromIndex": { "kind": "parameter", "displayName": "From Index", "group": 
"consumer (advanced)", "label": "consumer,advanced", "required": false, "type": 
"integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, 
"defaultValue": "0", "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "The index to watch from" },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic 
Property Binding", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the endpoint should use basic 
property binding (Camel 2.x) or the newer property binding with additional 
capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The password to use for 
basic authentication." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context 
Parameters", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": 
"configuration", "description": "To configure security using 
SSLContextParameters." },
+    "userName": { "kind": "parameter", "displayName": "User Name", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", 
"configurationField": "configuration", "description": "The user name to use for 
basic authentication." }
+  }
+}
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftp.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftp.json
index 27e4a07..40fb72b 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftp.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftp.json
@@ -48,7 +48,7 @@
     "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "If a directory, will look for files in all the 
sub-directories as well." },
     "resumeDownload": { "kind": "parameter", "displayName": "Resume Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "Configures whether resume download is enabled. This must 
be supported by the FTP server (almost all FTP servers support it). In addition 
the options localWorkDirectory must be configured so downloaded files are 
stored in a local dire [...]
     "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": 
false, "defaultValue": false, "description": "If the polling consumer did not 
poll any files, you can enable this option to send an empty message (no body) 
instead." },
-    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are st [...]
+    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are st [...]
     "download": { "kind": "parameter", "displayName": "Download", "group": 
"consumer (advanced)", "label": "consumer,advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the FTP consumer should download 
the file. If this option is set to false, then the message body will be null, 
but the consumer will still trigger a Camel Exchange that has details about the 
file such as file name, fil [...]
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
@@ -87,7 +87,7 @@
     "reconnectDelay": { "kind": "parameter", "displayName": "Reconnect Delay", 
"group": "advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "secret": false, "description": "Delay 
in millis Camel will wait before performing a reconnect attempt." },
     "siteCommand": { "kind": "parameter", "displayName": "Site Command", 
"group": "advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets optional site 
command(s) to be executed after successful login. Multiple site commands can be 
separated using a new line character." },
     "soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"300000", "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets the so timeout FTP 
and FTPS Only for Camel 2.4. SFTP for Camel 2.14.3\/2.15.3\/2.16 onwards. Is 
the SocketOptions.SO_TI [...]
-    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when u [...]
+    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when u [...]
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
     "throwExceptionOnConnectFailed": { "kind": "parameter", "displayName": 
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Should an exception be 
thrown if connection failed (exhausted) By default except [...]
     "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"30000", "configurationClass": 
"org.apache.camel.component.file.remote.FtpConfiguration", 
"configurationField": "configuration", "description": "Sets the data timeout 
for waiting for reply Used only by FTPClient" },
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftps.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftps.json
index 08fce80..86ee7f2 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftps.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ftps.json
@@ -49,7 +49,7 @@
     "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "If a directory, will look for files in all the 
sub-directories as well." },
     "resumeDownload": { "kind": "parameter", "displayName": "Resume Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "Configures whether resume download is enabled. This must 
be supported by the FTP server (almost all FTP servers support it). In addition 
the options localWorkDirectory must be configured so downloaded files are 
stored in a local dire [...]
     "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": 
false, "defaultValue": false, "description": "If the polling consumer did not 
poll any files, you can enable this option to send an empty message (no body) 
instead." },
-    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are s [...]
+    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are s [...]
     "download": { "kind": "parameter", "displayName": "Download", "group": 
"consumer (advanced)", "label": "consumer,advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the FTP consumer should download 
the file. If this option is set to false, then the message body will be null, 
but the consumer will still trigger a Camel Exchange that has details about the 
file such as file name, fil [...]
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
@@ -88,7 +88,7 @@
     "reconnectDelay": { "kind": "parameter", "displayName": "Reconnect Delay", 
"group": "advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "secret": false, "description": "Delay 
in millis Camel will wait before performing a reconnect attempt." },
     "siteCommand": { "kind": "parameter", "displayName": "Site Command", 
"group": "advanced", "label": "advanced", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets optional site 
command(s) to be executed after successful login. Multiple site commands can be 
separated using a new line character." },
     "soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"300000", "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets the so timeout FTP 
and FTPS Only for Camel 2.4. SFTP for Camel 2.14.3\/2.15.3\/2.16 onwards. Is 
the SocketOptions.SO_T [...]
-    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when  [...]
+    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when  [...]
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
     "throwExceptionOnConnectFailed": { "kind": "parameter", "displayName": 
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Should an exception be 
thrown if connection failed (exhausted) By default excep [...]
     "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"30000", "configurationClass": 
"org.apache.camel.component.file.remote.FtpsConfiguration", 
"configurationField": "configuration", "description": "Sets the data timeout 
for waiting for reply Used only by FTPClient" },
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/sftp.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/sftp.json
index 7e070d9..ab6f03f 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/sftp.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/sftp.json
@@ -44,7 +44,7 @@
     "preSort": { "kind": "parameter", "displayName": "Pre Sort", "group": 
"consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "When pre-sort is enabled then the consumer will sort the 
file and directory names during polling, that was retrieved from the file 
system. You may want to do this in case you need to operate on the files in a 
sorted order. The pre-sort is executed [...]
     "recursive": { "kind": "parameter", "displayName": "Recursive", "group": 
"consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "If a directory, will look for files in all the 
sub-directories as well." },
     "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send 
Empty Message When Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": 
false, "defaultValue": false, "description": "If the polling consumer did not 
poll any files, you can enable this option to send an empty message (no body) 
instead." },
-    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are s [...]
+    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the download method 
to use when not using a local working directory. If set to true, the remote 
files are s [...]
     "download": { "kind": "parameter", "displayName": "Download", "group": 
"consumer (advanced)", "label": "consumer,advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "secret": false, 
"defaultValue": false, "description": "Whether the FTP consumer should download 
the file. If this option is set to false, then the message body will be null, 
but the consumer will still trigger a Camel Exchange that has details about the 
file such as file name, fil [...]
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "secret": false, "description": "To let the consumer use a 
custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled 
then this option is not in use. By default the consumer will deal with [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
@@ -81,7 +81,7 @@
     "serverAliveCountMax": { "kind": "parameter", "displayName": "Server Alive 
Count Max", "group": "advanced", "label": "advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "secret": false, 
"defaultValue": "1", "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the number of 
keep-alive messages which may be sent without receiving any messages back from 
the serv [...]
     "serverAliveInterval": { "kind": "parameter", "displayName": "Server Alive 
Interval", "group": "advanced", "label": "advanced", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the interval 
(millis) to send a keep-alive message. If zero is specified, any keep-alive 
message must not be sent. The defa [...]
     "soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"300000", "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the so timeout FTP 
and FTPS Only for Camel 2.4. SFTP for Camel 2.14.3\/2.15.3\/2.16 onwards. Is 
the SocketOptions.SO_T [...]
-    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when  [...]
+    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": 
"advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"true", "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets whether we should 
stepwise change directories while traversing file structures when downloading 
files, or as well when  [...]
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", 
"group": "advanced", "label": "advanced", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
"false", "description": "Sets whether synchronous processing should be strictly 
used, or Camel is allowed to use asynchronous processing (if supported)." },
     "throwExceptionOnConnectFailed": { "kind": "parameter", "displayName": 
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Should an exception be 
thrown if connection failed (exhausted) By default excep [...]
     "timeout": { "kind": "parameter", "displayName": "Timeout", "group": 
"advanced", "label": "advanced", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "secret": false, "defaultValue": 
"30000", "configurationClass": 
"org.apache.camel.component.file.remote.SftpConfiguration", 
"configurationField": "configuration", "description": "Sets the data timeout 
for waiting for reply Used only by FTPClient" },
diff --git a/components-starter/README.adoc b/components-starter/README.adoc
index 8d774ca..6b9f67d 100644
--- a/components-starter/README.adoc
+++ b/components-starter/README.adoc
@@ -5,7 +5,7 @@ Apache Camel Spring Boot supports the following Camel artifacts 
as Spring Boot S
 == Camel Components
 
 // components: START
-Number of Camel components: 314 in 252 JAR artifacts (1 deprecated)
+Number of Camel components: 319 in 254 JAR artifacts (1 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -65,6 +65,12 @@ Number of Camel components: 314 in 252 JAR artifacts (1 
deprecated)
 | link:https://camel.apache.org/components/latest/aws2-cw-component.html[AWS 2 
CloudWatch] (camel-aws2-cw-starter) +
 `aws2-cw:namespace` | 3.1 | The aws2-cw component is used for sending metrics 
to an Amazon CloudWatch.
 
+| link:https://camel.apache.org/components/latest/aws2-ddb-component.html[AWS 
2 DynamoDB] (camel-aws2-ddb-starter) +
+`aws2-ddb:tableName` | 3.1 | The aws2-ddb component is used for storing and 
retrieving data from Amazon's DynamoDB service.
+
+| 
link:https://camel.apache.org/components/latest/aws2-ddbstream-component.html[AWS
 2 DynamoDB Streams] (camel-aws2-ddb-starter) +
+`aws2-ddbstream:tableName` | 3.1 | The aws2-ddbstream component is used for 
working with Amazon DynamoDB Streams.
+
 | link:https://camel.apache.org/components/latest/aws2-ec2-component.html[AWS 
2 EC2] (camel-aws2-ec2-starter) +
 `aws2-ec2:label` | 3.1 | The aws2-ec2 is used for managing Amazon EC2 
instances.
 
@@ -296,6 +302,15 @@ Number of Camel components: 314 in 252 JAR artifacts (1 
deprecated)
 | 
link:https://camel.apache.org/components/latest/elytron-component.html[Elytron] 
(camel-elytron-starter) +
 `elytron:httpURI` | 3.1 | The elytron component is allows you to work with the 
Elytron Security Framework
 
+| 
link:https://camel.apache.org/components/latest/etcd-keys-component.html[Etcd 
Keys] (camel-etcd-starter) +
+`etcd-keys:path` | 2.18 | Camel Etcd support
+
+| 
link:https://camel.apache.org/components/latest/etcd-stats-component.html[Etcd 
Stats] (camel-etcd-starter) +
+`etcd-stats:path` | 2.18 | The camel etcd component allows you to work with 
Etcd, a distributed reliable key-value store.
+
+| 
link:https://camel.apache.org/components/latest/etcd-watch-component.html[Etcd 
Watch] (camel-etcd-starter) +
+`etcd-watch:path` | 2.18 | The camel etcd component allows you to work with 
Etcd, a distributed reliable key-value store.
+
 | link:https://camel.apache.org/components/latest/exec-component.html[Exec] 
(camel-exec-starter) +
 `exec:executable` | 2.3 | The exec component can be used to execute OS system 
commands.
 

Reply via email to