You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2024/03/08 11:28:10 UTC
(camel) 01/04: CAMEL-20536 - Camel-AWS-Bedrock: Add the component for Bedrock Agent
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch CAMEL-20536
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6da5eab21265c882fd58fc3e1218d59bec4c0d65
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Mar 8 12:03:05 2024 +0100
CAMEL-20536 - Camel-AWS-Bedrock: Add the component for Bedrock Agent
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../org/apache/camel/catalog/components.properties | 1 +
.../catalog/components/aws-bedrock-agent.json | 81 +++
components/camel-aws/camel-aws-bedrock/pom.xml | 5 +
.../agent/BedrockAgentComponentConfigurer.java | 196 ++++++
.../agent/BedrockAgentEndpointConfigurer.java | 168 +++++
.../agent/BedrockAgentEndpointUriFactory.java | 93 +++
.../aws2/bedrock/agent/aws-bedrock-agent.json | 81 +++
.../services/org/apache/camel/component.properties | 2 +-
.../org/apache/camel/component/aws-bedrock-agent | 2 +
.../camel/configurer/aws-bedrock-agent-component | 2 +
.../camel/configurer/aws-bedrock-agent-endpoint | 2 +
.../camel/urifactory/aws-bedrock-agent-endpoint | 2 +
.../aws2/bedrock/agent/BedrockAgentComponent.java | 72 ++
.../bedrock/agent/BedrockAgentConfiguration.java | 314 +++++++++
.../aws2/bedrock/agent/BedrockAgentConstants.java | 39 ++
.../aws2/bedrock/agent/BedrockAgentEndpoint.java | 91 +++
.../aws2/bedrock/agent/BedrockAgentOperations.java | 22 +
.../aws2/bedrock/agent/BedrockAgentProducer.java | 138 ++++
.../agent/client/BedrockAgentClientFactory.java | 51 ++
.../agent/client/BedrockAgentInternalClient.java | 32 +
.../impl/BedrockAgentClientIAMOptimizedImpl.java | 94 +++
.../BedrockAgentClientIAMProfileOptimizedImpl.java | 99 +++
.../impl/BedrockAgentClientSessionTokenImpl.java | 111 ++++
.../impl/BedrockAgentClientStandardImpl.java | 109 ++++
.../agent/BedrockAgentClientFactoryTest.java | 74 +++
.../agent/integration/BedrockAgentProducerIT.java | 69 ++
.../org/apache/camel/main/components.properties | 1 +
.../ROOT/examples/json/aws-bedrock-agent.json | 1 +
.../component/ComponentsBuilderFactory.java | 13 +
.../AwsBedrockAgentComponentBuilderFactory.java | 525 +++++++++++++++
.../src/generated/resources/metadata.json | 23 +
.../builder/endpoint/EndpointBuilderFactory.java | 1 +
.../camel/builder/endpoint/EndpointBuilders.java | 1 +
.../builder/endpoint/StaticEndpointBuilders.java | 43 ++
.../dsl/BedrockAgentEndpointBuilderFactory.java | 721 +++++++++++++++++++++
.../camel-component-known-dependencies.properties | 1 +
.../kotlin/components/AwsBedrockAgentUriDsl.kt | 163 +++++
37 files changed, 3442 insertions(+), 1 deletion(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index c06addb20ee..673903942e0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -7,6 +7,7 @@ atmosphere-websocket
atom
avro
aws-bedrock
+aws-bedrock-agent
aws-bedrock-agent-runtime
aws-cloudtrail
aws-config
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock-agent.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock-agent.json
new file mode 100644
index 00000000000..d5ebf4c344d
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock-agent.json
@@ -0,0 +1,81 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "aws-bedrock-agent",
+ "title": "AWS Bedrock Agent",
+ "description": "Invoke Model of AWS Bedrock Agent Runtime service.",
+ "deprecated": false,
+ "firstVersion": "4.5.0",
+ "label": "ai,cloud",
+ "javaType": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-aws-bedrock",
+ "version": "4.5.0-SNAPSHOT",
+ "scheme": "aws-bedrock-agent",
+ "extendsScheme": "",
+ "syntax": "aws-bedrock-agent:label",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": true,
+ "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" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", "configurationField": "configuration", "descript [...]
+ "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 [...]
+ },
+ "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 [...]
+ },
+ "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" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", "configurationField": "configuration", "descrip [...]
+ "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 [...]
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/pom.xml b/components/camel-aws/camel-aws-bedrock/pom.xml
index 19f2a3f9bc9..1d30a21f924 100644
--- a/components/camel-aws/camel-aws-bedrock/pom.xml
+++ b/components/camel-aws/camel-aws-bedrock/pom.xml
@@ -53,6 +53,11 @@
<groupId>software.amazon.awssdk</groupId>
<artifactId>bedrockruntime</artifactId>
<version>${aws-java-sdk2-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>bedrockagent</artifactId>
+ <version>${aws-java-sdk2-version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
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
new file mode 100644
index 00000000000..60ed9d62c41
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponentConfigurer.java
@@ -0,0 +1,196 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.aws2.bedrock.agent;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class BedrockAgentComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+ private org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration getOrCreateConfiguration(BedrockAgentComponent target) {
+ if (target.getConfiguration() == null) {
+ target.setConfiguration(new org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration());
+ }
+ return target.getConfiguration();
+ }
+
+ @Override
+ public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+ BedrockAgentComponent target = (BedrockAgentComponent) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "autowiredenabled":
+ 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 "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;
+ case "healthcheckconsumerenabled":
+ 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 "knowledgebaseid":
+ case "knowledgeBaseId": getOrCreateConfiguration(target).setKnowledgeBaseId(property(camelContext, java.lang.String.class, value)); return true;
+ case "lazystartproducer":
+ case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+ case "modelid":
+ case "modelId": getOrCreateConfiguration(target).setModelId(property(camelContext, java.lang.String.class, value)); return true;
+ case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations.class, value)); return true;
+ case "overrideendpoint":
+ case "overrideEndpoint": getOrCreateConfiguration(target).setOverrideEndpoint(property(camelContext, boolean.class, value)); return true;
+ case "pojorequest":
+ case "pojoRequest": getOrCreateConfiguration(target).setPojoRequest(property(camelContext, boolean.class, value)); return true;
+ case "profilecredentialsname":
+ case "profileCredentialsName": getOrCreateConfiguration(target).setProfileCredentialsName(property(camelContext, java.lang.String.class, value)); return true;
+ case "proxyhost":
+ case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+ case "proxyport":
+ case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+ case "proxyprotocol":
+ case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+ case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
+ case "secretkey":
+ case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "sessiontoken":
+ case "sessionToken": getOrCreateConfiguration(target).setSessionToken(property(camelContext, java.lang.String.class, value)); return true;
+ case "trustallcertificates":
+ case "trustAllCertificates": getOrCreateConfiguration(target).setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
+ case "uriendpointoverride":
+ case "uriEndpointOverride": getOrCreateConfiguration(target).setUriEndpointOverride(property(camelContext, java.lang.String.class, value)); return true;
+ case "usedefaultcredentialsprovider":
+ case "useDefaultCredentialsProvider": getOrCreateConfiguration(target).setUseDefaultCredentialsProvider(property(camelContext, boolean.class, value)); return true;
+ case "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": getOrCreateConfiguration(target).setUseProfileCredentialsProvider(property(camelContext, boolean.class, value)); return true;
+ case "usesessioncredentials":
+ case "useSessionCredentials": getOrCreateConfiguration(target).setUseSessionCredentials(property(camelContext, boolean.class, value)); return true;
+ default: return false;
+ }
+ }
+
+ @Override
+ public String[] getAutowiredNames() {
+ return new String[]{"bedrockAgentClient"};
+ }
+
+ @Override
+ public Class<?> getOptionType(String name, boolean ignoreCase) {
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": return java.lang.String.class;
+ case "autowiredenabled":
+ case "autowiredEnabled": return boolean.class;
+ case "bedrockagentclient":
+ case "bedrockAgentClient": return software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class;
+ case "configuration": return org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration.class;
+ case "datasourceid":
+ case "dataSourceId": return java.lang.String.class;
+ case "healthcheckconsumerenabled":
+ case "healthCheckConsumerEnabled": return boolean.class;
+ case "healthcheckproducerenabled":
+ case "healthCheckProducerEnabled": return boolean.class;
+ case "knowledgebaseid":
+ case "knowledgeBaseId": return java.lang.String.class;
+ case "lazystartproducer":
+ case "lazyStartProducer": return boolean.class;
+ case "modelid":
+ case "modelId": return java.lang.String.class;
+ case "operation": return org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations.class;
+ case "overrideendpoint":
+ case "overrideEndpoint": return boolean.class;
+ case "pojorequest":
+ case "pojoRequest": return boolean.class;
+ case "profilecredentialsname":
+ case "profileCredentialsName": return java.lang.String.class;
+ case "proxyhost":
+ case "proxyHost": return java.lang.String.class;
+ case "proxyport":
+ case "proxyPort": return java.lang.Integer.class;
+ case "proxyprotocol":
+ case "proxyProtocol": return software.amazon.awssdk.core.Protocol.class;
+ case "region": return java.lang.String.class;
+ case "secretkey":
+ case "secretKey": return java.lang.String.class;
+ case "sessiontoken":
+ case "sessionToken": return java.lang.String.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 "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": return boolean.class;
+ case "usesessioncredentials":
+ case "useSessionCredentials": return boolean.class;
+ default: return null;
+ }
+ }
+
+ @Override
+ public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+ BedrockAgentComponent target = (BedrockAgentComponent) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
+ case "autowiredenabled":
+ case "autowiredEnabled": return target.isAutowiredEnabled();
+ case "bedrockagentclient":
+ case "bedrockAgentClient": return getOrCreateConfiguration(target).getBedrockAgentClient();
+ case "configuration": return target.getConfiguration();
+ case "datasourceid":
+ case "dataSourceId": return getOrCreateConfiguration(target).getDataSourceId();
+ case "healthcheckconsumerenabled":
+ case "healthCheckConsumerEnabled": return target.isHealthCheckConsumerEnabled();
+ case "healthcheckproducerenabled":
+ case "healthCheckProducerEnabled": return target.isHealthCheckProducerEnabled();
+ case "knowledgebaseid":
+ case "knowledgeBaseId": return getOrCreateConfiguration(target).getKnowledgeBaseId();
+ case "lazystartproducer":
+ case "lazyStartProducer": return target.isLazyStartProducer();
+ case "modelid":
+ case "modelId": return getOrCreateConfiguration(target).getModelId();
+ case "operation": return getOrCreateConfiguration(target).getOperation();
+ case "overrideendpoint":
+ case "overrideEndpoint": return getOrCreateConfiguration(target).isOverrideEndpoint();
+ case "pojorequest":
+ case "pojoRequest": return getOrCreateConfiguration(target).isPojoRequest();
+ case "profilecredentialsname":
+ case "profileCredentialsName": return getOrCreateConfiguration(target).getProfileCredentialsName();
+ case "proxyhost":
+ case "proxyHost": return getOrCreateConfiguration(target).getProxyHost();
+ case "proxyport":
+ case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
+ case "proxyprotocol":
+ case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
+ case "region": return getOrCreateConfiguration(target).getRegion();
+ case "secretkey":
+ case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
+ case "sessiontoken":
+ case "sessionToken": return getOrCreateConfiguration(target).getSessionToken();
+ case "trustallcertificates":
+ case "trustAllCertificates": return getOrCreateConfiguration(target).isTrustAllCertificates();
+ case "uriendpointoverride":
+ case "uriEndpointOverride": return getOrCreateConfiguration(target).getUriEndpointOverride();
+ case "usedefaultcredentialsprovider":
+ case "useDefaultCredentialsProvider": return getOrCreateConfiguration(target).isUseDefaultCredentialsProvider();
+ case "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": return getOrCreateConfiguration(target).isUseProfileCredentialsProvider();
+ case "usesessioncredentials":
+ case "useSessionCredentials": return getOrCreateConfiguration(target).isUseSessionCredentials();
+ default: return null;
+ }
+ }
+}
+
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
new file mode 100644
index 00000000000..30bc4d17382
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointConfigurer.java
@@ -0,0 +1,168 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.aws2.bedrock.agent;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class BedrockAgentEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+ @Override
+ public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+ BedrockAgentEndpoint target = (BedrockAgentEndpoint) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "bedrockagentclient":
+ case "bedrockAgentClient": target.getConfiguration().setBedrockAgentClient(property(camelContext, software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class, value)); return true;
+ case "datasourceid":
+ case "dataSourceId": target.getConfiguration().setDataSourceId(property(camelContext, java.lang.String.class, value)); return true;
+ case "knowledgebaseid":
+ case "knowledgeBaseId": target.getConfiguration().setKnowledgeBaseId(property(camelContext, java.lang.String.class, value)); return true;
+ case "lazystartproducer":
+ case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+ case "modelid":
+ case "modelId": target.getConfiguration().setModelId(property(camelContext, java.lang.String.class, value)); return true;
+ case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations.class, value)); return true;
+ case "overrideendpoint":
+ 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 "profilecredentialsname":
+ case "profileCredentialsName": target.getConfiguration().setProfileCredentialsName(property(camelContext, java.lang.String.class, value)); return true;
+ case "proxyhost":
+ case "proxyHost": target.getConfiguration().setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+ case "proxyport":
+ case "proxyPort": target.getConfiguration().setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+ 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 "secretkey":
+ case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "sessiontoken":
+ case "sessionToken": target.getConfiguration().setSessionToken(property(camelContext, java.lang.String.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 "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": target.getConfiguration().setUseProfileCredentialsProvider(property(camelContext, boolean.class, value)); return true;
+ case "usesessioncredentials":
+ case "useSessionCredentials": target.getConfiguration().setUseSessionCredentials(property(camelContext, boolean.class, value)); return true;
+ default: return false;
+ }
+ }
+
+ @Override
+ public String[] getAutowiredNames() {
+ return new String[]{"bedrockAgentClient"};
+ }
+
+ @Override
+ public Class<?> getOptionType(String name, boolean ignoreCase) {
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": return java.lang.String.class;
+ case "bedrockagentclient":
+ case "bedrockAgentClient": return software.amazon.awssdk.services.bedrockagent.BedrockAgentClient.class;
+ case "datasourceid":
+ case "dataSourceId": return java.lang.String.class;
+ case "knowledgebaseid":
+ case "knowledgeBaseId": return java.lang.String.class;
+ case "lazystartproducer":
+ case "lazyStartProducer": return boolean.class;
+ case "modelid":
+ case "modelId": return java.lang.String.class;
+ case "operation": return org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations.class;
+ case "overrideendpoint":
+ case "overrideEndpoint": return boolean.class;
+ case "pojorequest":
+ case "pojoRequest": return boolean.class;
+ case "profilecredentialsname":
+ case "profileCredentialsName": return java.lang.String.class;
+ case "proxyhost":
+ case "proxyHost": return java.lang.String.class;
+ case "proxyport":
+ case "proxyPort": return java.lang.Integer.class;
+ case "proxyprotocol":
+ case "proxyProtocol": return software.amazon.awssdk.core.Protocol.class;
+ case "region": return java.lang.String.class;
+ case "secretkey":
+ case "secretKey": return java.lang.String.class;
+ case "sessiontoken":
+ case "sessionToken": return java.lang.String.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 "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": return boolean.class;
+ case "usesessioncredentials":
+ case "useSessionCredentials": return boolean.class;
+ default: return null;
+ }
+ }
+
+ @Override
+ public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+ BedrockAgentEndpoint target = (BedrockAgentEndpoint) obj;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "accesskey":
+ case "accessKey": return target.getConfiguration().getAccessKey();
+ case "bedrockagentclient":
+ case "bedrockAgentClient": return target.getConfiguration().getBedrockAgentClient();
+ case "datasourceid":
+ case "dataSourceId": return target.getConfiguration().getDataSourceId();
+ case "knowledgebaseid":
+ case "knowledgeBaseId": return target.getConfiguration().getKnowledgeBaseId();
+ case "lazystartproducer":
+ case "lazyStartProducer": return target.isLazyStartProducer();
+ case "modelid":
+ case "modelId": return target.getConfiguration().getModelId();
+ case "operation": return target.getConfiguration().getOperation();
+ case "overrideendpoint":
+ case "overrideEndpoint": return target.getConfiguration().isOverrideEndpoint();
+ case "pojorequest":
+ case "pojoRequest": return target.getConfiguration().isPojoRequest();
+ case "profilecredentialsname":
+ case "profileCredentialsName": return target.getConfiguration().getProfileCredentialsName();
+ case "proxyhost":
+ case "proxyHost": return target.getConfiguration().getProxyHost();
+ case "proxyport":
+ case "proxyPort": return target.getConfiguration().getProxyPort();
+ case "proxyprotocol":
+ case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
+ case "region": return target.getConfiguration().getRegion();
+ case "secretkey":
+ case "secretKey": return target.getConfiguration().getSecretKey();
+ case "sessiontoken":
+ case "sessionToken": return target.getConfiguration().getSessionToken();
+ 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 "useprofilecredentialsprovider":
+ case "useProfileCredentialsProvider": return target.getConfiguration().isUseProfileCredentialsProvider();
+ case "usesessioncredentials":
+ case "useSessionCredentials": return target.getConfiguration().isUseSessionCredentials();
+ 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
new file mode 100644
index 00000000000..48034113baf
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpointUriFactory.java
@@ -0,0 +1,93 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.aws2.bedrock.agent;
+
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.spi.EndpointUriFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+public class BedrockAgentEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
+
+ private static final String BASE = ":label";
+
+ private static final Set<String> PROPERTY_NAMES;
+ private static final Set<String> SECRET_PROPERTY_NAMES;
+ private static final Set<String> MULTI_VALUE_PREFIXES;
+ static {
+ Set<String> props = new HashSet<>(22);
+ props.add("accessKey");
+ props.add("bedrockAgentClient");
+ props.add("dataSourceId");
+ props.add("knowledgeBaseId");
+ props.add("label");
+ props.add("lazyStartProducer");
+ props.add("modelId");
+ props.add("operation");
+ props.add("overrideEndpoint");
+ props.add("pojoRequest");
+ props.add("profileCredentialsName");
+ props.add("proxyHost");
+ props.add("proxyPort");
+ props.add("proxyProtocol");
+ props.add("region");
+ props.add("secretKey");
+ props.add("sessionToken");
+ props.add("trustAllCertificates");
+ props.add("uriEndpointOverride");
+ props.add("useDefaultCredentialsProvider");
+ props.add("useProfileCredentialsProvider");
+ props.add("useSessionCredentials");
+ PROPERTY_NAMES = Collections.unmodifiableSet(props);
+ Set<String> secretProps = new HashSet<>(3);
+ secretProps.add("accessKey");
+ secretProps.add("secretKey");
+ secretProps.add("sessionToken");
+ SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
+ MULTI_VALUE_PREFIXES = Collections.emptySet();
+ }
+
+ @Override
+ public boolean isEnabled(String scheme) {
+ return "aws-bedrock-agent".equals(scheme);
+ }
+
+ @Override
+ public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
+ String syntax = scheme + BASE;
+ String uri = syntax;
+
+ Map<String, Object> copy = new HashMap<>(properties);
+
+ uri = buildPathParameter(syntax, uri, "label", null, true, copy);
+ uri = buildQueryParameters(uri, copy, encode);
+ return uri;
+ }
+
+ @Override
+ public Set<String> propertyNames() {
+ return PROPERTY_NAMES;
+ }
+
+ @Override
+ public Set<String> secretPropertyNames() {
+ return SECRET_PROPERTY_NAMES;
+ }
+
+ @Override
+ public Set<String> multiValuePrefixes() {
+ return MULTI_VALUE_PREFIXES;
+ }
+
+ @Override
+ public boolean isLenientProperties() {
+ return false;
+ }
+}
+
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
new file mode 100644
index 00000000000..d5ebf4c344d
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
@@ -0,0 +1,81 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "aws-bedrock-agent",
+ "title": "AWS Bedrock Agent",
+ "description": "Invoke Model of AWS Bedrock Agent Runtime service.",
+ "deprecated": false,
+ "firstVersion": "4.5.0",
+ "label": "ai,cloud",
+ "javaType": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-aws-bedrock",
+ "version": "4.5.0-SNAPSHOT",
+ "scheme": "aws-bedrock-agent",
+ "extendsScheme": "",
+ "syntax": "aws-bedrock-agent:label",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": true,
+ "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" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", "configurationField": "configuration", "descript [...]
+ "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 [...]
+ },
+ "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 [...]
+ },
+ "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" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration", "configurationField": "configuration", "descrip [...]
+ "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 [...]
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 421f033515c..dfa90ec5037 100644
--- a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -1,5 +1,5 @@
# Generated by camel build tools - do NOT edit this file!
-components=aws-bedrock aws-bedrock-agent-runtime
+components=aws-bedrock aws-bedrock-agent aws-bedrock-agent-runtime
groupId=org.apache.camel
artifactId=camel-aws-bedrock
version=4.5.0-SNAPSHOT
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component/aws-bedrock-agent b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component/aws-bedrock-agent
new file mode 100644
index 00000000000..978213eafe1
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/component/aws-bedrock-agent
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-component b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-component
new file mode 100644
index 00000000000..0ea9d85e387
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponentConfigurer
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-endpoint b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-endpoint
new file mode 100644
index 00000000000..f18ebd7ef0e
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-bedrock-agent-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.bedrock.agent.BedrockAgentEndpointConfigurer
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-bedrock-agent-endpoint b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-bedrock-agent-endpoint
new file mode 100644
index 00000000000..060a8322799
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-bedrock-agent-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.bedrock.agent.BedrockAgentEndpointUriFactory
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponent.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponent.java
new file mode 100644
index 00000000000..6a938a72020
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentComponent.java
@@ -0,0 +1,72 @@
+/*
+ * 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 java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.annotations.Component;
+import org.apache.camel.support.HealthCheckComponent;
+
+/**
+ * For working with Amazon Bedrock Agent SDK v2.
+ */
+@Component("aws-bedrock-agent")
+public class BedrockAgentComponent extends HealthCheckComponent {
+
+ @Metadata
+ private BedrockAgentConfiguration configuration = new BedrockAgentConfiguration();
+
+ public BedrockAgentComponent() {
+ this(null);
+ }
+
+ public BedrockAgentComponent(CamelContext context) {
+ super(context);
+ }
+
+ @Override
+ protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+ BedrockAgentConfiguration configuration
+ = this.configuration != null ? this.configuration.copy() : new BedrockAgentConfiguration();
+ BedrockAgentEndpoint endpoint = new BedrockAgentEndpoint(uri, this, configuration);
+ setProperties(endpoint, parameters);
+ if (Boolean.FALSE.equals(configuration.isUseDefaultCredentialsProvider())
+ && Boolean.FALSE.equals(configuration.isUseProfileCredentialsProvider())
+ && Boolean.FALSE.equals(configuration.isUseSessionCredentials())
+ && configuration.getBedrockAgentClient() == null
+ && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
+ throw new IllegalArgumentException(
+ "useDefaultCredentialsProvider is set to false, useProfileCredentialsProvider is set to false, useSessionCredentials is set to false, Amazon Bedrock runtime client or accessKey and secretKey must be specified");
+ }
+
+ return endpoint;
+ }
+
+ public BedrockAgentConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * Component configuration
+ */
+ public void setConfiguration(BedrockAgentConfiguration configuration) {
+ this.configuration = configuration;
+ }
+}
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
new file mode 100644
index 00000000000..aabf9ff19d4
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConfiguration.java
@@ -0,0 +1,314 @@
+/*
+ * 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.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+import org.apache.camel.spi.UriPath;
+import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+
+@UriParams
+public class BedrockAgentConfiguration implements Cloneable {
+
+ @UriPath(description = "Logical name")
+ @Metadata(required = true)
+ private String label;
+ @UriParam
+ @Metadata(label = "advanced", autowired = true)
+ private BedrockAgentClient bedrockAgentClient;
+ @UriParam(label = "security", secret = true)
+ private String accessKey;
+ @UriParam(label = "security", secret = true)
+ private String secretKey;
+ @UriParam(label = "security", secret = true)
+ private String sessionToken;
+ @UriParam(enums = "anthropic.claude-instant-v1,anthropic.claude-v2,anthropic.claude-v2:1")
+ @Metadata(required = true)
+ private String modelId;
+ @UriParam
+ @Metadata
+ private String knowledgeBaseId;
+ @UriParam
+ @Metadata
+ private String dataSourceId;
+ @UriParam
+ @Metadata(required = true)
+ private BedrockAgentOperations operation;
+ @UriParam(label = "proxy", enums = "HTTP,HTTPS", defaultValue = "HTTPS")
+ private Protocol proxyProtocol = Protocol.HTTPS;
+ @UriParam(label = "proxy")
+ private String proxyHost;
+ @UriParam(label = "proxy")
+ private Integer proxyPort;
+ @UriParam(enums = "us-east-1,us-west-1,ap-southeast-1,ap-northeast-1,eu-central-1")
+ private String region;
+ @UriParam
+ private boolean pojoRequest;
+ @UriParam(label = "security")
+ private boolean trustAllCertificates;
+ @UriParam
+ private boolean overrideEndpoint;
+ @UriParam
+ private String uriEndpointOverride;
+ @UriParam(defaultValue = "false")
+ private boolean useDefaultCredentialsProvider;
+ @UriParam(defaultValue = "false")
+ private boolean useProfileCredentialsProvider;
+ @UriParam(label = "security")
+ private boolean useSessionCredentials;
+ @UriParam(defaultValue = "false")
+ private String profileCredentialsName;
+
+ public BedrockAgentClient getBedrockAgentClient() {
+ return bedrockAgentClient;
+ }
+
+ /**
+ * To use an existing configured AWS Bedrock Agent client
+ */
+ public void setBedrockAgentClient(BedrockAgentClient bedrockRuntimeClient) {
+ this.bedrockAgentClient = bedrockRuntimeClient;
+ }
+
+ public String getAccessKey() {
+ return accessKey;
+ }
+
+ /**
+ * Amazon AWS Access Key
+ */
+ public void setAccessKey(String accessKey) {
+ this.accessKey = accessKey;
+ }
+
+ public String getSecretKey() {
+ return secretKey;
+ }
+
+ /**
+ * Amazon AWS Secret Key
+ */
+ public void setSecretKey(String secretKey) {
+ this.secretKey = secretKey;
+ }
+
+ public String getSessionToken() {
+ return sessionToken;
+ }
+
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM role
+ */
+ public void setSessionToken(String sessionToken) {
+ this.sessionToken = sessionToken;
+ }
+
+ public BedrockAgentOperations getOperation() {
+ return operation;
+ }
+
+ /**
+ * The operation to perform
+ */
+ public void setOperation(BedrockAgentOperations operation) {
+ this.operation = operation;
+ }
+
+ public Protocol getProxyProtocol() {
+ return proxyProtocol;
+ }
+
+ /**
+ * To define a proxy protocol when instantiating the Bedrock Agent client
+ */
+ public void setProxyProtocol(Protocol proxyProtocol) {
+ this.proxyProtocol = proxyProtocol;
+ }
+
+ public String getProxyHost() {
+ return proxyHost;
+ }
+
+ /**
+ * To define a proxy host when instantiating the Bedrock Agent client
+ */
+ public void setProxyHost(String proxyHost) {
+ this.proxyHost = proxyHost;
+ }
+
+ public Integer getProxyPort() {
+ return proxyPort;
+ }
+
+ /**
+ * To define a proxy port when instantiating the Bedrock Agent client
+ */
+ public void setProxyPort(Integer proxyPort) {
+ this.proxyPort = proxyPort;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ /**
+ * The region in which Bedrock Agent client needs to work. When using this parameter, the configuration will expect
+ * the lowercase name of the region (for example, ap-east-1) You'll need to use the name Region.EU_WEST_1.id()
+ */
+ public void setRegion(String region) {
+ this.region = region;
+ }
+
+ public boolean isPojoRequest() {
+ return pojoRequest;
+ }
+
+ /**
+ * If we want to use a POJO request as body or not
+ */
+ public void setPojoRequest(boolean pojoRequest) {
+ this.pojoRequest = pojoRequest;
+ }
+
+ public boolean isTrustAllCertificates() {
+ return trustAllCertificates;
+ }
+
+ /**
+ * If we want to trust all certificates in case of overriding the endpoint
+ */
+ public void setTrustAllCertificates(boolean trustAllCertificates) {
+ this.trustAllCertificates = trustAllCertificates;
+ }
+
+ public boolean isOverrideEndpoint() {
+ return overrideEndpoint;
+ }
+
+ /**
+ * Set the need for overriding the endpoint. This option needs to be used in combination with the
+ * uriEndpointOverride option
+ */
+ public void setOverrideEndpoint(boolean overrideEndpoint) {
+ this.overrideEndpoint = overrideEndpoint;
+ }
+
+ public String getUriEndpointOverride() {
+ return uriEndpointOverride;
+ }
+
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option
+ */
+ public void setUriEndpointOverride(String uriEndpointOverride) {
+ this.uriEndpointOverride = uriEndpointOverride;
+ }
+
+ /**
+ * Set whether the Bedrock Agent client should expect to load credentials through a default credentials provider or
+ * to expect static credentials to be passed in.
+ */
+ public void setUseDefaultCredentialsProvider(Boolean useDefaultCredentialsProvider) {
+ this.useDefaultCredentialsProvider = useDefaultCredentialsProvider;
+ }
+
+ public Boolean isUseDefaultCredentialsProvider() {
+ return useDefaultCredentialsProvider;
+ }
+
+ public boolean isUseProfileCredentialsProvider() {
+ return useProfileCredentialsProvider;
+ }
+
+ /**
+ * Set whether the Bedrock Agent client should expect to load credentials through a profile credentials provider.
+ */
+ public void setUseProfileCredentialsProvider(boolean useProfileCredentialsProvider) {
+ this.useProfileCredentialsProvider = useProfileCredentialsProvider;
+ }
+
+ public boolean isUseSessionCredentials() {
+ return useSessionCredentials;
+ }
+
+ /**
+ * Set whether the Bedrock Agent client should expect to use Session Credentials. This is useful in a situation in
+ * which the user needs to assume an IAM role for doing operations in Bedrock.
+ */
+ public void setUseSessionCredentials(boolean useSessionCredentials) {
+ this.useSessionCredentials = useSessionCredentials;
+ }
+
+ public String getProfileCredentialsName() {
+ return profileCredentialsName;
+ }
+
+ /**
+ * If using a profile credentials provider, this parameter will set the profile name
+ */
+ public void setProfileCredentialsName(String profileCredentialsName) {
+ this.profileCredentialsName = profileCredentialsName;
+ }
+
+ public String getModelId() {
+ return modelId;
+ }
+
+ /**
+ * Define the model Id we are going to use
+ */
+ public void setModelId(String modelId) {
+ this.modelId = modelId;
+ }
+
+ public String getKnowledgeBaseId() {
+ return knowledgeBaseId;
+ }
+
+ /**
+ * Define the Knowledge Base Id we are going to use
+ */
+ public void setKnowledgeBaseId(String knowledgeBaseId) {
+ this.knowledgeBaseId = knowledgeBaseId;
+ }
+
+ public String getDataSourceId() {
+ return dataSourceId;
+ }
+
+ /**
+ * Define the Data source Id we are going to use
+ */
+ public void setDataSourceId(String dataSourceId) {
+ this.dataSourceId = dataSourceId;
+ }
+
+ // *************************************************
+ //
+ // *************************************************
+
+ public BedrockAgentConfiguration copy() {
+ try {
+ return (BedrockAgentConfiguration) super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeCamelException(e);
+ }
+ }
+}
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
new file mode 100644
index 00000000000..6501f1a3cd1
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
@@ -0,0 +1,39 @@
+/*
+ * 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.spi.Metadata;
+
+/**
+ * Constants used in Camel AWS Bedrock Agent Runtime module SDK v2
+ */
+public interface BedrockAgentConstants {
+ @Metadata(description = "The operation we want to perform", javaType = "String")
+ String OPERATION = "CamelAwsBedrockAgentOperation";
+
+ @Metadata(description = "The header could be used to set up a model Id dynamically while performing operation",
+ javaType = "String")
+ String MODEL_ID = "CamelAwsBedrockAgentRuntimeModelId";
+
+ @Metadata(description = "The header could be used to set up a data source Id dynamically while performing operation",
+ javaType = "String")
+ String DATASOURCE_ID = "CamelAwsBedrockAgentDataSourceId";
+
+ @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";
+}
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
new file mode 100644
index 00000000000..b9ed6f00a6f
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentEndpoint.java
@@ -0,0 +1,91 @@
+/*
+ * 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.Category;
+import org.apache.camel.Component;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentClientFactory;
+import org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeConstants;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.support.ScheduledPollEndpoint;
+import org.apache.camel.util.ObjectHelper;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+
+/**
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ */
+@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 },
+ headersClass = BedrockAgentRuntimeConstants.class)
+public class BedrockAgentEndpoint extends ScheduledPollEndpoint {
+
+ private BedrockAgentClient bedrockAgentClient;
+
+ @UriParam
+ private BedrockAgentConfiguration configuration;
+
+ public BedrockAgentEndpoint(String uri, Component component, BedrockAgentConfiguration configuration) {
+ super(uri, component);
+ this.configuration = configuration;
+ }
+
+ @Override
+ public Consumer createConsumer(Processor processor) throws Exception {
+ throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
+ }
+
+ @Override
+ public Producer createProducer() throws Exception {
+ return new BedrockAgentProducer(this);
+ }
+
+ @Override
+ public BedrockAgentComponent getComponent() {
+ return (BedrockAgentComponent) super.getComponent();
+ }
+
+ @Override
+ public void doStart() throws Exception {
+ super.doStart();
+
+ bedrockAgentClient = configuration.getBedrockAgentClient() != null
+ ? configuration.getBedrockAgentClient()
+ : BedrockAgentClientFactory.getBedrockAgentClient(configuration).getBedrockAgentClient();
+ }
+
+ @Override
+ public void doStop() throws Exception {
+ if (ObjectHelper.isEmpty(configuration.getBedrockAgentClient())) {
+ if (bedrockAgentClient != null) {
+ bedrockAgentClient.close();
+ }
+ }
+ super.doStop();
+ }
+
+ public BedrockAgentConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ public BedrockAgentClient getBedrockAgentClient() {
+ return bedrockAgentClient;
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentOperations.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentOperations.java
new file mode 100644
index 00000000000..45b2b2cbff8
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentOperations.java
@@ -0,0 +1,22 @@
+/*
+ * 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;
+
+public enum BedrockAgentOperations {
+
+ startIngestionJob
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentProducer.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentProducer.java
new file mode 100644
index 00000000000..ba479bd3d0a
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentProducer.java
@@ -0,0 +1,138 @@
+/*
+ * 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.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.InvalidPayloadException;
+import org.apache.camel.Message;
+import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.awscore.exception.AwsServiceException;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import software.amazon.awssdk.services.bedrockagent.model.StartIngestionJobRequest;
+import software.amazon.awssdk.services.bedrockagent.model.StartIngestionJobResponse;
+import software.amazon.awssdk.services.bedrockagentruntime.model.*;
+
+/**
+ * A Producer which sends messages to the Amazon Bedrock Agent Service <a href="http://aws.amazon.com/bedrock/">AWS
+ * Bedrock</a>
+ */
+public class BedrockAgentProducer extends DefaultProducer {
+
+ private static final Logger LOG = LoggerFactory.getLogger(BedrockAgentProducer.class);
+ private transient String bedrockAgentProducerToString;
+
+ public BedrockAgentProducer(Endpoint endpoint) {
+ super(endpoint);
+ }
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ switch (determineOperation(exchange)) {
+ case startIngestionJob:
+ startIngestionJob(getEndpoint().getBedrockAgentClient(), exchange);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported operation");
+ }
+ }
+
+ private BedrockAgentOperations determineOperation(Exchange exchange) {
+ BedrockAgentOperations operation
+ = exchange.getIn().getHeader(BedrockAgentConstants.OPERATION, BedrockAgentOperations.class);
+ if (operation == null) {
+ operation = getConfiguration().getOperation();
+ }
+ return operation;
+ }
+
+ protected BedrockAgentConfiguration getConfiguration() {
+ return getEndpoint().getConfiguration();
+ }
+
+ @Override
+ public String toString() {
+ if (bedrockAgentProducerToString == null) {
+ bedrockAgentProducerToString
+ = "BedrockAgentProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
+ }
+ return bedrockAgentProducerToString;
+ }
+
+ @Override
+ public BedrockAgentEndpoint getEndpoint() {
+ return (BedrockAgentEndpoint) super.getEndpoint();
+ }
+
+ private void startIngestionJob(BedrockAgentClient bedrockAgentClient, Exchange exchange)
+ throws InvalidPayloadException {
+ if (getConfiguration().isPojoRequest()) {
+ Object payload = exchange.getMessage().getMandatoryBody();
+ if (payload instanceof StartIngestionJobRequest) {
+ StartIngestionJobResponse result;
+ try {
+ result = bedrockAgentClient.startIngestionJob((StartIngestionJobRequest) payload);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Start Ingestion Job command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ prepareResponse(result, message);
+ }
+ } else {
+ String knowledgeBaseId;
+ String dataSourceId;
+ StartIngestionJobRequest.Builder builder = StartIngestionJobRequest.builder();
+ if (ObjectHelper.isEmpty(getConfiguration().getKnowledgeBaseId())) {
+ if (ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockAgentConstants.KNOWLEDGE_BASE_ID))) {
+ knowledgeBaseId = exchange.getIn().getHeader(BedrockAgentConstants.KNOWLEDGE_BASE_ID, String.class);
+ } else {
+ throw new IllegalArgumentException("KnowledgeBaseId must be specified");
+ }
+ } else {
+ knowledgeBaseId = getConfiguration().getKnowledgeBaseId();
+ }
+ if (ObjectHelper.isEmpty(getConfiguration().getDataSourceId())) {
+ if (ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockAgentConstants.DATASOURCE_ID))) {
+ dataSourceId = exchange.getIn().getHeader(BedrockAgentConstants.DATASOURCE_ID, String.class);
+ } else {
+ throw new IllegalArgumentException("DataSourceId must be specified");
+ }
+ } else {
+ dataSourceId = getConfiguration().getDataSourceId();
+ }
+ builder.knowledgeBaseId(knowledgeBaseId);
+ builder.dataSourceId(dataSourceId);
+ StartIngestionJobResponse output = bedrockAgentClient.startIngestionJob(builder.build());
+ Message message = getMessageForResponse(exchange);
+ prepareResponse(output, message);
+ }
+ }
+
+ private void prepareResponse(StartIngestionJobResponse result, Message message) {
+ message.setBody(result.ingestionJob().ingestionJobId());
+ }
+
+ public static Message getMessageForResponse(final Exchange exchange) {
+ return exchange.getMessage();
+ }
+
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentClientFactory.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentClientFactory.java
new file mode 100644
index 00000000000..a2156edc107
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentClientFactory.java
@@ -0,0 +1,51 @@
+/*
+ * 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.client;
+
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientIAMOptimizedImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientIAMProfileOptimizedImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientSessionTokenImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientStandardImpl;
+
+/**
+ * Factory class to return the correct type of AWS Bedrock runtime client.
+ */
+public final class BedrockAgentClientFactory {
+
+ private BedrockAgentClientFactory() {
+ }
+
+ /**
+ * Return the correct AWS Bedrock Agent client (based on remote vs local).
+ *
+ * @param configuration configuration
+ * @return BedrockAgentInternalClient
+ */
+ public static BedrockAgentInternalClient getBedrockAgentClient(
+ BedrockAgentConfiguration configuration) {
+ if (Boolean.TRUE.equals(configuration.isUseDefaultCredentialsProvider())) {
+ return new BedrockAgentClientIAMOptimizedImpl(configuration);
+ } else if (Boolean.TRUE.equals(configuration.isUseProfileCredentialsProvider())) {
+ return new BedrockAgentClientIAMProfileOptimizedImpl(configuration);
+ } else if (Boolean.TRUE.equals(configuration.isUseSessionCredentials())) {
+ return new BedrockAgentClientSessionTokenImpl(configuration);
+ } else {
+ return new BedrockAgentClientStandardImpl(configuration);
+ }
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentInternalClient.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentInternalClient.java
new file mode 100644
index 00000000000..cf1253f2437
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/BedrockAgentInternalClient.java
@@ -0,0 +1,32 @@
+/*
+ * 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.client;
+
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+
+/**
+ * Manage the required actions of an Bedrock Agent client for either local or remote.
+ */
+public interface BedrockAgentInternalClient {
+
+ /**
+ * Returns an Bedrock Agent client after a factory method determines which one to return.
+ *
+ * @return BedrockAgentClient BedrockAgentClient
+ */
+ BedrockAgentClient getBedrockAgentClient();
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMOptimizedImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMOptimizedImpl.java
new file mode 100644
index 00000000000..a75266bed05
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMOptimizedImpl.java
@@ -0,0 +1,94 @@
+/*
+ * 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.client.impl;
+
+import java.net.URI;
+
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentInternalClient;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.SdkHttpConfigurationOption;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache.ProxyConfiguration;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClientBuilder;
+import software.amazon.awssdk.utils.AttributeMap;
+
+/**
+ * Manage an AWS Bedrock Agent client for all users to use (enabling temporary creds). This implementation is for remote
+ * instances to manage the credentials on their own (eliminating credential rotations)
+ */
+public class BedrockAgentClientIAMOptimizedImpl implements BedrockAgentInternalClient {
+ private static final Logger LOG = LoggerFactory.getLogger(BedrockAgentClientIAMOptimizedImpl.class);
+ private BedrockAgentConfiguration configuration;
+
+ /**
+ * Constructor that uses the config file.
+ */
+ public BedrockAgentClientIAMOptimizedImpl(BedrockAgentConfiguration configuration) {
+ LOG.trace(
+ "Creating an AWS Bedrock Agent client for an ec2 instance with IAM temporary credentials (normal for ec2s).");
+ this.configuration = configuration;
+ }
+
+ /**
+ * Getting the Bedrock Agent aws client that is used.
+ *
+ * @return BedrockAgentClient Client.
+ */
+ @Override
+ public BedrockAgentClient getBedrockAgentClient() {
+ BedrockAgentClient client = null;
+ BedrockAgentClientBuilder clientBuilder = BedrockAgentClient.builder();
+ ProxyConfiguration.Builder proxyConfig = null;
+ ApacheHttpClient.Builder httpClientBuilder = null;
+ if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
+ proxyConfig = ProxyConfiguration.builder();
+ URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":"
+ + configuration.getProxyPort());
+ proxyConfig.endpoint(proxyEndpoint);
+ httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build());
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder);
+ }
+ if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+ clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+ }
+ if (configuration.isOverrideEndpoint()) {
+ clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+ }
+ if (configuration.isTrustAllCertificates()) {
+ if (httpClientBuilder == null) {
+ httpClientBuilder = ApacheHttpClient.builder();
+ }
+ SdkHttpClient ahc = httpClientBuilder.buildWithDefaults(AttributeMap
+ .builder()
+ .put(
+ SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES,
+ Boolean.TRUE)
+ .build());
+ // set created http client to use instead of builder
+ clientBuilder.httpClient(ahc);
+ clientBuilder.httpClientBuilder(null);
+ }
+ client = clientBuilder.build();
+ return client;
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMProfileOptimizedImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMProfileOptimizedImpl.java
new file mode 100644
index 00000000000..f1b814ad212
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientIAMProfileOptimizedImpl.java
@@ -0,0 +1,99 @@
+/*
+ * 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.client.impl;
+
+import java.net.URI;
+
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentInternalClient;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.SdkHttpConfigurationOption;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache.ProxyConfiguration;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClientBuilder;
+import software.amazon.awssdk.utils.AttributeMap;
+
+/**
+ * Manage an AWS Bedrock Agent Runtime client for all users to use (enabling temporary creds). This implementation is
+ * for remote instances to manage the credentials on their own (eliminating credential rotations)
+ */
+public class BedrockAgentClientIAMProfileOptimizedImpl implements BedrockAgentInternalClient {
+ private static final Logger LOG = LoggerFactory.getLogger(BedrockAgentClientIAMProfileOptimizedImpl.class);
+ private BedrockAgentConfiguration configuration;
+
+ /**
+ * Constructor that uses the config file.
+ */
+ public BedrockAgentClientIAMProfileOptimizedImpl(BedrockAgentConfiguration configuration) {
+ LOG.trace(
+ "Creating an AWS Bedrock Agent client for an ec2 instance with IAM temporary credentials (normal for ec2s).");
+ this.configuration = configuration;
+ }
+
+ /**
+ * Getting the Bedrock Agent aws client that is used.
+ *
+ * @return Bedrock Agent Client.
+ */
+ @Override
+ public BedrockAgentClient getBedrockAgentClient() {
+ BedrockAgentClient client = null;
+ BedrockAgentClientBuilder clientBuilder = BedrockAgentClient.builder();
+ ProxyConfiguration.Builder proxyConfig = null;
+ ApacheHttpClient.Builder httpClientBuilder = null;
+ if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
+ proxyConfig = ProxyConfiguration.builder();
+ URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":"
+ + configuration.getProxyPort());
+ proxyConfig.endpoint(proxyEndpoint);
+ httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build());
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder);
+ }
+ if (configuration.getProfileCredentialsName() != null) {
+ clientBuilder = clientBuilder
+ .credentialsProvider(ProfileCredentialsProvider.create(configuration.getProfileCredentialsName()));
+ }
+ if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+ clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+ }
+ if (configuration.isOverrideEndpoint()) {
+ clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+ }
+ if (configuration.isTrustAllCertificates()) {
+ if (httpClientBuilder == null) {
+ httpClientBuilder = ApacheHttpClient.builder();
+ }
+ SdkHttpClient ahc = httpClientBuilder.buildWithDefaults(AttributeMap
+ .builder()
+ .put(
+ SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES,
+ Boolean.TRUE)
+ .build());
+ // set created http client to use instead of builder
+ clientBuilder.httpClient(ahc);
+ clientBuilder.httpClientBuilder(null);
+ }
+ client = clientBuilder.build();
+ return client;
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientSessionTokenImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientSessionTokenImpl.java
new file mode 100644
index 00000000000..e415e650662
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientSessionTokenImpl.java
@@ -0,0 +1,111 @@
+/*
+ * 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.client.impl;
+
+import java.net.URI;
+
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentInternalClient;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.SdkHttpConfigurationOption;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache.ProxyConfiguration;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClientBuilder;
+import software.amazon.awssdk.utils.AttributeMap;
+
+/**
+ * Manage an AWS Bedrock Agent client for all users to use. This implementation is for local instances to use a static
+ * and solid credential set.
+ */
+public class BedrockAgentClientSessionTokenImpl implements BedrockAgentInternalClient {
+ private static final Logger LOG = LoggerFactory.getLogger(BedrockAgentClientSessionTokenImpl.class);
+ private BedrockAgentConfiguration configuration;
+
+ /**
+ * Constructor that uses the config file.
+ */
+ public BedrockAgentClientSessionTokenImpl(BedrockAgentConfiguration configuration) {
+ LOG.trace("Creating an AWS Bedrock Agent manager using static credentials.");
+ this.configuration = configuration;
+ }
+
+ /**
+ * Getting the Bedrock Agent AWS client that is used.
+ *
+ * @return BedrockAgentClient Client.
+ */
+ @Override
+ public BedrockAgentClient getBedrockAgentClient() {
+ BedrockAgentClient client = null;
+ BedrockAgentClientBuilder clientBuilder = BedrockAgentClient.builder();
+ ProxyConfiguration.Builder proxyConfig = null;
+ ApacheHttpClient.Builder httpClientBuilder = null;
+ boolean isClientConfigFound = false;
+ if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
+ proxyConfig = ProxyConfiguration.builder();
+ URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":"
+ + configuration.getProxyPort());
+ proxyConfig.endpoint(proxyEndpoint);
+ httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build());
+ isClientConfigFound = true;
+ }
+ if (configuration.getAccessKey() != null && configuration.getSecretKey() != null
+ && configuration.getSessionToken() != null) {
+ AwsSessionCredentials cred = AwsSessionCredentials.create(configuration.getAccessKey(),
+ configuration.getSecretKey(), configuration.getSessionToken());
+ if (isClientConfigFound) {
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder)
+ .credentialsProvider(StaticCredentialsProvider.create(cred));
+ } else {
+ clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred));
+ }
+ } else {
+ if (!isClientConfigFound) {
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder);
+ }
+ }
+ if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+ clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+ }
+ if (configuration.isOverrideEndpoint()) {
+ clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+ }
+ if (configuration.isTrustAllCertificates()) {
+ if (httpClientBuilder == null) {
+ httpClientBuilder = ApacheHttpClient.builder();
+ }
+ SdkHttpClient ahc = httpClientBuilder.buildWithDefaults(AttributeMap
+ .builder()
+ .put(
+ SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES,
+ Boolean.TRUE)
+ .build());
+ // set created http client to use instead of builder
+ clientBuilder.httpClient(ahc);
+ clientBuilder.httpClientBuilder(null);
+ }
+ client = clientBuilder.build();
+ return client;
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientStandardImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientStandardImpl.java
new file mode 100644
index 00000000000..8d09a255eb2
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/client/impl/BedrockAgentClientStandardImpl.java
@@ -0,0 +1,109 @@
+/*
+ * 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.client.impl;
+
+import java.net.URI;
+
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentInternalClient;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.SdkHttpConfigurationOption;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache.ProxyConfiguration;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClient;
+import software.amazon.awssdk.services.bedrockagent.BedrockAgentClientBuilder;
+import software.amazon.awssdk.utils.AttributeMap;
+
+/**
+ * Manage an AWS Bedrock Agent Runtime client for all users to use. This implementation is for local instances to use a
+ * static and solid credential set.
+ */
+public class BedrockAgentClientStandardImpl implements BedrockAgentInternalClient {
+ private static final Logger LOG = LoggerFactory.getLogger(BedrockAgentClientStandardImpl.class);
+ private BedrockAgentConfiguration configuration;
+
+ /**
+ * Constructor that uses the config file.
+ */
+ public BedrockAgentClientStandardImpl(BedrockAgentConfiguration configuration) {
+ LOG.trace("Creating an AWS Bedrock Agent manager using static credentials.");
+ this.configuration = configuration;
+ }
+
+ /**
+ * Getting the Bedrock Agent AWS client that is used.
+ *
+ * @return BedrockAgentClient Client.
+ */
+ @Override
+ public BedrockAgentClient getBedrockAgentClient() {
+ BedrockAgentClient client = null;
+ BedrockAgentClientBuilder clientBuilder = BedrockAgentClient.builder();
+ ProxyConfiguration.Builder proxyConfig = null;
+ ApacheHttpClient.Builder httpClientBuilder = null;
+ boolean isClientConfigFound = false;
+ if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
+ proxyConfig = ProxyConfiguration.builder();
+ URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":"
+ + configuration.getProxyPort());
+ proxyConfig.endpoint(proxyEndpoint);
+ httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build());
+ isClientConfigFound = true;
+ }
+ if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
+ AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey());
+ if (isClientConfigFound) {
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder)
+ .credentialsProvider(StaticCredentialsProvider.create(cred));
+ } else {
+ clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred));
+ }
+ } else {
+ if (!isClientConfigFound) {
+ clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder);
+ }
+ }
+ if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+ clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+ }
+ if (configuration.isOverrideEndpoint()) {
+ clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+ }
+ if (configuration.isTrustAllCertificates()) {
+ if (httpClientBuilder == null) {
+ httpClientBuilder = ApacheHttpClient.builder();
+ }
+ SdkHttpClient ahc = httpClientBuilder.buildWithDefaults(AttributeMap
+ .builder()
+ .put(
+ SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES,
+ Boolean.TRUE)
+ .build());
+ // set created http client to use instead of builder
+ clientBuilder.httpClient(ahc);
+ clientBuilder.httpClientBuilder(null);
+ }
+ client = clientBuilder.build();
+ return client;
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentClientFactoryTest.java b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentClientFactoryTest.java
new file mode 100644
index 00000000000..92e05161bc0
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentClientFactoryTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.component.aws2.bedrock.agent.client.BedrockAgentClientFactory;
+import org.apache.camel.component.aws2.bedrock.agent.client.BedrockAgentInternalClient;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientIAMOptimizedImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientIAMProfileOptimizedImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientSessionTokenImpl;
+import org.apache.camel.component.aws2.bedrock.agent.client.impl.BedrockAgentClientStandardImpl;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class BedrockAgentClientFactoryTest {
+
+ @Test
+ public void getStandardBedrockAgentClientDefault() {
+ BedrockAgentConfiguration bedrockConfiguration = new BedrockAgentConfiguration();
+ BedrockAgentInternalClient bedrockClient
+ = BedrockAgentClientFactory.getBedrockAgentClient(bedrockConfiguration);
+ assertTrue(bedrockClient instanceof BedrockAgentClientStandardImpl);
+ }
+
+ @Test
+ public void getStandardNoIamBedrockAgentClientDefault() {
+ BedrockAgentConfiguration bedrockConfiguration = new BedrockAgentConfiguration();
+ bedrockConfiguration.setUseDefaultCredentialsProvider(false);
+ BedrockAgentInternalClient bedrockClient
+ = BedrockAgentClientFactory.getBedrockAgentClient(bedrockConfiguration);
+ assertTrue(bedrockClient instanceof BedrockAgentClientStandardImpl);
+ }
+
+ @Test
+ public void getIamBedrockAgentClientDefault() {
+ BedrockAgentConfiguration bedrockConfiguration = new BedrockAgentConfiguration();
+ bedrockConfiguration.setUseDefaultCredentialsProvider(true);
+ BedrockAgentInternalClient bedrockClient
+ = BedrockAgentClientFactory.getBedrockAgentClient(bedrockConfiguration);
+ assertTrue(bedrockClient instanceof BedrockAgentClientIAMOptimizedImpl);
+ }
+
+ @Test
+ public void getSessionBedrockAgentClientDefault() {
+ BedrockAgentConfiguration bedrockConfiguration = new BedrockAgentConfiguration();
+ bedrockConfiguration.setUseSessionCredentials(true);
+ BedrockAgentInternalClient bedrockClient
+ = BedrockAgentClientFactory.getBedrockAgentClient(bedrockConfiguration);
+ assertTrue(bedrockClient instanceof BedrockAgentClientSessionTokenImpl);
+ }
+
+ @Test
+ public void getIamProfileBedrockAgentClientDefault() {
+ BedrockAgentConfiguration bedrockConfiguration = new BedrockAgentConfiguration();
+ bedrockConfiguration.setUseProfileCredentialsProvider(true);
+ BedrockAgentInternalClient bedrockClient
+ = BedrockAgentClientFactory.getBedrockAgentClient(bedrockConfiguration);
+ assertTrue(bedrockClient instanceof BedrockAgentClientIAMProfileOptimizedImpl);
+ }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentProducerIT.java b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentProducerIT.java
new file mode 100644
index 00000000000..cf370902ac7
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/agent/integration/BedrockAgentProducerIT.java
@@ -0,0 +1,69 @@
+/*
+ * 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.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConstants;
+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;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperties;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
+
+// 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 BedrockAgentProducerIT extends CamelTestSupport {
+
+ @EndpointInject
+ private ProducerTemplate template;
+
+ @EndpointInject("mock:result")
+ private MockEndpoint result;
+
+ @Test
+ public void testSyncIngestionJob() throws InterruptedException {
+
+ result.expectedMessageCount(1);
+ final Exchange result = template.send("direct:start_ingestion", exchange -> {
+ exchange.getMessage().setHeader(BedrockAgentConstants.KNOWLEDGE_BASE_ID, "QOZ68KOXTS");
+ exchange.getMessage().setHeader(BedrockAgentConstants.DATASOURCE_ID, "9V85PTUEAH");
+ });
+
+ MockEndpoint.assertIsSatisfied(context);
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ from("direct:start_ingestion")
+ .to("aws-bedrock-agent:label?accessKey=RAW({{aws.manual.access.key}})&secretKey=RAW({{aws.manual.secret.key}}®ion=us-east-1&operation=startIngestionJob&knowledgeBaseId=QOZ68KOXTS")
+ .log("${body}")
+ .to(result);
+ }
+ };
+ }
+}
diff --git a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index c06addb20ee..673903942e0 100644
--- a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -7,6 +7,7 @@ atmosphere-websocket
atom
avro
aws-bedrock
+aws-bedrock-agent
aws-bedrock-agent-runtime
aws-cloudtrail
aws-config
diff --git a/docs/components/modules/ROOT/examples/json/aws-bedrock-agent.json b/docs/components/modules/ROOT/examples/json/aws-bedrock-agent.json
new file mode 120000
index 00000000000..1dea2972f43
--- /dev/null
+++ b/docs/components/modules/ROOT/examples/json/aws-bedrock-agent.json
@@ -0,0 +1 @@
+../../../../../../components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
\ No newline at end of file
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index c2bda639b97..072ba28bdd4 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -162,6 +162,19 @@ public interface ComponentsBuilderFactory {
static org.apache.camel.builder.component.dsl.AwsBedrockComponentBuilderFactory.AwsBedrockComponentBuilder awsBedrock() {
return org.apache.camel.builder.component.dsl.AwsBedrockComponentBuilderFactory.awsBedrock();
}
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * @return the dsl builder
+ */
+ static org.apache.camel.builder.component.dsl.AwsBedrockAgentComponentBuilderFactory.AwsBedrockAgentComponentBuilder awsBedrockAgent() {
+ return org.apache.camel.builder.component.dsl.AwsBedrockAgentComponentBuilderFactory.awsBedrockAgent();
+ }
/**
* AWS Bedrock Agent Runtime (camel-aws-bedrock)
* Invoke Model of AWS Bedrock Agent Runtime service.
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockAgentComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockAgentComponentBuilderFactory.java
new file mode 100644
index 00000000000..85e6d5835d9
--- /dev/null
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockAgentComponentBuilderFactory.java
@@ -0,0 +1,525 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent;
+
+/**
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AwsBedrockAgentComponentBuilderFactory {
+
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * @return the dsl builder
+ */
+ static AwsBedrockAgentComponentBuilder awsBedrockAgent() {
+ return new AwsBedrockAgentComponentBuilderImpl();
+ }
+
+ /**
+ * Builder for the AWS Bedrock Agent component.
+ */
+ interface AwsBedrockAgentComponentBuilder
+ extends
+ ComponentBuilder<BedrockAgentComponent> {
+ /**
+ * Component configuration.
+ *
+ * The option is a:
+ * <code>org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration</code> type.
+ *
+ * Group: producer
+ *
+ * @param configuration the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder configuration(
+ org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration configuration) {
+ doSetProperty("configuration", configuration);
+ return this;
+ }
+ /**
+ * Define the Data source Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param dataSourceId the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder dataSourceId(
+ java.lang.String dataSourceId) {
+ doSetProperty("dataSourceId", dataSourceId);
+ return this;
+ }
+ /**
+ * Define the Knowledge Base Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param knowledgeBaseId the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder knowledgeBaseId(
+ java.lang.String knowledgeBaseId) {
+ doSetProperty("knowledgeBaseId", knowledgeBaseId);
+ return this;
+ }
+ /**
+ * Whether the producer should be started lazy (on the first message).
+ * By starting lazy you can use this to allow CamelContext and routes to
+ * startup in situations where a producer may otherwise fail during
+ * starting and cause the route to fail being started. By deferring this
+ * startup to be lazy then the startup failure can be handled during
+ * routing messages via Camel's routing error handlers. Beware that when
+ * the first message is processed then creating and starting the
+ * producer may take a little time and prolong the total processing time
+ * of the processing.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder lazyStartProducer(
+ boolean lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ /**
+ * Define the model Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param modelId the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder modelId(java.lang.String modelId) {
+ doSetProperty("modelId", modelId);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option is a:
+ * <code>org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations</code> type.
+ *
+ * Group: producer
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder operation(
+ org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder overrideEndpoint(
+ boolean overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ return this;
+ }
+ /**
+ * If we want to use a POJO request as body or not.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder pojoRequest(boolean pojoRequest) {
+ doSetProperty("pojoRequest", pojoRequest);
+ return this;
+ }
+ /**
+ * If using a profile credentials provider, this parameter will set the
+ * profile name.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param profileCredentialsName the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder profileCredentialsName(
+ java.lang.String profileCredentialsName) {
+ doSetProperty("profileCredentialsName", profileCredentialsName);
+ return this;
+ }
+ /**
+ * The region in which Bedrock Agent client needs to work. When using
+ * this parameter, the configuration will expect the lowercase name of
+ * the region (for example, ap-east-1) You'll need to use the name
+ * Region.EU_WEST_1.id().
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param region the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder region(java.lang.String region) {
+ doSetProperty("region", region);
+ return this;
+ }
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in
+ * combination with overrideEndpoint option.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param uriEndpointOverride the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder uriEndpointOverride(
+ java.lang.String uriEndpointOverride) {
+ doSetProperty("uriEndpointOverride", uriEndpointOverride);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a default credentials provider or to expect
+ * static credentials to be passed in.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder useDefaultCredentialsProvider(
+ boolean useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a profile credentials provider.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder useProfileCredentialsProvider(
+ boolean useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Whether autowiring is enabled. This is used for automatic autowiring
+ * options (the option must be marked as autowired) by looking up in the
+ * registry to find if there is a single instance of matching type,
+ * which then gets configured on the component. This can be used for
+ * automatic configuring JDBC data sources, JMS connection factories,
+ * AWS Clients, etc.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: advanced
+ *
+ * @param autowiredEnabled the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder autowiredEnabled(
+ boolean autowiredEnabled) {
+ doSetProperty("autowiredEnabled", autowiredEnabled);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Bedrock Agent client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.services.bedrockagent.BedrockAgentClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param bedrockAgentClient the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder bedrockAgentClient(
+ software.amazon.awssdk.services.bedrockagent.BedrockAgentClient bedrockAgentClient) {
+ doSetProperty("bedrockAgentClient", bedrockAgentClient);
+ return this;
+ }
+ /**
+ * Used for enabling or disabling all consumer based health checks from
+ * this component.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: health
+ *
+ * @param healthCheckConsumerEnabled the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder healthCheckConsumerEnabled(
+ boolean healthCheckConsumerEnabled) {
+ doSetProperty("healthCheckConsumerEnabled", healthCheckConsumerEnabled);
+ return this;
+ }
+ /**
+ * 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 producer checks globally by
+ * setting camel.health.producersEnabled=true.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: health
+ *
+ * @param healthCheckProducerEnabled the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder healthCheckProducerEnabled(
+ boolean healthCheckProducerEnabled) {
+ doSetProperty("healthCheckProducerEnabled", healthCheckProducerEnabled);
+ return this;
+ }
+ /**
+ * To define a proxy host when instantiating the Bedrock Agent client.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyHost the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder proxyHost(
+ java.lang.String proxyHost) {
+ doSetProperty("proxyHost", proxyHost);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Bedrock Agent client.
+ *
+ * The option is a: <code>java.lang.Integer</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder proxyPort(
+ java.lang.Integer proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Bedrock Agent
+ * client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.core.Protocol</code> type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder proxyProtocol(
+ software.amazon.awssdk.core.Protocol proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * Amazon AWS Access Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param accessKey the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder accessKey(
+ java.lang.String accessKey) {
+ doSetProperty("accessKey", accessKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Secret Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param secretKey the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder secretKey(
+ java.lang.String secretKey) {
+ doSetProperty("secretKey", secretKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM
+ * role.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param sessionToken the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder sessionToken(
+ java.lang.String sessionToken) {
+ doSetProperty("sessionToken", sessionToken);
+ return this;
+ }
+ /**
+ * If we want to trust all certificates in case of overriding the
+ * endpoint.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder trustAllCertificates(
+ boolean trustAllCertificates) {
+ doSetProperty("trustAllCertificates", trustAllCertificates);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Bedrock.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default AwsBedrockAgentComponentBuilder useSessionCredentials(
+ boolean useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ }
+
+ class AwsBedrockAgentComponentBuilderImpl
+ extends
+ AbstractComponentBuilder<BedrockAgentComponent>
+ implements
+ AwsBedrockAgentComponentBuilder {
+ @Override
+ protected BedrockAgentComponent buildConcreteComponent() {
+ return new BedrockAgentComponent();
+ }
+ private org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration getOrCreateConfiguration(
+ org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent component) {
+ if (component.getConfiguration() == null) {
+ component.setConfiguration(new org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration());
+ }
+ return component.getConfiguration();
+ }
+ @Override
+ protected boolean setPropertyOnComponent(
+ Component component,
+ String name,
+ Object value) {
+ switch (name) {
+ case "configuration": ((BedrockAgentComponent) component).setConfiguration((org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration) value); return true;
+ case "dataSourceId": getOrCreateConfiguration((BedrockAgentComponent) component).setDataSourceId((java.lang.String) value); return true;
+ case "knowledgeBaseId": getOrCreateConfiguration((BedrockAgentComponent) component).setKnowledgeBaseId((java.lang.String) value); return true;
+ case "lazyStartProducer": ((BedrockAgentComponent) component).setLazyStartProducer((boolean) value); return true;
+ case "modelId": getOrCreateConfiguration((BedrockAgentComponent) component).setModelId((java.lang.String) value); return true;
+ case "operation": getOrCreateConfiguration((BedrockAgentComponent) component).setOperation((org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations) value); return true;
+ case "overrideEndpoint": getOrCreateConfiguration((BedrockAgentComponent) component).setOverrideEndpoint((boolean) value); return true;
+ case "pojoRequest": getOrCreateConfiguration((BedrockAgentComponent) component).setPojoRequest((boolean) value); return true;
+ case "profileCredentialsName": getOrCreateConfiguration((BedrockAgentComponent) component).setProfileCredentialsName((java.lang.String) value); return true;
+ case "region": getOrCreateConfiguration((BedrockAgentComponent) component).setRegion((java.lang.String) value); return true;
+ case "uriEndpointOverride": getOrCreateConfiguration((BedrockAgentComponent) component).setUriEndpointOverride((java.lang.String) value); return true;
+ case "useDefaultCredentialsProvider": getOrCreateConfiguration((BedrockAgentComponent) component).setUseDefaultCredentialsProvider((boolean) value); return true;
+ case "useProfileCredentialsProvider": getOrCreateConfiguration((BedrockAgentComponent) component).setUseProfileCredentialsProvider((boolean) value); return true;
+ case "autowiredEnabled": ((BedrockAgentComponent) component).setAutowiredEnabled((boolean) value); return true;
+ case "bedrockAgentClient": getOrCreateConfiguration((BedrockAgentComponent) component).setBedrockAgentClient((software.amazon.awssdk.services.bedrockagent.BedrockAgentClient) value); return true;
+ case "healthCheckConsumerEnabled": ((BedrockAgentComponent) component).setHealthCheckConsumerEnabled((boolean) value); return true;
+ case "healthCheckProducerEnabled": ((BedrockAgentComponent) component).setHealthCheckProducerEnabled((boolean) value); return true;
+ case "proxyHost": getOrCreateConfiguration((BedrockAgentComponent) component).setProxyHost((java.lang.String) value); return true;
+ case "proxyPort": getOrCreateConfiguration((BedrockAgentComponent) component).setProxyPort((java.lang.Integer) value); return true;
+ case "proxyProtocol": getOrCreateConfiguration((BedrockAgentComponent) component).setProxyProtocol((software.amazon.awssdk.core.Protocol) value); return true;
+ case "accessKey": getOrCreateConfiguration((BedrockAgentComponent) component).setAccessKey((java.lang.String) value); return true;
+ case "secretKey": getOrCreateConfiguration((BedrockAgentComponent) component).setSecretKey((java.lang.String) value); return true;
+ case "sessionToken": getOrCreateConfiguration((BedrockAgentComponent) component).setSessionToken((java.lang.String) value); return true;
+ case "trustAllCertificates": getOrCreateConfiguration((BedrockAgentComponent) component).setTrustAllCertificates((boolean) value); return true;
+ case "useSessionCredentials": getOrCreateConfiguration((BedrockAgentComponent) component).setUseSessionCredentials((boolean) value); return true;
+ default: return false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/dsl/camel-componentdsl/src/generated/resources/metadata.json b/dsl/camel-componentdsl/src/generated/resources/metadata.json
index fca9b65b9a5..d687bcb04b2 100644
--- a/dsl/camel-componentdsl/src/generated/resources/metadata.json
+++ b/dsl/camel-componentdsl/src/generated/resources/metadata.json
@@ -736,6 +736,29 @@
"lenientProperties": false,
"remote": true
},
+ "AwsBedrockAgentComponentBuilderFactory": {
+ "kind": "component",
+ "name": "aws-bedrock-agent",
+ "title": "AWS Bedrock Agent",
+ "description": "Invoke Model of AWS Bedrock Agent Runtime service.",
+ "deprecated": false,
+ "firstVersion": "4.5.0",
+ "label": "ai,cloud",
+ "javaType": "org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-aws-bedrock",
+ "version": "4.5.0-SNAPSHOT",
+ "scheme": "aws-bedrock-agent",
+ "extendsScheme": "",
+ "syntax": "aws-bedrock-agent:label",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": true,
+ "lenientProperties": false,
+ "remote": true
+ },
"AwsBedrockAgentRuntimeComponentBuilderFactory": {
"kind": "component",
"name": "aws-bedrock-agent-runtime",
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 9742c598aed..bc453a81bb0 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -41,6 +41,7 @@ public interface EndpointBuilderFactory
org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory.AvroBuilders,
org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory.BeanBuilders,
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders,
+ org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.BedrockAgentBuilders,
org.apache.camel.builder.endpoint.dsl.BedrockAgentRuntimeEndpointBuilderFactory.BedrockAgentRuntimeBuilders,
org.apache.camel.builder.endpoint.dsl.BedrockEndpointBuilderFactory.BedrockBuilders,
org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory.BlobBuilders,
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index f61ed1ad51c..31746c3295a 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -38,6 +38,7 @@ public interface EndpointBuilders
org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory,
+ org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.BedrockAgentRuntimeEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.BedrockEndpointBuilderFactory,
org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory,
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 2421ed3dac1..723e3df4e13 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -1507,6 +1507,49 @@ public class StaticEndpointBuilders {
String path) {
return org.apache.camel.builder.endpoint.dsl.BedrockEndpointBuilderFactory.endpointBuilder(componentName, path);
}
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * Syntax: <code>aws-bedrock-agent:label</code>
+ *
+ * Path parameter: label (required)
+ * Logical name
+ *
+ * @param path label
+ * @return the dsl builder
+ */
+ public static org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.BedrockAgentEndpointBuilder awsBedrockAgent(
+ String path) {
+ return org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.endpointBuilder("aws-bedrock-agent", path);
+ }
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * Syntax: <code>aws-bedrock-agent:label</code>
+ *
+ * Path parameter: label (required)
+ * Logical name
+ *
+ * @param componentName to use a custom component name for the endpoint
+ * instead of the default name
+ * @param path label
+ * @return the dsl builder
+ */
+ public static org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.BedrockAgentEndpointBuilder awsBedrockAgent(
+ String componentName,
+ String path) {
+ return org.apache.camel.builder.endpoint.dsl.BedrockAgentEndpointBuilderFactory.endpointBuilder(componentName, path);
+ }
/**
* AWS Bedrock Agent Runtime (camel-aws-bedrock)
* Invoke Model of AWS Bedrock Agent Runtime service.
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockAgentEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockAgentEndpointBuilderFactory.java
new file mode 100644
index 00000000000..525aaa42ea7
--- /dev/null
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockAgentEndpointBuilderFactory.java
@@ -0,0 +1,721 @@
+/*
+ * 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.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface BedrockAgentEndpointBuilderFactory {
+
+
+ /**
+ * Builder for endpoint for the AWS Bedrock Agent component.
+ */
+ public interface BedrockAgentEndpointBuilder
+ extends
+ EndpointProducerBuilder {
+ default AdvancedBedrockAgentEndpointBuilder advanced() {
+ return (AdvancedBedrockAgentEndpointBuilder) this;
+ }
+ /**
+ * Define the Data source Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param dataSourceId the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder dataSourceId(String dataSourceId) {
+ doSetProperty("dataSourceId", dataSourceId);
+ return this;
+ }
+ /**
+ * Define the Knowledge Base Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param knowledgeBaseId the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder knowledgeBaseId(
+ String knowledgeBaseId) {
+ doSetProperty("knowledgeBaseId", knowledgeBaseId);
+ return this;
+ }
+ /**
+ * Define the model Id we are going to use.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Required: true
+ * Group: producer
+ *
+ * @param modelId the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder modelId(String modelId) {
+ doSetProperty("modelId", modelId);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option is a:
+ * <code>org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations</code> type.
+ *
+ * Required: true
+ * Group: producer
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder operation(
+ org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations</code> type.
+ *
+ * Required: true
+ * Group: producer
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder operation(String operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder overrideEndpoint(
+ boolean overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder overrideEndpoint(
+ String overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ return this;
+ }
+ /**
+ * If we want to use a POJO request as body or not.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder pojoRequest(boolean pojoRequest) {
+ doSetProperty("pojoRequest", pojoRequest);
+ return this;
+ }
+ /**
+ * If we want to use a POJO request as body or not.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder pojoRequest(String pojoRequest) {
+ doSetProperty("pojoRequest", pojoRequest);
+ return this;
+ }
+ /**
+ * If using a profile credentials provider, this parameter will set the
+ * profile name.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param profileCredentialsName the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder profileCredentialsName(
+ String profileCredentialsName) {
+ doSetProperty("profileCredentialsName", profileCredentialsName);
+ return this;
+ }
+ /**
+ * The region in which Bedrock Agent client needs to work. When using
+ * this parameter, the configuration will expect the lowercase name of
+ * the region (for example, ap-east-1) You'll need to use the name
+ * Region.EU_WEST_1.id().
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param region the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder region(String region) {
+ doSetProperty("region", region);
+ return this;
+ }
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in
+ * combination with overrideEndpoint option.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: producer
+ *
+ * @param uriEndpointOverride the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder uriEndpointOverride(
+ String uriEndpointOverride) {
+ doSetProperty("uriEndpointOverride", uriEndpointOverride);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a default credentials provider or to expect
+ * static credentials to be passed in.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useDefaultCredentialsProvider(
+ boolean useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a default credentials provider or to expect
+ * static credentials to be passed in.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useDefaultCredentialsProvider(
+ String useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a profile credentials provider.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useProfileCredentialsProvider(
+ boolean useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to load
+ * credentials through a profile credentials provider.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: producer
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useProfileCredentialsProvider(
+ String useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * To define a proxy host when instantiating the Bedrock Agent client.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyHost the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder proxyHost(String proxyHost) {
+ doSetProperty("proxyHost", proxyHost);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Bedrock Agent client.
+ *
+ * The option is a: <code>java.lang.Integer</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder proxyPort(Integer proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Bedrock Agent client.
+ *
+ * The option will be converted to a
+ * <code>java.lang.Integer</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder proxyPort(String proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Bedrock Agent
+ * client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.core.Protocol</code> type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder proxyProtocol(
+ software.amazon.awssdk.core.Protocol proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Bedrock Agent
+ * client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.core.Protocol</code> type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder proxyProtocol(String proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * Amazon AWS Access Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param accessKey the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder accessKey(String accessKey) {
+ doSetProperty("accessKey", accessKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Secret Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param secretKey the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder secretKey(String secretKey) {
+ doSetProperty("secretKey", secretKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM
+ * role.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param sessionToken the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder sessionToken(String sessionToken) {
+ doSetProperty("sessionToken", sessionToken);
+ return this;
+ }
+ /**
+ * If we want to trust all certificates in case of overriding the
+ * endpoint.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder trustAllCertificates(
+ boolean trustAllCertificates) {
+ doSetProperty("trustAllCertificates", trustAllCertificates);
+ return this;
+ }
+ /**
+ * If we want to trust all certificates in case of overriding the
+ * endpoint.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder trustAllCertificates(
+ String trustAllCertificates) {
+ doSetProperty("trustAllCertificates", trustAllCertificates);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Bedrock.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useSessionCredentials(
+ boolean useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ /**
+ * Set whether the Bedrock Agent client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Bedrock.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder useSessionCredentials(
+ String useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ }
+
+ /**
+ * Advanced builder for endpoint for the AWS Bedrock Agent component.
+ */
+ public interface AdvancedBedrockAgentEndpointBuilder
+ extends
+ EndpointProducerBuilder {
+ default BedrockAgentEndpointBuilder basic() {
+ return (BedrockAgentEndpointBuilder) this;
+ }
+ /**
+ * Whether the producer should be started lazy (on the first message).
+ * By starting lazy you can use this to allow CamelContext and routes to
+ * startup in situations where a producer may otherwise fail during
+ * starting and cause the route to fail being started. By deferring this
+ * startup to be lazy then the startup failure can be handled during
+ * routing messages via Camel's routing error handlers. Beware that when
+ * the first message is processed then creating and starting the
+ * producer may take a little time and prolong the total processing time
+ * of the processing.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: producer (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedBedrockAgentEndpointBuilder lazyStartProducer(
+ boolean lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ /**
+ * Whether the producer should be started lazy (on the first message).
+ * By starting lazy you can use this to allow CamelContext and routes to
+ * startup in situations where a producer may otherwise fail during
+ * starting and cause the route to fail being started. By deferring this
+ * startup to be lazy then the startup failure can be handled during
+ * routing messages via Camel's routing error handlers. Beware that when
+ * the first message is processed then creating and starting the
+ * producer may take a little time and prolong the total processing time
+ * of the processing.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: producer (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedBedrockAgentEndpointBuilder lazyStartProducer(
+ String lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Bedrock Agent client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.services.bedrockagent.BedrockAgentClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param bedrockAgentClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedBedrockAgentEndpointBuilder bedrockAgentClient(
+ software.amazon.awssdk.services.bedrockagent.BedrockAgentClient bedrockAgentClient) {
+ doSetProperty("bedrockAgentClient", bedrockAgentClient);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Bedrock Agent client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.services.bedrockagent.BedrockAgentClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param bedrockAgentClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedBedrockAgentEndpointBuilder bedrockAgentClient(
+ String bedrockAgentClient) {
+ doSetProperty("bedrockAgentClient", bedrockAgentClient);
+ return this;
+ }
+ }
+
+ public interface BedrockAgentBuilders {
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * @return the dsl builder for the headers' name.
+ */
+ default BedrockAgentHeaderNameBuilder awsBedrockAgent() {
+ return BedrockAgentHeaderNameBuilder.INSTANCE;
+ }
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * Syntax: <code>aws-bedrock-agent:label</code>
+ *
+ * Path parameter: label (required)
+ * Logical name
+ *
+ * @param path label
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder awsBedrockAgent(String path) {
+ return BedrockAgentEndpointBuilderFactory.endpointBuilder("aws-bedrock-agent", path);
+ }
+ /**
+ * AWS Bedrock Agent (camel-aws-bedrock)
+ * Invoke Model of AWS Bedrock Agent Runtime service.
+ *
+ * Category: ai,cloud
+ * Since: 4.5
+ * Maven coordinates: org.apache.camel:camel-aws-bedrock
+ *
+ * Syntax: <code>aws-bedrock-agent:label</code>
+ *
+ * Path parameter: label (required)
+ * Logical name
+ *
+ * @param componentName to use a custom component name for the endpoint
+ * instead of the default name
+ * @param path label
+ * @return the dsl builder
+ */
+ default BedrockAgentEndpointBuilder awsBedrockAgent(
+ String componentName,
+ String path) {
+ return BedrockAgentEndpointBuilderFactory.endpointBuilder(componentName, path);
+ }
+ }
+
+ /**
+ * The builder of headers' name for the AWS Bedrock Agent component.
+ */
+ public static class BedrockAgentHeaderNameBuilder {
+ /**
+ * The internal instance of the builder used to access to all the
+ * methods representing the name of headers.
+ */
+ private static final BedrockAgentHeaderNameBuilder INSTANCE = new BedrockAgentHeaderNameBuilder();
+
+ /**
+ * The operation we want to perform.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code
+ * AwsBedrockAgentRuntimeOperation}.
+ */
+ public String awsBedrockAgentRuntimeOperation() {
+ return "CamelAwsBedrockAgentRuntimeOperation";
+ }
+
+ /**
+ * When retrieving and generating a response, this header will contain
+ * the citations.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code
+ * AwsBedrockAgentRuntimeCitations}.
+ */
+ public String awsBedrockAgentRuntimeCitations() {
+ return "CamelAwsBedrockAgentRuntimeCitations";
+ }
+
+ /**
+ * 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.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code
+ * AwsBedrockAgentRuntimeSessionId}.
+ */
+ public String awsBedrockAgentRuntimeSessionId() {
+ return "CamelAwsBedrockAgentRuntimeSessionId";
+ }
+ }
+ static BedrockAgentEndpointBuilder endpointBuilder(
+ String componentName,
+ String path) {
+ class BedrockAgentEndpointBuilderImpl extends AbstractEndpointBuilder implements BedrockAgentEndpointBuilder, AdvancedBedrockAgentEndpointBuilder {
+ public BedrockAgentEndpointBuilderImpl(String path) {
+ super(componentName, path);
+ }
+ }
+ return new BedrockAgentEndpointBuilderImpl(path);
+ }
+}
\ No newline at end of file
diff --git a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index 0a37af386a9..a85163360bd 100644
--- a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -29,6 +29,7 @@ org.apache.camel.component.aws.cloudtrail.CloudtrailComponent=camel:aws-cloudtra
org.apache.camel.component.aws.config.AWSConfigComponent=camel:aws-config
org.apache.camel.component.aws.secretsmanager.SecretsManagerComponent=camel:aws-secrets-manager
org.apache.camel.component.aws2.athena.Athena2Component=camel:aws2-athena
+org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent=camel:aws-bedrock
org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeComponent=camel:aws-bedrock
org.apache.camel.component.aws2.bedrock.runtime.BedrockComponent=camel:aws-bedrock
org.apache.camel.component.aws2.cw.Cw2Component=camel:aws2-cw
diff --git a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/AwsBedrockAgentUriDsl.kt b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/AwsBedrockAgentUriDsl.kt
new file mode 100644
index 00000000000..41b56214837
--- /dev/null
+++ b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/AwsBedrockAgentUriDsl.kt
@@ -0,0 +1,163 @@
+/*
+ * 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.kotlin.components
+
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Unit
+import org.apache.camel.kotlin.CamelDslMarker
+import org.apache.camel.kotlin.UriDsl
+
+public fun UriDsl.`aws-bedrock-agent`(i: AwsBedrockAgentUriDsl.() -> Unit) {
+ AwsBedrockAgentUriDsl(this).apply(i)
+}
+
+@CamelDslMarker
+public class AwsBedrockAgentUriDsl(
+ it: UriDsl,
+) {
+ private val it: UriDsl
+
+ init {
+ this.it = it
+ this.it.component("aws-bedrock-agent")
+ }
+
+ private var label: String = ""
+
+ public fun label(label: String) {
+ this.label = label
+ it.url("$label")
+ }
+
+ public fun dataSourceId(dataSourceId: String) {
+ it.property("dataSourceId", dataSourceId)
+ }
+
+ public fun knowledgeBaseId(knowledgeBaseId: String) {
+ it.property("knowledgeBaseId", knowledgeBaseId)
+ }
+
+ public fun modelId(modelId: String) {
+ it.property("modelId", modelId)
+ }
+
+ public fun operation(operation: String) {
+ it.property("operation", operation)
+ }
+
+ public fun overrideEndpoint(overrideEndpoint: String) {
+ it.property("overrideEndpoint", overrideEndpoint)
+ }
+
+ public fun overrideEndpoint(overrideEndpoint: Boolean) {
+ it.property("overrideEndpoint", overrideEndpoint.toString())
+ }
+
+ public fun pojoRequest(pojoRequest: String) {
+ it.property("pojoRequest", pojoRequest)
+ }
+
+ public fun pojoRequest(pojoRequest: Boolean) {
+ it.property("pojoRequest", pojoRequest.toString())
+ }
+
+ public fun profileCredentialsName(profileCredentialsName: String) {
+ it.property("profileCredentialsName", profileCredentialsName)
+ }
+
+ public fun region(region: String) {
+ it.property("region", region)
+ }
+
+ public fun uriEndpointOverride(uriEndpointOverride: String) {
+ it.property("uriEndpointOverride", uriEndpointOverride)
+ }
+
+ public fun useDefaultCredentialsProvider(useDefaultCredentialsProvider: String) {
+ it.property("useDefaultCredentialsProvider", useDefaultCredentialsProvider)
+ }
+
+ public fun useDefaultCredentialsProvider(useDefaultCredentialsProvider: Boolean) {
+ it.property("useDefaultCredentialsProvider", useDefaultCredentialsProvider.toString())
+ }
+
+ public fun useProfileCredentialsProvider(useProfileCredentialsProvider: String) {
+ it.property("useProfileCredentialsProvider", useProfileCredentialsProvider)
+ }
+
+ public fun useProfileCredentialsProvider(useProfileCredentialsProvider: Boolean) {
+ it.property("useProfileCredentialsProvider", useProfileCredentialsProvider.toString())
+ }
+
+ public fun lazyStartProducer(lazyStartProducer: String) {
+ it.property("lazyStartProducer", lazyStartProducer)
+ }
+
+ public fun lazyStartProducer(lazyStartProducer: Boolean) {
+ it.property("lazyStartProducer", lazyStartProducer.toString())
+ }
+
+ public fun bedrockAgentClient(bedrockAgentClient: String) {
+ it.property("bedrockAgentClient", bedrockAgentClient)
+ }
+
+ public fun proxyHost(proxyHost: String) {
+ it.property("proxyHost", proxyHost)
+ }
+
+ public fun proxyPort(proxyPort: String) {
+ it.property("proxyPort", proxyPort)
+ }
+
+ public fun proxyPort(proxyPort: Int) {
+ it.property("proxyPort", proxyPort.toString())
+ }
+
+ public fun proxyProtocol(proxyProtocol: String) {
+ it.property("proxyProtocol", proxyProtocol)
+ }
+
+ public fun accessKey(accessKey: String) {
+ it.property("accessKey", accessKey)
+ }
+
+ public fun secretKey(secretKey: String) {
+ it.property("secretKey", secretKey)
+ }
+
+ public fun sessionToken(sessionToken: String) {
+ it.property("sessionToken", sessionToken)
+ }
+
+ public fun trustAllCertificates(trustAllCertificates: String) {
+ it.property("trustAllCertificates", trustAllCertificates)
+ }
+
+ public fun trustAllCertificates(trustAllCertificates: Boolean) {
+ it.property("trustAllCertificates", trustAllCertificates.toString())
+ }
+
+ public fun useSessionCredentials(useSessionCredentials: String) {
+ it.property("useSessionCredentials", useSessionCredentials)
+ }
+
+ public fun useSessionCredentials(useSessionCredentials: Boolean) {
+ it.property("useSessionCredentials", useSessionCredentials.toString())
+ }
+}