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

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

commit 63bc62f3a8bd88a5248751480eac0711ca04a3eb
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Mar 11 10:42:24 2024 +0100

    CAMEL-20544 - Camel-AWS-Bedrock-Agent: Add a consumer for polling the 
status of ingestion or more ingestions
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../agent/BedrockAgentComponentConfigurer.java     |  12 ++
 .../agent/BedrockAgentEndpointConfigurer.java      | 120 ++++++++++++++++++++
 .../agent/BedrockAgentEndpointUriFactory.java      |  26 ++++-
 .../aws2/bedrock/agent/aws-bedrock-agent.json      | 124 ++++++++++++---------
 .../src/main/docs/aws-bedrock-agent-component.adoc |   2 +-
 .../bedrock/agent/BedrockAgentConfiguration.java   |  14 +++
 .../aws2/bedrock/agent/BedrockAgentConstants.java  |   4 +
 .../aws2/bedrock/agent/BedrockAgentEndpoint.java   |   6 +-
 .../agent/BedrockAgentIngestionJobConsumer.java    |  75 +++++++++++++
 .../agent/integration/BedrockAgentConsumerIT.java  |  58 ++++++++++
 10 files changed, 385 insertions(+), 56 deletions(-)

diff --git 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponentConfigurer.java
 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponentConfigurer.java
index 60ed9d62c41..83c6f017a25 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponentConfigurer.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponentConfigurer.java
@@ -34,6 +34,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "autowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
         case "bedrockagentclient":
         case "bedrockAgentClient": 
getOrCreateConfiguration(target).setBedrockAgentClient(property(camelContext, 
software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class, value)); 
return true;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": 
target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); 
return true;
         case "configuration": target.setConfiguration(property(camelContext, 
org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration.class, 
value)); return true;
         case "datasourceid":
         case "dataSourceId": 
getOrCreateConfiguration(target).setDataSourceId(property(camelContext, 
java.lang.String.class, value)); return true;
@@ -41,6 +43,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "healthCheckConsumerEnabled": 
target.setHealthCheckConsumerEnabled(property(camelContext, boolean.class, 
value)); return true;
         case "healthcheckproducerenabled":
         case "healthCheckProducerEnabled": 
target.setHealthCheckProducerEnabled(property(camelContext, boolean.class, 
value)); return true;
+        case "ingestionjobid":
+        case "ingestionJobId": 
getOrCreateConfiguration(target).setIngestionJobId(property(camelContext, 
java.lang.String.class, value)); return true;
         case "knowledgebaseid":
         case "knowledgeBaseId": 
getOrCreateConfiguration(target).setKnowledgeBaseId(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
@@ -93,6 +97,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "autowiredEnabled": return boolean.class;
         case "bedrockagentclient":
         case "bedrockAgentClient": return 
software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return boolean.class;
         case "configuration": return 
org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration.class;
         case "datasourceid":
         case "dataSourceId": return java.lang.String.class;
@@ -100,6 +106,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "healthCheckConsumerEnabled": return boolean.class;
         case "healthcheckproducerenabled":
         case "healthCheckProducerEnabled": return boolean.class;
+        case "ingestionjobid":
+        case "ingestionJobId": return java.lang.String.class;
         case "knowledgebaseid":
         case "knowledgeBaseId": return java.lang.String.class;
         case "lazystartproducer":
@@ -148,6 +156,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "autowiredEnabled": return target.isAutowiredEnabled();
         case "bedrockagentclient":
         case "bedrockAgentClient": return 
getOrCreateConfiguration(target).getBedrockAgentClient();
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "configuration": return target.getConfiguration();
         case "datasourceid":
         case "dataSourceId": return 
getOrCreateConfiguration(target).getDataSourceId();
@@ -155,6 +165,8 @@ public class BedrockAgentComponentConfigurer extends 
PropertyConfigurerSupport i
         case "healthCheckConsumerEnabled": return 
target.isHealthCheckConsumerEnabled();
         case "healthcheckproducerenabled":
         case "healthCheckProducerEnabled": return 
target.isHealthCheckProducerEnabled();
+        case "ingestionjobid":
+        case "ingestionJobId": return 
getOrCreateConfiguration(target).getIngestionJobId();
         case "knowledgebaseid":
         case "knowledgeBaseId": return 
getOrCreateConfiguration(target).getKnowledgeBaseId();
         case "lazystartproducer":
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointConfigurer.java
 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointConfigurer.java
index 30bc4d17382..ebd6afecb3e 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointConfigurer.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointConfigurer.java
@@ -23,10 +23,28 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": 
target.getConfiguration().setAccessKey(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "backofferrorthreshold":
+        case "backoffErrorThreshold": 
target.setBackoffErrorThreshold(property(camelContext, int.class, value)); 
return true;
+        case "backoffidlethreshold":
+        case "backoffIdleThreshold": 
target.setBackoffIdleThreshold(property(camelContext, int.class, value)); 
return true;
+        case "backoffmultiplier":
+        case "backoffMultiplier": 
target.setBackoffMultiplier(property(camelContext, int.class, value)); return 
true;
         case "bedrockagentclient":
         case "bedrockAgentClient": 
target.getConfiguration().setBedrockAgentClient(property(camelContext, 
software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class, value)); 
return true;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": 
target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); 
return true;
         case "datasourceid":
         case "dataSourceId": 
target.getConfiguration().setDataSourceId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "delay": target.setDelay(property(camelContext, long.class, 
value)); return true;
+        case "exceptionhandler":
+        case "exceptionHandler": 
target.setExceptionHandler(property(camelContext, 
org.apache.camel.spi.ExceptionHandler.class, value)); return true;
+        case "exchangepattern":
+        case "exchangePattern": 
target.setExchangePattern(property(camelContext, 
org.apache.camel.ExchangePattern.class, value)); return true;
+        case "greedy": target.setGreedy(property(camelContext, boolean.class, 
value)); return true;
+        case "ingestionjobid":
+        case "ingestionJobId": 
target.getConfiguration().setIngestionJobId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "initialdelay":
+        case "initialDelay": target.setInitialDelay(property(camelContext, 
long.class, value)); return true;
         case "knowledgebaseid":
         case "knowledgeBaseId": 
target.getConfiguration().setKnowledgeBaseId(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
@@ -38,6 +56,8 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "overrideEndpoint": 
target.getConfiguration().setOverrideEndpoint(property(camelContext, 
boolean.class, value)); return true;
         case "pojorequest":
         case "pojoRequest": 
target.getConfiguration().setPojoRequest(property(camelContext, boolean.class, 
value)); return true;
+        case "pollstrategy":
+        case "pollStrategy": target.setPollStrategy(property(camelContext, 
org.apache.camel.spi.PollingConsumerPollStrategy.class, value)); return true;
         case "profilecredentialsname":
         case "profileCredentialsName": 
target.getConfiguration().setProfileCredentialsName(property(camelContext, 
java.lang.String.class, value)); return true;
         case "proxyhost":
@@ -47,16 +67,33 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "proxyprotocol":
         case "proxyProtocol": 
target.getConfiguration().setProxyProtocol(property(camelContext, 
software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": 
target.getConfiguration().setRegion(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "repeatcount":
+        case "repeatCount": target.setRepeatCount(property(camelContext, 
long.class, value)); return true;
+        case "runlogginglevel":
+        case "runLoggingLevel": 
target.setRunLoggingLevel(property(camelContext, 
org.apache.camel.LoggingLevel.class, value)); return true;
+        case "scheduledexecutorservice":
+        case "scheduledExecutorService": 
target.setScheduledExecutorService(property(camelContext, 
java.util.concurrent.ScheduledExecutorService.class, value)); return true;
+        case "scheduler": target.setScheduler(property(camelContext, 
java.lang.Object.class, value)); return true;
+        case "schedulerproperties":
+        case "schedulerProperties": 
target.setSchedulerProperties(property(camelContext, java.util.Map.class, 
value)); return true;
         case "secretkey":
         case "secretKey": 
target.getConfiguration().setSecretKey(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "sendemptymessagewhenidle":
+        case "sendEmptyMessageWhenIdle": 
target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, 
value)); return true;
         case "sessiontoken":
         case "sessionToken": 
target.getConfiguration().setSessionToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "startscheduler":
+        case "startScheduler": target.setStartScheduler(property(camelContext, 
boolean.class, value)); return true;
+        case "timeunit":
+        case "timeUnit": target.setTimeUnit(property(camelContext, 
java.util.concurrent.TimeUnit.class, value)); return true;
         case "trustallcertificates":
         case "trustAllCertificates": 
target.getConfiguration().setTrustAllCertificates(property(camelContext, 
boolean.class, value)); return true;
         case "uriendpointoverride":
         case "uriEndpointOverride": 
target.getConfiguration().setUriEndpointOverride(property(camelContext, 
java.lang.String.class, value)); return true;
         case "usedefaultcredentialsprovider":
         case "useDefaultCredentialsProvider": 
target.getConfiguration().setUseDefaultCredentialsProvider(property(camelContext,
 boolean.class, value)); return true;
+        case "usefixeddelay":
+        case "useFixedDelay": target.setUseFixedDelay(property(camelContext, 
boolean.class, value)); return true;
         case "useprofilecredentialsprovider":
         case "useProfileCredentialsProvider": 
target.getConfiguration().setUseProfileCredentialsProvider(property(camelContext,
 boolean.class, value)); return true;
         case "usesessioncredentials":
@@ -75,10 +112,28 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": return java.lang.String.class;
+        case "backofferrorthreshold":
+        case "backoffErrorThreshold": return int.class;
+        case "backoffidlethreshold":
+        case "backoffIdleThreshold": return int.class;
+        case "backoffmultiplier":
+        case "backoffMultiplier": return int.class;
         case "bedrockagentclient":
         case "bedrockAgentClient": return 
software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return boolean.class;
         case "datasourceid":
         case "dataSourceId": return java.lang.String.class;
+        case "delay": return long.class;
+        case "exceptionhandler":
+        case "exceptionHandler": return 
org.apache.camel.spi.ExceptionHandler.class;
+        case "exchangepattern":
+        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+        case "greedy": return boolean.class;
+        case "ingestionjobid":
+        case "ingestionJobId": return java.lang.String.class;
+        case "initialdelay":
+        case "initialDelay": return long.class;
         case "knowledgebaseid":
         case "knowledgeBaseId": return java.lang.String.class;
         case "lazystartproducer":
@@ -90,6 +145,8 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "overrideEndpoint": return boolean.class;
         case "pojorequest":
         case "pojoRequest": return boolean.class;
+        case "pollstrategy":
+        case "pollStrategy": return 
org.apache.camel.spi.PollingConsumerPollStrategy.class;
         case "profilecredentialsname":
         case "profileCredentialsName": return java.lang.String.class;
         case "proxyhost":
@@ -99,16 +156,33 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "proxyprotocol":
         case "proxyProtocol": return 
software.amazon.awssdk.core.Protocol.class;
         case "region": return java.lang.String.class;
+        case "repeatcount":
+        case "repeatCount": return long.class;
+        case "runlogginglevel":
+        case "runLoggingLevel": return org.apache.camel.LoggingLevel.class;
+        case "scheduledexecutorservice":
+        case "scheduledExecutorService": return 
java.util.concurrent.ScheduledExecutorService.class;
+        case "scheduler": return java.lang.Object.class;
+        case "schedulerproperties":
+        case "schedulerProperties": return java.util.Map.class;
         case "secretkey":
         case "secretKey": return java.lang.String.class;
+        case "sendemptymessagewhenidle":
+        case "sendEmptyMessageWhenIdle": return boolean.class;
         case "sessiontoken":
         case "sessionToken": return java.lang.String.class;
+        case "startscheduler":
+        case "startScheduler": return boolean.class;
+        case "timeunit":
+        case "timeUnit": return java.util.concurrent.TimeUnit.class;
         case "trustallcertificates":
         case "trustAllCertificates": return boolean.class;
         case "uriendpointoverride":
         case "uriEndpointOverride": return java.lang.String.class;
         case "usedefaultcredentialsprovider":
         case "useDefaultCredentialsProvider": return boolean.class;
+        case "usefixeddelay":
+        case "useFixedDelay": return boolean.class;
         case "useprofilecredentialsprovider":
         case "useProfileCredentialsProvider": return boolean.class;
         case "usesessioncredentials":
@@ -123,10 +197,28 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": return target.getConfiguration().getAccessKey();
+        case "backofferrorthreshold":
+        case "backoffErrorThreshold": return target.getBackoffErrorThreshold();
+        case "backoffidlethreshold":
+        case "backoffIdleThreshold": return target.getBackoffIdleThreshold();
+        case "backoffmultiplier":
+        case "backoffMultiplier": return target.getBackoffMultiplier();
         case "bedrockagentclient":
         case "bedrockAgentClient": return 
target.getConfiguration().getBedrockAgentClient();
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "datasourceid":
         case "dataSourceId": return 
target.getConfiguration().getDataSourceId();
+        case "delay": return target.getDelay();
+        case "exceptionhandler":
+        case "exceptionHandler": return target.getExceptionHandler();
+        case "exchangepattern":
+        case "exchangePattern": return target.getExchangePattern();
+        case "greedy": return target.isGreedy();
+        case "ingestionjobid":
+        case "ingestionJobId": return 
target.getConfiguration().getIngestionJobId();
+        case "initialdelay":
+        case "initialDelay": return target.getInitialDelay();
         case "knowledgebaseid":
         case "knowledgeBaseId": return 
target.getConfiguration().getKnowledgeBaseId();
         case "lazystartproducer":
@@ -138,6 +230,8 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "overrideEndpoint": return 
target.getConfiguration().isOverrideEndpoint();
         case "pojorequest":
         case "pojoRequest": return target.getConfiguration().isPojoRequest();
+        case "pollstrategy":
+        case "pollStrategy": return target.getPollStrategy();
         case "profilecredentialsname":
         case "profileCredentialsName": return 
target.getConfiguration().getProfileCredentialsName();
         case "proxyhost":
@@ -147,16 +241,33 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         case "proxyprotocol":
         case "proxyProtocol": return 
target.getConfiguration().getProxyProtocol();
         case "region": return target.getConfiguration().getRegion();
+        case "repeatcount":
+        case "repeatCount": return target.getRepeatCount();
+        case "runlogginglevel":
+        case "runLoggingLevel": return target.getRunLoggingLevel();
+        case "scheduledexecutorservice":
+        case "scheduledExecutorService": return 
target.getScheduledExecutorService();
+        case "scheduler": return target.getScheduler();
+        case "schedulerproperties":
+        case "schedulerProperties": return target.getSchedulerProperties();
         case "secretkey":
         case "secretKey": return target.getConfiguration().getSecretKey();
+        case "sendemptymessagewhenidle":
+        case "sendEmptyMessageWhenIdle": return 
target.isSendEmptyMessageWhenIdle();
         case "sessiontoken":
         case "sessionToken": return 
target.getConfiguration().getSessionToken();
+        case "startscheduler":
+        case "startScheduler": return target.isStartScheduler();
+        case "timeunit":
+        case "timeUnit": return target.getTimeUnit();
         case "trustallcertificates":
         case "trustAllCertificates": return 
target.getConfiguration().isTrustAllCertificates();
         case "uriendpointoverride":
         case "uriEndpointOverride": return 
target.getConfiguration().getUriEndpointOverride();
         case "usedefaultcredentialsprovider":
         case "useDefaultCredentialsProvider": return 
target.getConfiguration().isUseDefaultCredentialsProvider();
+        case "usefixeddelay":
+        case "useFixedDelay": return target.isUseFixedDelay();
         case "useprofilecredentialsprovider":
         case "useProfileCredentialsProvider": return 
target.getConfiguration().isUseProfileCredentialsProvider();
         case "usesessioncredentials":
@@ -164,5 +275,14 @@ public class BedrockAgentEndpointConfigurer extends 
PropertyConfigurerSupport im
         default: return null;
         }
     }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean 
ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "schedulerproperties":
+        case "schedulerProperties": return java.lang.Object.class;
+        default: return null;
+        }
+    }
 }
 
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointUriFactory.java
 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointUriFactory.java
index 48034113baf..c728a4b3c14 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointUriFactory.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointUriFactory.java
@@ -21,10 +21,20 @@ public class BedrockAgentEndpointUriFactory extends 
org.apache.camel.support.com
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(22);
+        Set<String> props = new HashSet<>(42);
         props.add("accessKey");
+        props.add("backoffErrorThreshold");
+        props.add("backoffIdleThreshold");
+        props.add("backoffMultiplier");
         props.add("bedrockAgentClient");
+        props.add("bridgeErrorHandler");
         props.add("dataSourceId");
+        props.add("delay");
+        props.add("exceptionHandler");
+        props.add("exchangePattern");
+        props.add("greedy");
+        props.add("ingestionJobId");
+        props.add("initialDelay");
         props.add("knowledgeBaseId");
         props.add("label");
         props.add("lazyStartProducer");
@@ -32,16 +42,26 @@ public class BedrockAgentEndpointUriFactory extends 
org.apache.camel.support.com
         props.add("operation");
         props.add("overrideEndpoint");
         props.add("pojoRequest");
+        props.add("pollStrategy");
         props.add("profileCredentialsName");
         props.add("proxyHost");
         props.add("proxyPort");
         props.add("proxyProtocol");
         props.add("region");
+        props.add("repeatCount");
+        props.add("runLoggingLevel");
+        props.add("scheduledExecutorService");
+        props.add("scheduler");
+        props.add("schedulerProperties");
         props.add("secretKey");
+        props.add("sendEmptyMessageWhenIdle");
         props.add("sessionToken");
+        props.add("startScheduler");
+        props.add("timeUnit");
         props.add("trustAllCertificates");
         props.add("uriEndpointOverride");
         props.add("useDefaultCredentialsProvider");
+        props.add("useFixedDelay");
         props.add("useProfileCredentialsProvider");
         props.add("useSessionCredentials");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
@@ -50,7 +70,9 @@ public class BedrockAgentEndpointUriFactory extends 
org.apache.camel.support.com
         secretProps.add("secretKey");
         secretProps.add("sessionToken");
         SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
-        MULTI_VALUE_PREFIXES = Collections.emptySet();
+        Set<String> prefixes = new HashSet<>(1);
+        prefixes.add("scheduler.");
+        MULTI_VALUE_PREFIXES = Collections.unmodifiableSet(prefixes);
     }
 
     @Override
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
 
b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
index d3b7a7545d5..5038d9dfe2a 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
+++ 
b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
@@ -18,64 +18,86 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": true,
+    "producerOnly": false,
     "lenientProperties": false,
     "remote": true
   },
   "componentProperties": {
-    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
-    "dataSourceId": { "index": 1, "kind": "property", "displayName": "Data 
Source Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Data source 
Id we are going to use" },
-    "knowledgeBaseId": { "index": 2, "kind": "property", "displayName": 
"Knowledge Base Id", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Knowledge 
Base Id we are going to use" },
-    "lazyStartProducer": { "index": 3, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "modelId": { "index": 4, "kind": "property", "displayName": "Model Id", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "enum": [ "anthropic.claude-instant-v1", 
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "descr [...]
-    "operation": { "index": 5, "kind": "property", "displayName": "Operation", 
"group": "producer", "label": "", "required": true, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum": 
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "conf [...]
-    "overrideEndpoint": { "index": 6, "kind": "property", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the need for 
overriding the endpoint. This option needs to be used [...]
-    "pojoRequest": { "index": 7, "kind": "property", "displayName": "Pojo 
Request", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to use a POJO 
request as body or not" },
-    "profileCredentialsName": { "index": 8, "kind": "property", "displayName": 
"Profile Credentials Name", "group": "producer", "label": "", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "false", 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this p [...]
-    "region": { "index": 9, "kind": "property", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "enum": [ "us-east-1", "us-west-1", 
"ap-southeast-1", "ap-northeast-1", "eu-central-1" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "The region in wh [...]
-    "uriEndpointOverride": { "index": 10, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the overriding uri 
endpoint. This option needs to be used in combination  [...]
-    "useDefaultCredentialsProvider": { "index": 11, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "producer", 
"label": "", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client shou [...]
-    "useProfileCredentialsProvider": { "index": 12, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "producer", 
"label": "", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client shou [...]
-    "autowiredEnabled": { "index": 13, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
-    "bedrockAgentClient": { "index": 14, "kind": "property", "displayName": 
"Bedrock Agent Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.bedrockagent.BedrockAgentClient", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To [...]
-    "healthCheckConsumerEnabled": { "index": 15, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
-    "healthCheckProducerEnabled": { "index": 16, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
-    "proxyHost": { "index": 17, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the Bedrock Agent client" },
-    "proxyPort": { "index": 18, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy port 
when instantiating the Bedrock Agent client" },
-    "proxyProtocol": { "index": 19, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a pr [...]
-    "accessKey": { "index": 20, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 21, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 22, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Session Token 
used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 23, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of over [...]
-    "useSessionCredentials": { "index": 24, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should expect [...]
+    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "common", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Component configuration" },
+    "dataSourceId": { "index": 1, "kind": "property", "displayName": "Data 
Source Id", "group": "common", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Data source 
Id we are going to use" },
+    "knowledgeBaseId": { "index": 2, "kind": "property", "displayName": 
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Knowledge 
Base Id we are going to use" },
+    "modelId": { "index": 3, "kind": "property", "displayName": "Model Id", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "enum": [ "anthropic.claude-instant-v1", 
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "descrip [...]
+    "operation": { "index": 4, "kind": "property", "displayName": "Operation", 
"group": "common", "label": "", "required": true, "type": "object", "javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum": 
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "config [...]
+    "overrideEndpoint": { "index": 5, "kind": "property", "displayName": 
"Override Endpoint", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the need for 
overriding the endpoint. This option needs to be used i [...]
+    "pojoRequest": { "index": 6, "kind": "property", "displayName": "Pojo 
Request", "group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to use a POJO 
request as body or not" },
+    "profileCredentialsName": { "index": 7, "kind": "property", "displayName": 
"Profile Credentials Name", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "false", 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this par [...]
+    "region": { "index": 8, "kind": "property", "displayName": "Region", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "enum": [ "us-east-1", "us-west-1", 
"ap-southeast-1", "ap-northeast-1", "eu-central-1" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "The region in whic [...]
+    "uriEndpointOverride": { "index": 9, "kind": "property", "displayName": 
"Uri Endpoint Override", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the overriding uri 
endpoint. This option needs to be used in combination wit [...]
+    "useDefaultCredentialsProvider": { "index": 10, "kind": "property", 
"displayName": "Use Default Credentials Provider", "group": "common", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should [...]
+    "useProfileCredentialsProvider": { "index": 11, "kind": "property", 
"displayName": "Use Profile Credentials Provider", "group": "common", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should [...]
+    "bridgeErrorHandler": { "index": 12, "kind": "property", "displayName": 
"Bridge Error Handler", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Allows for bridging the consumer to the Camel routing Error Handler, which 
mean any exceptions (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the lik [...]
+    "ingestionJobId": { "index": 13, "kind": "property", "displayName": 
"Ingestion Job Id", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Ingestion Job 
Id we want to track" },
+    "lazyStartProducer": { "index": 14, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fai [...]
+    "autowiredEnabled": { "index": 15, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "bedrockAgentClient": { "index": 16, "kind": "property", "displayName": 
"Bedrock Agent Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.bedrockagent.BedrockAgentClient", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To [...]
+    "healthCheckConsumerEnabled": { "index": 17, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckProducerEnabled": { "index": 18, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
+    "proxyHost": { "index": 19, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the Bedrock Agent client" },
+    "proxyPort": { "index": 20, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy port 
when instantiating the Bedrock Agent client" },
+    "proxyProtocol": { "index": 21, "kind": "property", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a pr [...]
+    "accessKey": { "index": 22, "kind": "property", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 23, "kind": "property", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 24, "kind": "property", "displayName": "Session 
Token", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Session Token 
used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 25, "kind": "property", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of over [...]
+    "useSessionCredentials": { "index": 26, "kind": "property", "displayName": 
"Use Session Credentials", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should expect [...]
   },
   "headers": {
-    "CamelAwsBedrockAgentRuntimeOperation": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The operation we want to perform", 
"constantName": 
"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeConstants#OPERATION"
 },
-    "CamelAwsBedrockAgentRuntimeCitations": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "When retrieving and generating a 
response, this header will contain the citations", "constantName": 
"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeConstants#CITATIONS"
 },
-    "CamelAwsBedrockAgentRuntimeSessionId": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "When retrieving and generating a 
response, this header will contain he unique identifier of the session. Reuse 
the same value to continue the same session with the knowledge base.", 
"constantName": "org.apache.camel.component [...]
+    "CamelAwsBedrockAgentRuntimeOperation": { "index": 0, "kind": "header", 
"displayName": "", "group": "common", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The operation we want to perform", 
"constantName": 
"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeConstants#OPERATION"
 },
+    "CamelAwsBedrockAgentRuntimeCitations": { "index": 1, "kind": "header", 
"displayName": "", "group": "common", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "When retrieving and generating a 
response, this header will contain the citations", "constantName": 
"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeConstants#CITATIONS"
 },
+    "CamelAwsBedrockAgentRuntimeSessionId": { "index": 2, "kind": "header", 
"displayName": "", "group": "common", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "When retrieving and generating a 
response, this header will contain he unique identifier of the session. Reuse 
the same value to continue the same session with the knowledge base.", 
"constantName": "org.apache.camel.component.a [...]
   },
   "properties": {
-    "label": { "index": 0, "kind": "path", "displayName": "Label", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Logical name" },
-    "dataSourceId": { "index": 1, "kind": "parameter", "displayName": "Data 
Source Id", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Data source 
Id we are going to use" },
-    "knowledgeBaseId": { "index": 2, "kind": "parameter", "displayName": 
"Knowledge Base Id", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Knowledge 
Base Id we are going to use" },
-    "modelId": { "index": 3, "kind": "parameter", "displayName": "Model Id", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "enum": [ "anthropic.claude-instant-v1", 
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "desc [...]
-    "operation": { "index": 4, "kind": "parameter", "displayName": 
"Operation", "group": "producer", "label": "", "required": true, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum": 
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "con [...]
-    "overrideEndpoint": { "index": 5, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "producer", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the need for 
overriding the endpoint. This option needs to be use [...]
-    "pojoRequest": { "index": 6, "kind": "parameter", "displayName": "Pojo 
Request", "group": "producer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to use a POJO 
request as body or not" },
-    "profileCredentialsName": { "index": 7, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "producer", "label": "", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this  [...]
-    "region": { "index": 8, "kind": "parameter", "displayName": "Region", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "enum": [ "us-east-1", "us-west-1", 
"ap-southeast-1", "ap-northeast-1", "eu-central-1" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "The region in w [...]
-    "uriEndpointOverride": { "index": 9, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the overriding uri 
endpoint. This option needs to be used in combination  [...]
-    "useDefaultCredentialsProvider": { "index": 10, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "producer", 
"label": "", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client sho [...]
-    "useProfileCredentialsProvider": { "index": 11, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "producer", 
"label": "", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client sho [...]
-    "lazyStartProducer": { "index": 12, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
-    "bedrockAgentClient": { "index": 13, "kind": "parameter", "displayName": 
"Bedrock Agent Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.bedrockagent.BedrockAgentClient", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "T [...]
-    "proxyHost": { "index": 14, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the Bedrock Agent client" },
-    "proxyPort": { "index": 15, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy port 
when instantiating the Bedrock Agent client" },
-    "proxyProtocol": { "index": 16, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a p [...]
-    "accessKey": { "index": 17, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 18, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 19, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Session Token 
used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 20, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of ove [...]
-    "useSessionCredentials": { "index": 21, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should expec [...]
+    "label": { "index": 0, "kind": "path", "displayName": "Label", "group": 
"common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Logical name" },
+    "dataSourceId": { "index": 1, "kind": "parameter", "displayName": "Data 
Source Id", "group": "common", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Data source 
Id we are going to use" },
+    "knowledgeBaseId": { "index": 2, "kind": "parameter", "displayName": 
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Knowledge 
Base Id we are going to use" },
+    "modelId": { "index": 3, "kind": "parameter", "displayName": "Model Id", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "enum": [ "anthropic.claude-instant-v1", 
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "descri [...]
+    "operation": { "index": 4, "kind": "parameter", "displayName": 
"Operation", "group": "common", "label": "", "required": true, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum": 
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "confi [...]
+    "overrideEndpoint": { "index": 5, "kind": "parameter", "displayName": 
"Override Endpoint", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the need for 
overriding the endpoint. This option needs to be used  [...]
+    "pojoRequest": { "index": 6, "kind": "parameter", "displayName": "Pojo 
Request", "group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to use a POJO 
request as body or not" },
+    "profileCredentialsName": { "index": 7, "kind": "parameter", 
"displayName": "Profile Credentials Name", "group": "common", "label": "", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"false", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If using a profile 
credentials provider, this pa [...]
+    "region": { "index": 8, "kind": "parameter", "displayName": "Region", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "enum": [ "us-east-1", "us-west-1", 
"ap-southeast-1", "ap-northeast-1", "eu-central-1" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "The region in whi [...]
+    "uriEndpointOverride": { "index": 9, "kind": "parameter", "displayName": 
"Uri Endpoint Override", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set the overriding uri 
endpoint. This option needs to be used in combination wi [...]
+    "useDefaultCredentialsProvider": { "index": 10, "kind": "parameter", 
"displayName": "Use Default Credentials Provider", "group": "common", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client shoul [...]
+    "useProfileCredentialsProvider": { "index": 11, "kind": "parameter", 
"displayName": "Use Profile Credentials Provider", "group": "common", "label": 
"", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client shoul [...]
+    "ingestionJobId": { "index": 12, "kind": "parameter", "displayName": 
"Ingestion Job Id", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Define the Ingestion Job 
Id we want to track" },
+    "sendEmptyMessageWhenIdle": { "index": 13, "kind": "parameter", 
"displayName": "Send Empty Message When Idle", "group": "consumer", "label": 
"consumer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "description": "If the polling consumer did not poll any files, you can 
enable this option to send an empty message (no body) instead." },
+    "bridgeErrorHandler": { "index": 14, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 15, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 16, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "index": 17, "kind": "parameter", "displayName": "Poll 
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"autowired": false, "secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the po 
[...]
+    "lazyStartProducer": { "index": 18, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "bedrockAgentClient": { "index": 19, "kind": "parameter", "displayName": 
"Bedrock Agent Client", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"software.amazon.awssdk.services.bedrockagent.BedrockAgentClient", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "T [...]
+    "proxyHost": { "index": 20, "kind": "parameter", "displayName": "Proxy 
Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy host 
when instantiating the Bedrock Agent client" },
+    "proxyPort": { "index": 21, "kind": "parameter", "displayName": "Proxy 
Port", "group": "proxy", "label": "proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a proxy port 
when instantiating the Bedrock Agent client" },
+    "proxyProtocol": { "index": 22, "kind": "parameter", "displayName": "Proxy 
Protocol", "group": "proxy", "label": "proxy", "required": false, "type": 
"object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", 
"HTTPS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "HTTPS", "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "To define a p [...]
+    "backoffErrorThreshold": { "index": 23, "kind": "parameter", 
"displayName": "Backoff Error Threshold", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
number of subsequent error polls (failed due some error) that should happen 
before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "index": 24, "kind": "parameter", "displayName": 
"Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "The number of subsequent 
idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "index": 25, "kind": "parameter", "displayName": 
"Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "int", "deprecated": false, 
"autowired": false, "secret": false, "description": "To let the scheduled 
polling consumer backoff if there has been a number of subsequent idles\/errors 
in a row. The multiplier is then the number of polls that will be skipped 
before the next actual attempt is h [...]
+    "delay": { "index": 26, "kind": "parameter", "displayName": "Delay", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 500, "description": "Milliseconds before the 
next poll." },
+    "greedy": { "index": 27, "kind": "parameter", "displayName": "Greedy", 
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "If greedy is enabled, 
then the ScheduledPollConsumer will run immediately again, if the previous run 
polled 1 or more messages." },
+    "initialDelay": { "index": 28, "kind": "parameter", "displayName": 
"Initial Delay", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "integer", "javaType": "long", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 1000, "description": 
"Milliseconds before the first poll starts." },
+    "repeatCount": { "index": 29, "kind": "parameter", "displayName": "Repeat 
Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit 
of number of fires. So if you set it to 1, the scheduler will only fire once. 
If you set it to 5, it will only fire five times. A value of zero or negative 
means fire forever." },
+    "runLoggingLevel": { "index": 30, "kind": "parameter", "displayName": "Run 
Logging Level", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", 
"ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "TRACE", "description": "The consumer logs a start\/complete 
log line when it polls. This option allows you to configure the l [...]
+    "scheduledExecutorService": { "index": 31, "kind": "parameter", 
"displayName": "Scheduled Executor Service", "group": "scheduler", "label": 
"consumer,scheduler", "required": false, "type": "object", "javaType": 
"java.util.concurrent.ScheduledExecutorService", "deprecated": false, 
"autowired": false, "secret": false, "description": "Allows for configuring a 
custom\/shared thread pool to use for the consumer. By default each consumer 
has its own single threaded thread pool." },
+    "scheduler": { "index": 32, "kind": "parameter", "displayName": 
"Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "none", "description": "To 
use a cron scheduler from either camel-spring or camel-quartz component. Use 
value spring or quartz for built in scheduler" },
+    "schedulerProperties": { "index": 33, "kind": "parameter", "displayName": 
"Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", 
"multiValue": true, "deprecated": false, "autowired": false, "secret": false, 
"description": "To configure additional properties when using a custom 
scheduler or any of the Quartz, Spring based scheduler." },
+    "startScheduler": { "index": 34, "kind": "parameter", "displayName": 
"Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Whether the scheduler should be auto started." },
+    "timeUnit": { "index": 35, "kind": "parameter", "displayName": "Time 
Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, 
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ 
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", 
"DAYS" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and 
delay options." },
+    "useFixedDelay": { "index": 36, "kind": "parameter", "displayName": "Use 
Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in 
JDK for details." },
+    "accessKey": { "index": 37, "kind": "parameter", "displayName": "Access 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 38, "kind": "parameter", "displayName": "Secret 
Key", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 39, "kind": "parameter", "displayName": 
"Session Token", "group": "security", "label": "security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Amazon AWS Session Token 
used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 40, "kind": "parameter", "displayName": 
"Trust All Certificates", "group": "security", "label": "security", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "If we want to trust all 
certificates in case of ove [...]
+    "useSessionCredentials": { "index": 41, "kind": "parameter", 
"displayName": "Use Session Credentials", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", 
"configurationField": "configuration", "description": "Set whether the Bedrock 
Agent client should expec [...]
   }
 }
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-agent-component.adoc
 
b/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-agent-component.adoc
index 13833c3a37f..382452d8239 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-agent-component.adoc
+++ 
b/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-agent-component.adoc
@@ -6,7 +6,7 @@
 :since: 4.5
 :supportlevel: Preview
 :tabs-sync-option:
-:component-header: Only producer is supported
+:component-header: Both producer and consumer are supported
 //Manually maintained attributes
 :group: AWS
 :camel-spring-boot-name: aws-bedrock
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConfiguration.java
 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConfiguration.java
index aabf9ff19d4..ecaa2889790 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConfiguration.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConfiguration.java
@@ -49,6 +49,9 @@ public class BedrockAgentConfiguration implements Cloneable {
     @Metadata
     private String dataSourceId;
     @UriParam
+    @Metadata(label = "consumer")
+    private String ingestionJobId;
+    @UriParam
     @Metadata(required = true)
     private BedrockAgentOperations operation;
     @UriParam(label = "proxy", enums = "HTTP,HTTPS", defaultValue = "HTTPS")
@@ -300,6 +303,17 @@ public class BedrockAgentConfiguration implements 
Cloneable {
         this.dataSourceId = dataSourceId;
     }
 
+    public String getIngestionJobId() {
+        return ingestionJobId;
+    }
+
+    /**
+     * Define the Ingestion Job Id we want to track
+     */
+    public void setIngestionJobId(String ingestionJobId) {
+        this.ingestionJobId = ingestionJobId;
+    }
+
     // *************************************************
     //
     // *************************************************
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
index 6501f1a3cd1..fb8ed36ba53 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
@@ -36,4 +36,8 @@ public interface BedrockAgentConstants {
     @Metadata(description = "The header could be used to set up a knowledge 
base Id dynamically while performing operation",
               javaType = "String")
     String KNOWLEDGE_BASE_ID = "CamelAwsBedrockAgentKnowledgeBaseId";
+
+    @Metadata(description = "The header contains the status of the ingestion 
job",
+              javaType = "String", label = "consumer")
+    String INGESTION_JOB_STATUS = "CamelAwsBedrockAgentIngestionJobStatus";
 }
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpoint.java
 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpoint.java
index 1a08c4ae35b..ca61d8e6d5d 100644
--- 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpoint.java
+++ 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpoint.java
@@ -33,7 +33,7 @@ import 
software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
  * Operate on AWS Bedrock through its Agent.
  */
 @UriEndpoint(firstVersion = "4.5.0", scheme = "aws-bedrock-agent", title = 
"AWS Bedrock Agent",
-             syntax = "aws-bedrock-agent:label", producerOnly = true, category 
= { Category.AI, Category.CLOUD },
+             syntax = "aws-bedrock-agent:label", category = { Category.AI, 
Category.CLOUD },
              headersClass = BedrockAgentRuntimeConstants.class)
 public class BedrockAgentEndpoint extends ScheduledPollEndpoint {
 
@@ -49,7 +49,9 @@ public class BedrockAgentEndpoint extends 
ScheduledPollEndpoint {
 
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
-        throw new UnsupportedOperationException("You cannot receive messages 
from this endpoint");
+        final BedrockAgentIngestionJobConsumer consumer = new 
BedrockAgentIngestionJobConsumer(this, processor);
+        configureConsumer(consumer);
+        return consumer;
     }
 
     @Override
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentIngestionJobConsumer.java
 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentIngestionJobConsumer.java
new file mode 100644
index 00000000000..a77e597ddb2
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentIngestionJobConsumer.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.bedrock.agent;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.support.ScheduledPollConsumer;
+import org.apache.camel.util.ObjectHelper;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import 
software.amazon.awssdk.services.bedrockagent.model.GetIngestionJobRequest;
+import 
software.amazon.awssdk.services.bedrockagent.model.GetIngestionJobResponse;
+
+public class BedrockAgentIngestionJobConsumer extends ScheduledPollConsumer {
+
+    protected final BedrockAgentEndpoint endpoint;
+
+    public BedrockAgentIngestionJobConsumer(BedrockAgentEndpoint endpoint, 
Processor processor) {
+        super(endpoint, processor);
+        this.endpoint = endpoint;
+    }
+
+    @Override
+    protected int poll() throws Exception {
+        GetIngestionJobRequest.Builder builder = 
GetIngestionJobRequest.builder();
+        if 
(ObjectHelper.isNotEmpty(getEndpoint().getConfiguration().getKnowledgeBaseId()))
 {
+            
builder.knowledgeBaseId(getEndpoint().getConfiguration().getKnowledgeBaseId());
+        } else {
+            throw new IllegalArgumentException("KnowledgeBaseId must be 
specified");
+        }
+        if 
(ObjectHelper.isNotEmpty(getEndpoint().getConfiguration().getDataSourceId())) {
+            
builder.dataSourceId(getEndpoint().getConfiguration().getDataSourceId());
+        } else {
+            throw new IllegalArgumentException("DataSourceId must be 
specified");
+        }
+        if 
(ObjectHelper.isNotEmpty(getEndpoint().getConfiguration().getIngestionJobId())) 
{
+            
builder.ingestionJobId(getEndpoint().getConfiguration().getIngestionJobId());
+        } else {
+            throw new IllegalArgumentException("IngestionJobId must be 
specified");
+        }
+
+        GetIngestionJobResponse response = 
getClient().getIngestionJob(builder.build());
+        getProcessor().process(createExchange(response));
+        return 1;
+    }
+
+    private BedrockAgentClient getClient() {
+        return getEndpoint().getBedrockAgentClient();
+    }
+
+    @Override
+    public BedrockAgentEndpoint getEndpoint() {
+        return (BedrockAgentEndpoint) super.getEndpoint();
+    }
+
+    protected Exchange createExchange(GetIngestionJobResponse response) {
+        Exchange exchange = createExchange(true);
+        exchange.getMessage().setBody(response.ingestionJob());
+        
exchange.getMessage().setHeader(BedrockAgentConstants.INGESTION_JOB_STATUS, 
response.ingestionJob().status());
+        return exchange;
+    }
+}
diff --git 
a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentConsumerIT.java
 
b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentConsumerIT.java
new file mode 100644
index 00000000000..5c4b72d6b05
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentConsumerIT.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.bedrock.agent.integration;
+
+import org.apache.camel.*;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+
+// Must be manually tested. Provide your own accessKey and secretKey using 
-Daws.manual.access.key and -Daws.manual.secret.key
+/*@EnabledIfSystemProperties({
+        @EnabledIfSystemProperty(named = "aws.manual.access.key", matches = 
".*", disabledReason = "Access key not provided"),
+        @EnabledIfSystemProperty(named = "aws.manual.secret.key", matches = 
".*", disabledReason = "Secret key not provided")
+})*/
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class BedrockAgentConsumerIT extends CamelTestSupport {
+
+    @EndpointInject
+    private ProducerTemplate template;
+
+    @EndpointInject("mock:result")
+    private MockEndpoint result;
+
+    @Test
+    public void sendInOnly() throws Exception {
+        result.expectedMessageCount(1);
+
+        MockEndpoint.assertIsSatisfied(context);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                
from("aws-bedrock-agent:label?useDefaultCredentialsProvider=true&region=us-east-1&knowledgeBaseId=AJHTAIUSJP&dataSourceId=AJX8Z7JX9J&ingestionJobId=YOWE23OBEB")
+                        .log("${body} and ${headers}")
+                        .to(result);
+            }
+        };
+    }
+}


Reply via email to