This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 16a770c53fe CAMEL-20543 - Camel-AWS-Bedrock-Agent: Support more
operations on the producer side (#13455)
16a770c53fe is described below
commit 16a770c53fe743c4a81280f8fc911984161e80de
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Mar 12 10:07:44 2024 +0100
CAMEL-20543 - Camel-AWS-Bedrock-Agent: Support more operations on the
producer side (#13455)
* CAMEL-20543 - Camel-AWS-Bedrock-Agent: Support more operations on the
producer side
Signed-off-by: Andrea Cosentino <[email protected]>
* CAMEL-20543 - Camel-AWS-Bedrock-Agent: Support more operations on the
producer side
Signed-off-by: Andrea Cosentino <[email protected]>
* CAMEL-20543 - Camel-AWS-Bedrock-Agent: Support more operations on the
producer side
Signed-off-by: Andrea Cosentino <[email protected]>
---------
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../catalog/components/aws-bedrock-agent.json | 4 +-
.../aws2/bedrock/agent/aws-bedrock-agent.json | 4 +-
.../aws2/bedrock/agent/BedrockAgentConstants.java | 4 ++
.../aws2/bedrock/agent/BedrockAgentOperations.java | 4 +-
.../aws2/bedrock/agent/BedrockAgentProducer.java | 69 ++++++++++++++++++++--
.../agent/integration/BedrockAgentProducerIT.java | 1 -
6 files changed, 76 insertions(+), 10 deletions(-)
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
index 5038d9dfe2a..b8860108341 100644
---
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
@@ -27,7 +27,7 @@
"dataSourceId": { "index": 1, "kind": "property", "displayName": "Data
Source Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Data source
Id we are going to use" },
"knowledgeBaseId": { "index": 2, "kind": "property", "displayName":
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Knowledge
Base Id we are going to use" },
"modelId": { "index": 3, "kind": "property", "displayName": "Model Id",
"group": "common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "enum": [ "anthropic.claude-instant-v1",
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "descrip [...]
- "operation": { "index": 4, "kind": "property", "displayName": "Operation",
"group": "common", "label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "config [...]
+ "operation": { "index": 4, "kind": "property", "displayName": "Operation",
"group": "common", "label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs", "getIngestionJob" ], "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configura [...]
"overrideEndpoint": { "index": 5, "kind": "property", "displayName":
"Override Endpoint", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be used i [...]
"pojoRequest": { "index": 6, "kind": "property", "displayName": "Pojo
Request", "group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 7, "kind": "property", "displayName":
"Profile Credentials Name", "group": "common", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "false",
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this par [...]
@@ -61,7 +61,7 @@
"dataSourceId": { "index": 1, "kind": "parameter", "displayName": "Data
Source Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Data source
Id we are going to use" },
"knowledgeBaseId": { "index": 2, "kind": "parameter", "displayName":
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Knowledge
Base Id we are going to use" },
"modelId": { "index": 3, "kind": "parameter", "displayName": "Model Id",
"group": "common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "enum": [ "anthropic.claude-instant-v1",
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "descri [...]
- "operation": { "index": 4, "kind": "parameter", "displayName":
"Operation", "group": "common", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "confi [...]
+ "operation": { "index": 4, "kind": "parameter", "displayName":
"Operation", "group": "common", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs", "getIngestionJob" ], "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configur [...]
"overrideEndpoint": { "index": 5, "kind": "parameter", "displayName":
"Override Endpoint", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be used [...]
"pojoRequest": { "index": 6, "kind": "parameter", "displayName": "Pojo
Request", "group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 7, "kind": "parameter",
"displayName": "Profile Credentials Name", "group": "common", "label": "",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"false", "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this pa [...]
diff --git
a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
index 5038d9dfe2a..b8860108341 100644
---
a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
+++
b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/agent/aws-bedrock-agent.json
@@ -27,7 +27,7 @@
"dataSourceId": { "index": 1, "kind": "property", "displayName": "Data
Source Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Data source
Id we are going to use" },
"knowledgeBaseId": { "index": 2, "kind": "property", "displayName":
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Knowledge
Base Id we are going to use" },
"modelId": { "index": 3, "kind": "property", "displayName": "Model Id",
"group": "common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "enum": [ "anthropic.claude-instant-v1",
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "descrip [...]
- "operation": { "index": 4, "kind": "property", "displayName": "Operation",
"group": "common", "label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "config [...]
+ "operation": { "index": 4, "kind": "property", "displayName": "Operation",
"group": "common", "label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs", "getIngestionJob" ], "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configura [...]
"overrideEndpoint": { "index": 5, "kind": "property", "displayName":
"Override Endpoint", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be used i [...]
"pojoRequest": { "index": 6, "kind": "property", "displayName": "Pojo
Request", "group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 7, "kind": "property", "displayName":
"Profile Credentials Name", "group": "common", "label": "", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "false",
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this par [...]
@@ -61,7 +61,7 @@
"dataSourceId": { "index": 1, "kind": "parameter", "displayName": "Data
Source Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Data source
Id we are going to use" },
"knowledgeBaseId": { "index": 2, "kind": "parameter", "displayName":
"Knowledge Base Id", "group": "common", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Define the Knowledge
Base Id we are going to use" },
"modelId": { "index": 3, "kind": "parameter", "displayName": "Model Id",
"group": "common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "enum": [ "anthropic.claude-instant-v1",
"anthropic.claude-v2", "anthropic.claude-v2:1" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "descri [...]
- "operation": { "index": 4, "kind": "parameter", "displayName":
"Operation", "group": "common", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "confi [...]
+ "operation": { "index": 4, "kind": "parameter", "displayName":
"Operation", "group": "common", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentOperations", "enum":
[ "startIngestionJob", "listIngestionJobs", "getIngestionJob" ], "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configur [...]
"overrideEndpoint": { "index": 5, "kind": "parameter", "displayName":
"Override Endpoint", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be used [...]
"pojoRequest": { "index": 6, "kind": "parameter", "displayName": "Pojo
Request", "group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 7, "kind": "parameter",
"displayName": "Profile Credentials Name", "group": "common", "label": "",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"false", "configurationClass":
"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this pa [...]
diff --git
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
index fb8ed36ba53..3fd88d8c9c8 100644
---
a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
+++
b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/agent/BedrockAgentConstants.java
@@ -40,4 +40,8 @@ public interface BedrockAgentConstants {
@Metadata(description = "The header contains the status of the ingestion
job",
javaType = "String", label = "consumer")
String INGESTION_JOB_STATUS = "CamelAwsBedrockAgentIngestionJobStatus";
+
+ @Metadata(description = "The header contains the id of the ingestion job",
+ javaType = "String", label = "producer")
+ String INGESTION_JOB_ID = "CamelAwsBedrockAgentIngestionJobId";
}
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
index 57710e6951e..4fb08645cfe 100644
---
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
@@ -20,5 +20,7 @@ public enum BedrockAgentOperations {
startIngestionJob,
- listIngestionJobs
+ listIngestionJobs,
+
+ getIngestionJob
}
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
index 4ba7a381003..0dc35211750 100644
---
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
@@ -27,10 +27,7 @@ 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.ListIngestionJobsRequest;
-import
software.amazon.awssdk.services.bedrockagent.model.ListIngestionJobsResponse;
-import
software.amazon.awssdk.services.bedrockagent.model.StartIngestionJobRequest;
-import
software.amazon.awssdk.services.bedrockagent.model.StartIngestionJobResponse;
+import software.amazon.awssdk.services.bedrockagent.model.*;
/**
* A Producer which sends messages to the Amazon Bedrock Agent Service <a
href="http://aws.amazon.com/bedrock/">AWS
@@ -54,6 +51,9 @@ public class BedrockAgentProducer extends DefaultProducer {
case listIngestionJobs:
listIngestionJobs(getEndpoint().getBedrockAgentClient(),
exchange);
break;
+ case getIngestionJob:
+ getIngestionJob(getEndpoint().getBedrockAgentClient(),
exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -176,6 +176,62 @@ public class BedrockAgentProducer extends DefaultProducer {
}
}
+ private void getIngestionJob(BedrockAgentClient bedrockAgentClient,
Exchange exchange)
+ throws InvalidPayloadException {
+ if (getConfiguration().isPojoRequest()) {
+ Object payload = exchange.getMessage().getMandatoryBody();
+ if (payload instanceof GetIngestionJobRequest) {
+ GetIngestionJobResponse result;
+ try {
+ result =
bedrockAgentClient.getIngestionJob((GetIngestionJobRequest) payload);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Get Ingestion Job command returned the error
code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ prepareGetIngestionJobResponse(result, message);
+ }
+ } else {
+ String knowledgeBaseId;
+ String dataSourceId;
+ String ingestionJobId;
+ GetIngestionJobRequest.Builder builder =
GetIngestionJobRequest.builder();
+ if (ObjectHelper.isEmpty(getConfiguration().getKnowledgeBaseId()))
{
+ if
(ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockAgentConstants.KNOWLEDGE_BASE_ID)))
{
+ knowledgeBaseId =
exchange.getMessage().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.getMessage().getHeader(BedrockAgentConstants.DATASOURCE_ID,
String.class);
+ } else {
+ throw new IllegalArgumentException("DataSourceId must be
specified");
+ }
+ } else {
+ dataSourceId = getConfiguration().getDataSourceId();
+ }
+ if (ObjectHelper.isEmpty(getConfiguration().getIngestionJobId())) {
+ if
(ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockAgentConstants.INGESTION_JOB_ID)))
{
+ ingestionJobId =
exchange.getMessage().getHeader(BedrockAgentConstants.INGESTION_JOB_ID,
String.class);
+ } else {
+ throw new IllegalArgumentException("IngestionJobId must be
specified");
+ }
+ } else {
+ ingestionJobId = getConfiguration().getIngestionJobId();
+ }
+ builder.knowledgeBaseId(knowledgeBaseId);
+ builder.dataSourceId(dataSourceId);
+ builder.ingestionJobId(ingestionJobId);
+ GetIngestionJobResponse output =
bedrockAgentClient.getIngestionJob(builder.build());
+ Message message = getMessageForResponse(exchange);
+ prepareGetIngestionJobResponse(output, message);
+ }
+ }
+
private void prepareIngestionJobResponse(StartIngestionJobResponse result,
Message message) {
message.setBody(result.ingestionJob().ingestionJobId());
}
@@ -186,6 +242,11 @@ public class BedrockAgentProducer extends DefaultProducer {
}
}
+ private void prepareGetIngestionJobResponse(GetIngestionJobResponse
result, Message message) {
+ message.setBody(result.ingestionJob().ingestionJobId());
+ message.setHeader(BedrockAgentConstants.INGESTION_JOB_STATUS,
result.ingestionJob().status());
+ }
+
public static Message getMessageForResponse(final Exchange exchange) {
return exchange.getMessage();
}
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
index 2de238a7fb4..8d04c59668b 100644
---
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
@@ -76,7 +76,6 @@ class BedrockAgentProducerIT extends CamelTestSupport {
.to(result);
from("direct:list_ingestion_jobs")
.to("aws-bedrock-agent:label?accessKey=RAW({{aws.manual.access.key}})&secretKey=RAW({{aws.manual.secret.key}}®ion=us-east-1&operation=listIngestionJobs")
- .log("${body}")
.to(result);
}
};