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 2025/10/28 14:11:26 UTC

(camel) branch CAMEL-22617 created (now b750b4d12621)

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

acosentino pushed a change to branch CAMEL-22617
in repository https://gitbox.apache.org/repos/asf/camel.git


      at b750b4d12621 CAMEL-22617 - Camel-AWS-Bedrock: Support Streaming mode while invoking models

This branch includes the following new commits:

     new b750b4d12621 CAMEL-22617 - Camel-AWS-Bedrock: Support Streaming mode while invoking models

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(camel) 01/01: CAMEL-22617 - Camel-AWS-Bedrock: Support Streaming mode while invoking models

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit b750b4d1262152582d54ab109a93d643d6b869cf
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Oct 28 14:27:25 2025 +0100

    CAMEL-22617 - Camel-AWS-Bedrock: Support Streaming mode while invoking models
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../camel/catalog/components/aws-bedrock.json      |  94 +++++-----
 .../runtime/BedrockComponentConfigurer.java        |  20 ++-
 .../bedrock/runtime/BedrockEndpointConfigurer.java |  20 ++-
 .../bedrock/runtime/BedrockEndpointUriFactory.java |   5 +-
 .../aws2/bedrock/runtime/aws-bedrock.json          |  94 +++++-----
 .../src/main/docs/aws-bedrock-component.adoc       | 131 ++++++++++++++
 .../aws2/bedrock/runtime/BedrockConfiguration.java |  42 +++++
 .../aws2/bedrock/runtime/BedrockConstants.java     |   8 +
 .../aws2/bedrock/runtime/BedrockEndpoint.java      |  17 ++
 .../aws2/bedrock/runtime/BedrockOperations.java    |   8 +-
 .../aws2/bedrock/runtime/BedrockProducer.java      | 122 +++++++++++++
 .../client/BedrockRuntimeInternalClient.java       |   8 +
 .../impl/BedrockRuntimeClientIAMOptimizedImpl.java |  18 ++
 ...edrockRuntimeClientIAMProfileOptimizedImpl.java |  22 +++
 .../impl/BedrockRuntimeClientSessionTokenImpl.java |  24 +++
 .../impl/BedrockRuntimeClientStandardImpl.java     |  27 +++
 .../runtime/stream/BedrockStreamHandler.java       | 196 +++++++++++++++++++++
 .../bedrock/runtime/stream/ClaudeStreamParser.java | 102 +++++++++++
 .../bedrock/runtime/stream/CohereStreamParser.java |  88 +++++++++
 .../bedrock/runtime/stream/LlamaStreamParser.java  |  70 ++++++++
 .../runtime/stream/MistralStreamParser.java        |  75 ++++++++
 .../runtime/stream/StreamParserFactory.java        |  76 ++++++++
 .../runtime/stream/StreamResponseParser.java       |  57 ++++++
 .../bedrock/runtime/stream/TitanStreamParser.java  |  70 ++++++++
 .../integration/BedrockProducerStreamingIT.java    | 192 ++++++++++++++++++++
 .../runtime/stream/ClaudeStreamParserTest.java     |  63 +++++++
 .../runtime/stream/TitanStreamParserTest.java      |  62 +++++++
 .../dsl/AwsBedrockComponentBuilderFactory.java     |  57 ++++++
 .../dsl/BedrockEndpointBuilderFactory.java         | 129 ++++++++++++++
 29 files changed, 1809 insertions(+), 88 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock.json
index b3545cab979b..4b75e1b80f4f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-bedrock.json
@@ -25,54 +25,64 @@
   },
   "componentProperties": {
     "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
-    "lazyStartProducer": { "index": 1, "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": 2, "kind": "property", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite-v [...]
-    "operation": { "index": 3, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configuratio [...]
-    "overrideEndpoint": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
-    "pojoRequest": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "profileCredentialsName": { "index": 6, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this para [...]
-    "region": { "index": 7, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which B [...]
-    "uriEndpointOverride": { "index": 8, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
-    "useDefaultCredentialsProvider": { "index": 9, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect  [...]
-    "useProfileCredentialsProvider": { "index": 10, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "autowiredEnabled": { "index": 11, "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  [...]
-    "bedrockRuntimeClient": { "index": 12, "kind": "property", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description" [...]
-    "healthCheckConsumerEnabled": { "index": 13, "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": 14, "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": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
-    "proxyPort": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
-    "proxyProtocol": { "index": 17, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
-    "accessKey": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 20, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overrid [...]
-    "useSessionCredentials": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use S [...]
+    "includeStreamingMetadata": { "index": 1, "kind": "property", "displayName": "Include Streaming Metadata", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Whether to include streaming metadata in the response hea [...]
+    "lazyStartProducer": { "index": 2, "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": 3, "kind": "property", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite-v [...]
+    "operation": { "index": 4, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel", "invokeTextModelStreaming", "invokeImageModelStreaming", "invokeEmbeddingsModelStreaming" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationCl [...]
+    "overrideEndpoint": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
+    "pojoRequest": { "index": 6, "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.runtime.BedrockConfiguration", "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": "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this para [...]
+    "region": { "index": 8, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which B [...]
+    "streamOutputMode": { "index": 9, "kind": "property", "displayName": "Stream Output Mode", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "complete", "chunks" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "complete", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The streaming output mode ( [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
+    "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  [...]
+    "bedrockRuntimeAsyncClient": { "index": 14, "kind": "property", "displayName": "Bedrock Runtime Async Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration [...]
+    "bedrockRuntimeClient": { "index": 15, "kind": "property", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description" [...]
+    "healthCheckConsumerEnabled": { "index": 16, "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": 17, "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": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
+    "proxyPort": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
+    "proxyProtocol": { "index": 20, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
+    "accessKey": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 23, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 24, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overrid [...]
+    "useSessionCredentials": { "index": 25, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use S [...]
   },
   "headers": {
     "CamelAwsBedrockOperation": { "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.runtime.BedrockConstants#OPERATION" },
     "CamelAwsBedrockContentType": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_CONTENT_TYPE" },
-    "CamelAwsBedrockAcceptContentType": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model accept content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_ACCEPT_CONTENT_TYPE" }
+    "CamelAwsBedrockAcceptContentType": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model accept content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_ACCEPT_CONTENT_TYPE" },
+    "CamelAwsBedrockStreamOutputMode": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The streaming output mode (complete or chunks)", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAM_OUTPUT_MODE" },
+    "CamelAwsBedrockCompletionReason": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The completion reason for streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_COMPLETION_REASON" },
+    "CamelAwsBedrockTokenCount": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of tokens generated in streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_TOKEN_COUNT" },
+    "CamelAwsBedrockChunkCount": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of chunks received in streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_CHUNK_COUNT" }
   },
   "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Logical name" },
-    "modelId": { "index": 1, "kind": "parameter", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite- [...]
-    "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurati [...]
-    "overrideEndpoint": { "index": 3, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
-    "pojoRequest": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "profileCredentialsName": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this par [...]
-    "region": { "index": 6, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which  [...]
-    "uriEndpointOverride": { "index": 7, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
-    "useDefaultCredentialsProvider": { "index": 8, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "useProfileCredentialsProvider": { "index": 9, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "lazyStartProducer": { "index": 10, "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 [...]
-    "bedrockRuntimeClient": { "index": 11, "kind": "parameter", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description [...]
-    "proxyHost": { "index": 12, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
-    "proxyPort": { "index": 13, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
-    "proxyProtocol": { "index": 14, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy  [...]
-    "accessKey": { "index": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 17, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overri [...]
-    "useSessionCredentials": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use  [...]
+    "includeStreamingMetadata": { "index": 1, "kind": "parameter", "displayName": "Include Streaming Metadata", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Whether to include streaming metadata in the response he [...]
+    "modelId": { "index": 2, "kind": "parameter", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite- [...]
+    "operation": { "index": 3, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel", "invokeTextModelStreaming", "invokeImageModelStreaming", "invokeEmbeddingsModelStreaming" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationC [...]
+    "overrideEndpoint": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
+    "pojoRequest": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "profileCredentialsName": { "index": 6, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this par [...]
+    "region": { "index": 7, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which  [...]
+    "streamOutputMode": { "index": 8, "kind": "parameter", "displayName": "Stream Output Mode", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "complete", "chunks" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "complete", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The streaming output mode  [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expec [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expec [...]
+    "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 [...]
+    "bedrockRuntimeAsyncClient": { "index": 13, "kind": "parameter", "displayName": "Bedrock Runtime Async Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuratio [...]
+    "bedrockRuntimeClient": { "index": 14, "kind": "parameter", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description [...]
+    "proxyHost": { "index": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
+    "proxyPort": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
+    "proxyProtocol": { "index": 17, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy  [...]
+    "accessKey": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 20, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overri [...]
+    "useSessionCredentials": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use  [...]
   }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockComponentConfigurer.java b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockComponentConfigurer.java
index fdc527e38d97..26c047097bad 100644
--- a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockComponentConfigurer.java
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockComponentConfigurer.java
@@ -34,6 +34,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         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 "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": getOrCreateConfiguration(target).setBedrockRuntimeAsyncClient(property(camelContext, software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient.class, value)); return true;
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": getOrCreateConfiguration(target).setBedrockRuntimeClient(property(camelContext, software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration.class, value)); return true;
@@ -41,6 +43,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         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 "includestreamingmetadata":
+        case "includeStreamingMetadata": getOrCreateConfiguration(target).setIncludeStreamingMetadata(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "modelid":
@@ -63,6 +67,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         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 "streamoutputmode":
+        case "streamOutputMode": getOrCreateConfiguration(target).setStreamOutputMode(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":
@@ -79,7 +85,7 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
 
     @Override
     public String[] getAutowiredNames() {
-        return new String[]{"bedrockRuntimeClient"};
+        return new String[]{"bedrockRuntimeAsyncClient", "bedrockRuntimeClient"};
     }
 
     @Override
@@ -89,6 +95,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "accessKey": return java.lang.String.class;
         case "autowiredenabled":
         case "autowiredEnabled": return boolean.class;
+        case "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": return software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient.class;
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": return software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient.class;
         case "configuration": return org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration.class;
@@ -96,6 +104,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "healthCheckConsumerEnabled": return boolean.class;
         case "healthcheckproducerenabled":
         case "healthCheckProducerEnabled": return boolean.class;
+        case "includestreamingmetadata":
+        case "includeStreamingMetadata": return boolean.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "modelid":
@@ -118,6 +128,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "secretKey": return java.lang.String.class;
         case "sessiontoken":
         case "sessionToken": return java.lang.String.class;
+        case "streamoutputmode":
+        case "streamOutputMode": return java.lang.String.class;
         case "trustallcertificates":
         case "trustAllCertificates": return boolean.class;
         case "uriendpointoverride":
@@ -140,6 +152,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
         case "autowiredenabled":
         case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": return getOrCreateConfiguration(target).getBedrockRuntimeAsyncClient();
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": return getOrCreateConfiguration(target).getBedrockRuntimeClient();
         case "configuration": return target.getConfiguration();
@@ -147,6 +161,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "healthCheckConsumerEnabled": return target.isHealthCheckConsumerEnabled();
         case "healthcheckproducerenabled":
         case "healthCheckProducerEnabled": return target.isHealthCheckProducerEnabled();
+        case "includestreamingmetadata":
+        case "includeStreamingMetadata": return getOrCreateConfiguration(target).isIncludeStreamingMetadata();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "modelid":
@@ -169,6 +185,8 @@ public class BedrockComponentConfigurer extends PropertyConfigurerSupport implem
         case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
         case "sessiontoken":
         case "sessionToken": return getOrCreateConfiguration(target).getSessionToken();
+        case "streamoutputmode":
+        case "streamOutputMode": return getOrCreateConfiguration(target).getStreamOutputMode();
         case "trustallcertificates":
         case "trustAllCertificates": return getOrCreateConfiguration(target).isTrustAllCertificates();
         case "uriendpointoverride":
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointConfigurer.java b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointConfigurer.java
index c8e48c93e373..2f9abe6fe4cf 100644
--- a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointConfigurer.java
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointConfigurer.java
@@ -25,8 +25,12 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": target.getConfiguration().setBedrockRuntimeAsyncClient(property(camelContext, software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient.class, value)); return true;
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": target.getConfiguration().setBedrockRuntimeClient(property(camelContext, software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient.class, value)); return true;
+        case "includestreamingmetadata":
+        case "includeStreamingMetadata": target.getConfiguration().setIncludeStreamingMetadata(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "modelid":
@@ -49,6 +53,8 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         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 "streamoutputmode":
+        case "streamOutputMode": target.getConfiguration().setStreamOutputMode(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":
@@ -65,7 +71,7 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
 
     @Override
     public String[] getAutowiredNames() {
-        return new String[]{"bedrockRuntimeClient"};
+        return new String[]{"bedrockRuntimeAsyncClient", "bedrockRuntimeClient"};
     }
 
     @Override
@@ -73,8 +79,12 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": return java.lang.String.class;
+        case "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": return software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient.class;
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": return software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient.class;
+        case "includestreamingmetadata":
+        case "includeStreamingMetadata": return boolean.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "modelid":
@@ -97,6 +107,8 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "secretKey": return java.lang.String.class;
         case "sessiontoken":
         case "sessionToken": return java.lang.String.class;
+        case "streamoutputmode":
+        case "streamOutputMode": return java.lang.String.class;
         case "trustallcertificates":
         case "trustAllCertificates": return boolean.class;
         case "uriendpointoverride":
@@ -117,8 +129,12 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": return target.getConfiguration().getAccessKey();
+        case "bedrockruntimeasyncclient":
+        case "bedrockRuntimeAsyncClient": return target.getConfiguration().getBedrockRuntimeAsyncClient();
         case "bedrockruntimeclient":
         case "bedrockRuntimeClient": return target.getConfiguration().getBedrockRuntimeClient();
+        case "includestreamingmetadata":
+        case "includeStreamingMetadata": return target.getConfiguration().isIncludeStreamingMetadata();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "modelid":
@@ -141,6 +157,8 @@ public class BedrockEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "secretKey": return target.getConfiguration().getSecretKey();
         case "sessiontoken":
         case "sessionToken": return target.getConfiguration().getSessionToken();
+        case "streamoutputmode":
+        case "streamOutputMode": return target.getConfiguration().getStreamOutputMode();
         case "trustallcertificates":
         case "trustAllCertificates": return target.getConfiguration().isTrustAllCertificates();
         case "uriendpointoverride":
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointUriFactory.java b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointUriFactory.java
index 99e23b8fe546..c227bb3c3424 100644
--- a/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointUriFactory.java
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpointUriFactory.java
@@ -23,9 +23,11 @@ public class BedrockEndpointUriFactory extends org.apache.camel.support.componen
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(20);
+        Set<String> props = new HashSet<>(23);
         props.add("accessKey");
+        props.add("bedrockRuntimeAsyncClient");
         props.add("bedrockRuntimeClient");
+        props.add("includeStreamingMetadata");
         props.add("label");
         props.add("lazyStartProducer");
         props.add("modelId");
@@ -39,6 +41,7 @@ public class BedrockEndpointUriFactory extends org.apache.camel.support.componen
         props.add("region");
         props.add("secretKey");
         props.add("sessionToken");
+        props.add("streamOutputMode");
         props.add("trustAllCertificates");
         props.add("uriEndpointOverride");
         props.add("useDefaultCredentialsProvider");
diff --git a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/runtime/aws-bedrock.json b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/runtime/aws-bedrock.json
index b3545cab979b..4b75e1b80f4f 100644
--- a/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/runtime/aws-bedrock.json
+++ b/components/camel-aws/camel-aws-bedrock/src/generated/resources/META-INF/org/apache/camel/component/aws2/bedrock/runtime/aws-bedrock.json
@@ -25,54 +25,64 @@
   },
   "componentProperties": {
     "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
-    "lazyStartProducer": { "index": 1, "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": 2, "kind": "property", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite-v [...]
-    "operation": { "index": 3, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configuratio [...]
-    "overrideEndpoint": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
-    "pojoRequest": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "profileCredentialsName": { "index": 6, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this para [...]
-    "region": { "index": 7, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which B [...]
-    "uriEndpointOverride": { "index": 8, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
-    "useDefaultCredentialsProvider": { "index": 9, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect  [...]
-    "useProfileCredentialsProvider": { "index": 10, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "autowiredEnabled": { "index": 11, "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  [...]
-    "bedrockRuntimeClient": { "index": 12, "kind": "property", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description" [...]
-    "healthCheckConsumerEnabled": { "index": 13, "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": 14, "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": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
-    "proxyPort": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
-    "proxyProtocol": { "index": 17, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
-    "accessKey": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 20, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overrid [...]
-    "useSessionCredentials": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use S [...]
+    "includeStreamingMetadata": { "index": 1, "kind": "property", "displayName": "Include Streaming Metadata", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Whether to include streaming metadata in the response hea [...]
+    "lazyStartProducer": { "index": 2, "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": 3, "kind": "property", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite-v [...]
+    "operation": { "index": 4, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel", "invokeTextModelStreaming", "invokeImageModelStreaming", "invokeEmbeddingsModelStreaming" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationCl [...]
+    "overrideEndpoint": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
+    "pojoRequest": { "index": 6, "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.runtime.BedrockConfiguration", "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": "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this para [...]
+    "region": { "index": 8, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which B [...]
+    "streamOutputMode": { "index": 9, "kind": "property", "displayName": "Stream Output Mode", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "complete", "chunks" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "complete", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The streaming output mode ( [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
+    "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  [...]
+    "bedrockRuntimeAsyncClient": { "index": 14, "kind": "property", "displayName": "Bedrock Runtime Async Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration [...]
+    "bedrockRuntimeClient": { "index": 15, "kind": "property", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description" [...]
+    "healthCheckConsumerEnabled": { "index": 16, "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": 17, "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": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
+    "proxyPort": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
+    "proxyProtocol": { "index": 20, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
+    "accessKey": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 23, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 24, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overrid [...]
+    "useSessionCredentials": { "index": 25, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use S [...]
   },
   "headers": {
     "CamelAwsBedrockOperation": { "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.runtime.BedrockConstants#OPERATION" },
     "CamelAwsBedrockContentType": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_CONTENT_TYPE" },
-    "CamelAwsBedrockAcceptContentType": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model accept content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_ACCEPT_CONTENT_TYPE" }
+    "CamelAwsBedrockAcceptContentType": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The model accept content type", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#MODEL_ACCEPT_CONTENT_TYPE" },
+    "CamelAwsBedrockStreamOutputMode": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The streaming output mode (complete or chunks)", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAM_OUTPUT_MODE" },
+    "CamelAwsBedrockCompletionReason": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The completion reason for streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_COMPLETION_REASON" },
+    "CamelAwsBedrockTokenCount": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of tokens generated in streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_TOKEN_COUNT" },
+    "CamelAwsBedrockChunkCount": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of chunks received in streaming response", "constantName": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants#STREAMING_CHUNK_COUNT" }
   },
   "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Logical name" },
-    "modelId": { "index": 1, "kind": "parameter", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite- [...]
-    "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurati [...]
-    "overrideEndpoint": { "index": 3, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
-    "pojoRequest": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "profileCredentialsName": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this par [...]
-    "region": { "index": 6, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which  [...]
-    "uriEndpointOverride": { "index": 7, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
-    "useDefaultCredentialsProvider": { "index": 8, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "useProfileCredentialsProvider": { "index": 9, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect [...]
-    "lazyStartProducer": { "index": 10, "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 [...]
-    "bedrockRuntimeClient": { "index": 11, "kind": "parameter", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description [...]
-    "proxyHost": { "index": 12, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
-    "proxyPort": { "index": 13, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
-    "proxyProtocol": { "index": 14, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy  [...]
-    "accessKey": { "index": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
-    "sessionToken": { "index": 17, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
-    "trustAllCertificates": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overri [...]
-    "useSessionCredentials": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use  [...]
+    "includeStreamingMetadata": { "index": 1, "kind": "parameter", "displayName": "Include Streaming Metadata", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Whether to include streaming metadata in the response he [...]
+    "modelId": { "index": 2, "kind": "parameter", "displayName": "Model Id", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "java.lang.String", "enum": [ "amazon.titan-text-express-v1", "amazon.titan-text-lite-v1", "amazon.titan-image-generator-v1", "amazon.titan-embed-text-v1", "amazon.titan-embed-image-v1", "amazon.titan-text-premier-v1:0", "amazon.titan-embed-text-v2:0", "amazon.titan-image-generator-v2:0", "amazon.nova-canvas-v1:0", "amazon.nova-lite- [...]
+    "operation": { "index": 3, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations", "enum": [ "invokeTextModel", "invokeImageModel", "invokeEmbeddingsModel", "invokeTextModelStreaming", "invokeImageModelStreaming", "invokeEmbeddingsModelStreaming" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationC [...]
+    "overrideEndpoint": { "index": 4, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
+    "pojoRequest": { "index": 5, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "profileCredentialsName": { "index": 6, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider, this par [...]
+    "region": { "index": 7, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The region in which  [...]
+    "streamOutputMode": { "index": 8, "kind": "parameter", "displayName": "Stream Output Mode", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "complete", "chunks" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "complete", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "The streaming output mode  [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expec [...]
+    "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expec [...]
+    "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 [...]
+    "bedrockRuntimeAsyncClient": { "index": 13, "kind": "parameter", "displayName": "Bedrock Runtime Async Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuratio [...]
+    "bedrockRuntimeClient": { "index": 14, "kind": "parameter", "displayName": "Bedrock Runtime Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description [...]
+    "proxyHost": { "index": 15, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Bedrock client" },
+    "proxyPort": { "index": 16, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Bedrock client" },
+    "proxyProtocol": { "index": 17, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "To define a proxy  [...]
+    "accessKey": { "index": 18, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "index": 19, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "sessionToken": { "index": 20, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+    "trustAllCertificates": { "index": 21, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overri [...]
+    "useSessionCredentials": { "index": 22, "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.runtime.BedrockConfiguration", "configurationField": "configuration", "description": "Set whether the Bedrock client should expect to use  [...]
   }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-component.adoc b/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-component.adoc
index 2a37a5d2b70d..63a7254bbf14 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-component.adoc
+++ b/components/camel-aws/camel-aws-bedrock/src/main/docs/aws-bedrock-component.adoc
@@ -688,6 +688,44 @@ Camel-AWS Bedrock component provides the following operation on the producer sid
 - invokeTextModel
 - invokeImageModel
 - invokeEmbeddingsModel
+- invokeTextModelStreaming
+- invokeImageModelStreaming
+- invokeEmbeddingsModelStreaming
+
+=== Streaming Support
+
+The streaming operations (`invokeTextModelStreaming`, `invokeImageModelStreaming`, `invokeEmbeddingsModelStreaming`) enable real-time streaming of model responses, providing lower latency and better user experience for interactive applications.
+
+==== Streaming Output Modes
+
+Two streaming modes are supported:
+
+*Complete Mode (default)*: Accumulates all chunks and returns the complete response as a single message. This is the simplest mode and behaves similarly to non-streaming operations, but with lower time-to-first-token.
+
+*Chunks Mode*: Emits each chunk as it arrives in a List. Useful for reactive streaming pipelines or when you need to process chunks individually.
+
+==== Streaming Configuration Options
+
+- `streamOutputMode`: Set to "complete" (default) or "chunks"
+- `includeStreamingMetadata`: Whether to include metadata headers (default: true)
+
+==== Streaming Metadata Headers
+
+When `includeStreamingMetadata` is true, the following headers are set:
+
+- `CamelAwsBedrockCompletionReason`: The reason the model stopped generating (e.g., "FINISH", "end_turn", "stop")
+- `CamelAwsBedrockTokenCount`: The number of tokens generated (if provided by the model)
+- `CamelAwsBedrockChunkCount`: The number of chunks received
+
+==== Supported Models for Streaming
+
+All text generation models support streaming:
+- Amazon Titan (all text models)
+- Anthropic Claude (all versions)
+- Meta Llama (all versions)
+- Mistral AI (all models)
+- Cohere Command models
+- Amazon Nova models
 
 == Examples
 
@@ -798,6 +836,99 @@ and you can then send to the direct endpoint something like
 
 where template is a ProducerTemplate.
 
+- invokeTextModelStreaming (Complete Mode): this operation will invoke a model from Bedrock with streaming, accumulating the complete response.
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:stream_complete")
+    .to("aws-bedrock://test?useDefaultCredentialsProvider=true&region=us-east-1"
+        + "&operation=invokeTextModelStreaming&modelId=" + BedrockModels.TITAN_TEXT_EXPRESS_V1.model
+        + "&streamOutputMode=complete")
+    .to("log:response");
+--------------------------------------------------------------------------------
+
+and you can then send to the direct endpoint something like
+
+[source,java]
+--------------------------------------------------------------------------------
+        final Exchange result = template.send("direct:stream_complete", exchange -> {
+            ObjectMapper mapper = new ObjectMapper();
+            ObjectNode rootNode = mapper.createObjectNode();
+            rootNode.put("inputText", "Write a short poem about Apache Camel.");
+
+            ArrayNode stopSequences = mapper.createArrayNode();
+            stopSequences.add("User:");
+            ObjectNode childNode = mapper.createObjectNode();
+            childNode.put("maxTokenCount", 512);
+            childNode.put("stopSequences", stopSequences);
+            childNode.put("temperature", 0).put("topP", 1);
+
+            rootNode.put("textGenerationConfig", childNode);
+            exchange.getMessage().setBody(mapper.writer().writeValueAsString(rootNode));
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_CONTENT_TYPE, "application/json");
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE, "application/json");
+        });
+
+        // Get the complete response
+        String response = result.getMessage().getBody(String.class);
+
+        // Get streaming metadata
+        Integer tokenCount = result.getMessage().getHeader(BedrockConstants.STREAMING_TOKEN_COUNT, Integer.class);
+        String completionReason = result.getMessage().getHeader(BedrockConstants.STREAMING_COMPLETION_REASON, String.class);
+        Integer chunkCount = result.getMessage().getHeader(BedrockConstants.STREAMING_CHUNK_COUNT, Integer.class);
+--------------------------------------------------------------------------------
+
+- invokeTextModelStreaming (Chunks Mode): this operation will invoke a model from Bedrock with streaming, emitting individual chunks.
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:stream_chunks")
+    .to("aws-bedrock://test?useDefaultCredentialsProvider=true&region=us-east-1"
+        + "&operation=invokeTextModelStreaming&modelId=" + BedrockModels.ANTROPHIC_CLAUDE_V35_2.model
+        + "&streamOutputMode=chunks")
+    .split(body())
+        .to("websocket:chat-output");  // Send each chunk to websocket
+--------------------------------------------------------------------------------
+
+and you can then send to the direct endpoint something like
+
+[source,java]
+--------------------------------------------------------------------------------
+        final Exchange result = template.send("direct:stream_chunks", exchange -> {
+            ObjectMapper mapper = new ObjectMapper();
+            ObjectNode rootNode = mapper.createObjectNode();
+
+            ArrayNode messages = mapper.createArrayNode();
+            ObjectNode message = mapper.createObjectNode();
+            message.put("role", "user");
+
+            ArrayNode content = mapper.createArrayNode();
+            ObjectNode contentBlock = mapper.createObjectNode();
+            contentBlock.put("type", "text");
+            contentBlock.put("text", "Explain Apache Camel in one sentence.");
+            content.add(contentBlock);
+
+            message.put("content", content);
+            messages.add(message);
+
+            rootNode.put("messages", messages);
+            rootNode.put("max_tokens", 200);
+            rootNode.put("anthropic_version", "bedrock-2023-05-31");
+
+            exchange.getMessage().setBody(mapper.writer().writeValueAsString(rootNode));
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_CONTENT_TYPE, "application/json");
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE, "application/json");
+        });
+
+        // Get the list of chunks
+        List<String> chunks = result.getMessage().getBody(List.class);
+
+        // Process each chunk
+        for (String chunk : chunks) {
+            System.out.println("Chunk: " + chunk);
+        }
+--------------------------------------------------------------------------------
+
 == Dependencies
 
 Maven users will need to add the following dependency to their pom.xml.
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConfiguration.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConfiguration.java
index 75a0d5b037d5..64ce5884ac7d 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConfiguration.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConfiguration.java
@@ -33,6 +33,9 @@ public class BedrockConfiguration implements Cloneable {
     @UriParam
     @Metadata(label = "advanced", autowired = true)
     private BedrockRuntimeClient bedrockRuntimeClient;
+    @UriParam
+    @Metadata(label = "advanced", autowired = true)
+    private software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient bedrockRuntimeAsyncClient;
     @UriParam(label = "security", secret = true)
     private String accessKey;
     @UriParam(label = "security", secret = true)
@@ -69,6 +72,10 @@ public class BedrockConfiguration implements Cloneable {
     private boolean useSessionCredentials;
     @UriParam(defaultValue = "false")
     private String profileCredentialsName;
+    @UriParam(defaultValue = "complete", enums = "complete,chunks")
+    private String streamOutputMode = "complete";
+    @UriParam(defaultValue = "true")
+    private boolean includeStreamingMetadata = true;
 
     public BedrockRuntimeClient getBedrockRuntimeClient() {
         return bedrockRuntimeClient;
@@ -81,6 +88,18 @@ public class BedrockConfiguration implements Cloneable {
         this.bedrockRuntimeClient = bedrockRuntimeClient;
     }
 
+    public software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        return bedrockRuntimeAsyncClient;
+    }
+
+    /**
+     * To use an existing configured AWS Bedrock Runtime Async client for streaming operations
+     */
+    public void setBedrockRuntimeAsyncClient(
+            software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient bedrockRuntimeAsyncClient) {
+        this.bedrockRuntimeAsyncClient = bedrockRuntimeAsyncClient;
+    }
+
     public String getAccessKey() {
         return accessKey;
     }
@@ -272,6 +291,29 @@ public class BedrockConfiguration implements Cloneable {
         this.modelId = modelId;
     }
 
+    public String getStreamOutputMode() {
+        return streamOutputMode;
+    }
+
+    /**
+     * The streaming output mode (complete or chunks). In complete mode, the full response is accumulated and returned
+     * as a single message. In chunks mode, each chunk is emitted as a separate exchange.
+     */
+    public void setStreamOutputMode(String streamOutputMode) {
+        this.streamOutputMode = streamOutputMode;
+    }
+
+    public boolean isIncludeStreamingMetadata() {
+        return includeStreamingMetadata;
+    }
+
+    /**
+     * Whether to include streaming metadata in the response headers (completion reason, token count, chunk count)
+     */
+    public void setIncludeStreamingMetadata(boolean includeStreamingMetadata) {
+        this.includeStreamingMetadata = includeStreamingMetadata;
+    }
+
     // *************************************************
     //
     // *************************************************
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConstants.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConstants.java
index 2412b770eb18..f0df52b81a4b 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConstants.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConstants.java
@@ -28,4 +28,12 @@ public interface BedrockConstants {
     String MODEL_CONTENT_TYPE = "CamelAwsBedrockContentType";
     @Metadata(description = "The model accept content type", javaType = "String")
     String MODEL_ACCEPT_CONTENT_TYPE = "CamelAwsBedrockAcceptContentType";
+    @Metadata(description = "The streaming output mode (complete or chunks)", javaType = "String")
+    String STREAM_OUTPUT_MODE = "CamelAwsBedrockStreamOutputMode";
+    @Metadata(description = "The completion reason for streaming response", javaType = "String")
+    String STREAMING_COMPLETION_REASON = "CamelAwsBedrockCompletionReason";
+    @Metadata(description = "The number of tokens generated in streaming response", javaType = "Integer")
+    String STREAMING_TOKEN_COUNT = "CamelAwsBedrockTokenCount";
+    @Metadata(description = "The number of chunks received in streaming response", javaType = "Integer")
+    String STREAMING_CHUNK_COUNT = "CamelAwsBedrockChunkCount";
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpoint.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpoint.java
index ca7a4801d369..24505dee95cc 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpoint.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockEndpoint.java
@@ -30,6 +30,7 @@ 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.bedrockruntime.BedrockRuntimeAsyncClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 
 /**
@@ -41,6 +42,7 @@ import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 public class BedrockEndpoint extends ScheduledPollEndpoint implements EndpointServiceLocation {
 
     private BedrockRuntimeClient bedrockRuntimeClient;
+    private BedrockRuntimeAsyncClient bedrockRuntimeAsyncClient;
 
     @UriParam
     private BedrockConfiguration configuration;
@@ -69,9 +71,15 @@ public class BedrockEndpoint extends ScheduledPollEndpoint implements EndpointSe
     public void doStart() throws Exception {
         super.doStart();
 
+        // Get sync client
         bedrockRuntimeClient = configuration.getBedrockRuntimeClient() != null
                 ? configuration.getBedrockRuntimeClient()
                 : BedrockClientFactory.getBedrockRuntimeClient(configuration).getBedrockRuntimeClient();
+
+        // Get async client for streaming operations
+        bedrockRuntimeAsyncClient = configuration.getBedrockRuntimeAsyncClient() != null
+                ? configuration.getBedrockRuntimeAsyncClient()
+                : BedrockClientFactory.getBedrockRuntimeClient(configuration).getBedrockRuntimeAsyncClient();
     }
 
     @Override
@@ -81,6 +89,11 @@ public class BedrockEndpoint extends ScheduledPollEndpoint implements EndpointSe
                 bedrockRuntimeClient.close();
             }
         }
+        if (ObjectHelper.isEmpty(configuration.getBedrockRuntimeAsyncClient())) {
+            if (bedrockRuntimeAsyncClient != null) {
+                bedrockRuntimeAsyncClient.close();
+            }
+        }
         super.doStop();
     }
 
@@ -92,6 +105,10 @@ public class BedrockEndpoint extends ScheduledPollEndpoint implements EndpointSe
         return bedrockRuntimeClient;
     }
 
+    public BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        return bedrockRuntimeAsyncClient;
+    }
+
     @Override
     public String getServiceUrl() {
         if (!configuration.isOverrideEndpoint()) {
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockOperations.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockOperations.java
index 0f0f79320204..b541f6e4c206 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockOperations.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockOperations.java
@@ -22,5 +22,11 @@ public enum BedrockOperations {
 
     invokeImageModel,
 
-    invokeEmbeddingsModel
+    invokeEmbeddingsModel,
+
+    invokeTextModelStreaming,
+
+    invokeImageModelStreaming,
+
+    invokeEmbeddingsModelStreaming
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockProducer.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockProducer.java
index 3e54aa0e3f12..7ee309ea8983 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockProducer.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockProducer.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.aws2.bedrock.runtime;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -23,6 +26,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.Message;
+import org.apache.camel.component.aws2.bedrock.runtime.stream.BedrockStreamHandler;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
@@ -33,6 +37,7 @@ import software.amazon.awssdk.core.SdkBytes;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelRequest;
 import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelResponse;
+import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelWithResponseStreamRequest;
 
 /**
  * A Producer which sends messages to the Amazon Bedrock Service <a href="http://aws.amazon.com/bedrock/">AWS
@@ -59,6 +64,15 @@ public class BedrockProducer extends DefaultProducer {
             case invokeEmbeddingsModel:
                 invokeEmbeddingsModel(getEndpoint().getBedrockRuntimeClient(), exchange);
                 break;
+            case invokeTextModelStreaming:
+                invokeTextModelStreaming(getEndpoint().getBedrockRuntimeClient(), exchange);
+                break;
+            case invokeImageModelStreaming:
+                invokeImageModelStreaming(getEndpoint().getBedrockRuntimeClient(), exchange);
+                break;
+            case invokeEmbeddingsModelStreaming:
+                invokeEmbeddingsModelStreaming(getEndpoint().getBedrockRuntimeClient(), exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -384,6 +398,114 @@ public class BedrockProducer extends DefaultProducer {
         message.setBody(jsonString.get("generation"));
     }
 
+    private void invokeTextModelStreaming(BedrockRuntimeClient bedrockRuntimeClient, Exchange exchange)
+            throws InvalidPayloadException {
+        if (getConfiguration().isPojoRequest()) {
+            Object payload = exchange.getMessage().getMandatoryBody();
+            if (payload instanceof InvokeModelWithResponseStreamRequest) {
+                processStreamingRequest((InvokeModelWithResponseStreamRequest) payload, exchange);
+            }
+        } else {
+            InvokeModelWithResponseStreamRequest.Builder builder = InvokeModelWithResponseStreamRequest.builder();
+            if (ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockConstants.MODEL_CONTENT_TYPE))) {
+                String contentType = exchange.getIn().getHeader(BedrockConstants.MODEL_CONTENT_TYPE, String.class);
+                builder.contentType(contentType);
+            } else {
+                throw new IllegalArgumentException("Model Content Type must be specified");
+            }
+            if (ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE))) {
+                String acceptContentType = exchange.getIn().getHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE, String.class);
+                builder.accept(acceptContentType);
+            } else {
+                throw new IllegalArgumentException("Model Accept Content Type must be specified");
+            }
+            InvokeModelWithResponseStreamRequest request = builder
+                    .body(SdkBytes.fromUtf8String(String.valueOf(exchange.getMessage().getBody())))
+                    .modelId(getConfiguration().getModelId())
+                    .build();
+            processStreamingRequest(request, exchange);
+        }
+    }
+
+    private void invokeImageModelStreaming(BedrockRuntimeClient bedrockRuntimeClient, Exchange exchange)
+            throws InvalidPayloadException {
+        // Image streaming works the same way as text streaming
+        invokeTextModelStreaming(bedrockRuntimeClient, exchange);
+    }
+
+    private void invokeEmbeddingsModelStreaming(BedrockRuntimeClient bedrockRuntimeClient, Exchange exchange)
+            throws InvalidPayloadException {
+        // Embeddings streaming works the same way as text streaming
+        invokeTextModelStreaming(bedrockRuntimeClient, exchange);
+    }
+
+    private void processStreamingRequest(
+            InvokeModelWithResponseStreamRequest request,
+            Exchange exchange) {
+
+        try {
+            String streamOutputMode = getConfiguration().getStreamOutputMode();
+            if (streamOutputMode == null) {
+                streamOutputMode = "complete";
+            }
+
+            // Check if mode is overridden in headers
+            if (ObjectHelper.isNotEmpty(exchange.getMessage().getHeader(BedrockConstants.STREAM_OUTPUT_MODE))) {
+                streamOutputMode = exchange.getIn().getHeader(BedrockConstants.STREAM_OUTPUT_MODE, String.class);
+            }
+
+            Message message = getMessageForResponse(exchange);
+            BedrockStreamHandler.StreamMetadata metadata = new BedrockStreamHandler.StreamMetadata();
+
+            if ("chunks".equals(streamOutputMode)) {
+                // Chunks mode - emit each chunk as separate message
+                List<String> allChunks = new ArrayList<>();
+                getEndpoint().getBedrockRuntimeAsyncClient().invokeModelWithResponseStream(
+                        request,
+                        BedrockStreamHandler.createChunksHandler(
+                                getConfiguration().getModelId(),
+                                metadata,
+                                allChunks,
+                                null))
+                        .join();
+
+                message.setBody(allChunks);
+                if (getConfiguration().isIncludeStreamingMetadata()) {
+                    setStreamingMetadata(message, metadata);
+                }
+            } else {
+                // Complete mode - accumulate all chunks and return complete response
+                StringBuilder fullText = new StringBuilder();
+                getEndpoint().getBedrockRuntimeAsyncClient().invokeModelWithResponseStream(
+                        request,
+                        BedrockStreamHandler.createCompleteHandler(
+                                getConfiguration().getModelId(),
+                                metadata,
+                                fullText))
+                        .join();
+
+                message.setBody(fullText.toString());
+                if (getConfiguration().isIncludeStreamingMetadata()) {
+                    setStreamingMetadata(message, metadata);
+                }
+            }
+
+        } catch (AwsServiceException ase) {
+            LOG.trace("Invoke Model Streaming command returned the error code {}", ase.awsErrorDetails().errorCode());
+            throw ase;
+        }
+    }
+
+    private void setStreamingMetadata(Message message, BedrockStreamHandler.StreamMetadata metadata) {
+        if (metadata.getCompletionReason() != null) {
+            message.setHeader(BedrockConstants.STREAMING_COMPLETION_REASON, metadata.getCompletionReason());
+        }
+        if (metadata.getTokenCount() != null) {
+            message.setHeader(BedrockConstants.STREAMING_TOKEN_COUNT, metadata.getTokenCount());
+        }
+        message.setHeader(BedrockConstants.STREAMING_CHUNK_COUNT, metadata.getChunkCount());
+    }
+
     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/runtime/client/BedrockRuntimeInternalClient.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/BedrockRuntimeInternalClient.java
index d9ef32ebfab7..25efb6424016 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/BedrockRuntimeInternalClient.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/BedrockRuntimeInternalClient.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.aws2.bedrock.runtime.client;
 
+import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 
 /**
@@ -29,4 +30,11 @@ public interface BedrockRuntimeInternalClient {
      * @return BedrockRuntimeClient BedrockRuntimeClient
      */
     BedrockRuntimeClient getBedrockRuntimeClient();
+
+    /**
+     * Returns an Bedrock Runtime async client for streaming operations.
+     *
+     * @return BedrockRuntimeAsyncClient BedrockRuntimeAsyncClient
+     */
+    BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient();
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMOptimizedImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMOptimizedImpl.java
index 75a159d9657f..27790c26aabb 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMOptimizedImpl.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMOptimizedImpl.java
@@ -28,6 +28,8 @@ 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.bedrockruntime.BedrockRuntimeAsyncClient;
+import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClientBuilder;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClientBuilder;
 import software.amazon.awssdk.utils.AttributeMap;
@@ -91,4 +93,20 @@ public class BedrockRuntimeClientIAMOptimizedImpl implements BedrockRuntimeInter
         client = clientBuilder.build();
         return client;
     }
+
+    @Override
+    public BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        BedrockRuntimeAsyncClient client = null;
+        BedrockRuntimeAsyncClientBuilder clientBuilder = BedrockRuntimeAsyncClient.builder();
+
+        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+            clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+        }
+        if (configuration.isOverrideEndpoint()) {
+            clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+        }
+        // Note: Async clients use default credentials provider and Netty HTTP client
+        client = clientBuilder.build();
+        return client;
+    }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMProfileOptimizedImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMProfileOptimizedImpl.java
index 66b40e8d2e32..24a17b8123f1 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMProfileOptimizedImpl.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientIAMProfileOptimizedImpl.java
@@ -29,6 +29,8 @@ 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.bedrockruntime.BedrockRuntimeAsyncClient;
+import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClientBuilder;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClientBuilder;
 import software.amazon.awssdk.utils.AttributeMap;
@@ -96,4 +98,24 @@ public class BedrockRuntimeClientIAMProfileOptimizedImpl implements BedrockRunti
         client = clientBuilder.build();
         return client;
     }
+
+    @Override
+    public BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        BedrockRuntimeAsyncClient client = null;
+        BedrockRuntimeAsyncClientBuilder clientBuilder = BedrockRuntimeAsyncClient.builder();
+
+        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()));
+        }
+        // Note: Async clients use Netty by default, proxy and TLS configuration would require NettyNioAsyncHttpClient
+        client = clientBuilder.build();
+        return client;
+    }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientSessionTokenImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientSessionTokenImpl.java
index 730ca6ba7808..9d591fdabda9 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientSessionTokenImpl.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientSessionTokenImpl.java
@@ -30,6 +30,8 @@ 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.bedrockruntime.BedrockRuntimeAsyncClient;
+import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClientBuilder;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClientBuilder;
 import software.amazon.awssdk.utils.AttributeMap;
@@ -108,4 +110,26 @@ public class BedrockRuntimeClientSessionTokenImpl implements BedrockRuntimeInter
         client = clientBuilder.build();
         return client;
     }
+
+    @Override
+    public BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        BedrockRuntimeAsyncClient client = null;
+        BedrockRuntimeAsyncClientBuilder clientBuilder = BedrockRuntimeAsyncClient.builder();
+
+        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null
+                && configuration.getSessionToken() != null) {
+            AwsSessionCredentials cred = AwsSessionCredentials.create(configuration.getAccessKey(),
+                    configuration.getSecretKey(), configuration.getSessionToken());
+            clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred));
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+            clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+        }
+        if (configuration.isOverrideEndpoint()) {
+            clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+        }
+        // Note: Async clients use Netty by default, proxy and TLS configuration would require NettyNioAsyncHttpClient
+        client = clientBuilder.build();
+        return client;
+    }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientStandardImpl.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientStandardImpl.java
index c8013acae969..57373d296204 100644
--- a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientStandardImpl.java
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/client/impl/BedrockRuntimeClientStandardImpl.java
@@ -30,6 +30,8 @@ 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.bedrockruntime.BedrockRuntimeAsyncClient;
+import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClientBuilder;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient;
 import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClientBuilder;
 import software.amazon.awssdk.utils.AttributeMap;
@@ -106,4 +108,29 @@ public class BedrockRuntimeClientStandardImpl implements BedrockRuntimeInternalC
         client = clientBuilder.build();
         return client;
     }
+
+    /**
+     * Getting the Bedrock Runtime AWS async client for streaming operations.
+     *
+     * @return BedrockRuntimeAsyncClient Async Client.
+     */
+    @Override
+    public BedrockRuntimeAsyncClient getBedrockRuntimeAsyncClient() {
+        BedrockRuntimeAsyncClient client = null;
+        BedrockRuntimeAsyncClientBuilder clientBuilder = BedrockRuntimeAsyncClient.builder();
+
+        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
+            AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey());
+            clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred));
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+            clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+        }
+        if (configuration.isOverrideEndpoint()) {
+            clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
+        }
+        // Note: Async clients use Netty by default, proxy and TLS configuration would require NettyNioAsyncHttpClient
+        client = clientBuilder.build();
+        return client;
+    }
 }
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/BedrockStreamHandler.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/BedrockStreamHandler.java
new file mode 100644
index 000000000000..896fe04c67ad
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/BedrockStreamHandler.java
@@ -0,0 +1,196 @@
+/*
+ * 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.runtime.stream;
+
+import java.util.List;
+import java.util.function.Consumer;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelWithResponseStreamResponseHandler;
+
+/**
+ * Utility class for handling streaming responses from Bedrock models
+ */
+public final class BedrockStreamHandler {
+
+    private static final Logger LOG = LoggerFactory.getLogger(BedrockStreamHandler.class);
+
+    private BedrockStreamHandler() {
+        // Utility class
+    }
+
+    /**
+     * Create a response handler for complete mode (accumulates all chunks)
+     *
+     * @param  modelId  the model ID to determine parser
+     * @param  metadata the metadata object to populate
+     * @param  fullText the string builder to accumulate text
+     * @return          the response handler
+     */
+    public static InvokeModelWithResponseStreamResponseHandler createCompleteHandler(
+            String modelId,
+            StreamMetadata metadata,
+            StringBuilder fullText) {
+
+        StreamResponseParser parser = StreamParserFactory.getParser(modelId);
+        int[] chunkCount = { 0 };
+
+        return InvokeModelWithResponseStreamResponseHandler.builder()
+                .subscriber(InvokeModelWithResponseStreamResponseHandler.Visitor.builder()
+                        .onChunk(part -> {
+                            try {
+                                String chunkJson = part.bytes().asUtf8String();
+                                String text = parser.extractText(chunkJson);
+                                if (text != null && !text.isEmpty()) {
+                                    fullText.append(text);
+                                }
+
+                                // Extract metadata from final chunk
+                                if (parser.isFinalChunk(chunkJson)) {
+                                    String completionReason = parser.extractCompletionReason(chunkJson);
+                                    if (completionReason != null) {
+                                        metadata.setCompletionReason(completionReason);
+                                    }
+
+                                    Integer tokenCount = parser.extractTokenCount(chunkJson);
+                                    if (tokenCount != null) {
+                                        metadata.setTokenCount(tokenCount);
+                                    }
+                                }
+                                chunkCount[0]++;
+                            } catch (JsonProcessingException e) {
+                                LOG.warn("Error parsing streaming chunk: {}", e.getMessage(), e);
+                            }
+                        })
+                        .build())
+                .onComplete(() -> {
+                    metadata.setChunkCount(chunkCount[0]);
+                    metadata.setFullText(fullText.toString());
+                })
+                .build();
+    }
+
+    /**
+     * Create a response handler for chunks mode (emits each chunk)
+     *
+     * @param  modelId       the model ID to determine parser
+     * @param  metadata      the metadata object to populate
+     * @param  chunks        the list to collect chunks
+     * @param  chunkConsumer consumer that receives each chunk
+     * @return               the response handler
+     */
+    public static InvokeModelWithResponseStreamResponseHandler createChunksHandler(
+            String modelId,
+            StreamMetadata metadata,
+            List<String> chunks,
+            Consumer<String> chunkConsumer) {
+
+        StreamResponseParser parser = StreamParserFactory.getParser(modelId);
+        int[] chunkCount = { 0 };
+
+        return InvokeModelWithResponseStreamResponseHandler.builder()
+                .subscriber(InvokeModelWithResponseStreamResponseHandler.Visitor.builder()
+                        .onChunk(part -> {
+                            try {
+                                String chunkJson = part.bytes().asUtf8String();
+                                String text = parser.extractText(chunkJson);
+
+                                if (text != null && !text.isEmpty()) {
+                                    chunks.add(text);
+                                    if (chunkConsumer != null) {
+                                        chunkConsumer.accept(text);
+                                    }
+                                }
+
+                                // Extract metadata from final chunk
+                                if (parser.isFinalChunk(chunkJson)) {
+                                    String completionReason = parser.extractCompletionReason(chunkJson);
+                                    if (completionReason != null) {
+                                        metadata.setCompletionReason(completionReason);
+                                    }
+
+                                    Integer tokenCount = parser.extractTokenCount(chunkJson);
+                                    if (tokenCount != null) {
+                                        metadata.setTokenCount(tokenCount);
+                                    }
+                                }
+                                chunkCount[0]++;
+                            } catch (JsonProcessingException e) {
+                                LOG.warn("Error parsing streaming chunk: {}", e.getMessage(), e);
+                            }
+                        })
+                        .build())
+                .onComplete(() -> {
+                    metadata.setChunkCount(chunkCount[0]);
+                    metadata.setChunks(chunks);
+                })
+                .build();
+    }
+
+    /**
+     * Metadata extracted from streaming response
+     */
+    public static class StreamMetadata {
+        private String fullText;
+        private List<String> chunks;
+        private String completionReason;
+        private Integer tokenCount;
+        private int chunkCount;
+
+        public String getFullText() {
+            return fullText;
+        }
+
+        public void setFullText(String fullText) {
+            this.fullText = fullText;
+        }
+
+        public List<String> getChunks() {
+            return chunks;
+        }
+
+        public void setChunks(List<String> chunks) {
+            this.chunks = chunks;
+        }
+
+        public String getCompletionReason() {
+            return completionReason;
+        }
+
+        public void setCompletionReason(String completionReason) {
+            this.completionReason = completionReason;
+        }
+
+        public Integer getTokenCount() {
+            return tokenCount;
+        }
+
+        public void setTokenCount(Integer tokenCount) {
+            this.tokenCount = tokenCount;
+        }
+
+        public int getChunkCount() {
+            return chunkCount;
+        }
+
+        public void setChunkCount(int chunkCount) {
+            this.chunkCount = chunkCount;
+        }
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParser.java
new file mode 100644
index 000000000000..aa8ca527c333
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParser.java
@@ -0,0 +1,102 @@
+/*
+ * 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.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Parser for Anthropic Claude model streaming responses (v3+ format)
+ * <p>
+ * Claude streaming response format: {"type": "message_start", "message": {...}} {"type": "content_block_start",
+ * "index": 0, "content_block": {"type": "text", "text": ""}} {"type": "content_block_delta", "index": 0, "delta":
+ * {"type": "text_delta", "text": "chunk"}} {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta",
+ * "text": " more"}} {"type": "content_block_stop", "index": 0} {"type": "message_delta", "delta": {"stop_reason":
+ * "end_turn", "stop_sequence": null}, "usage": {"output_tokens": 150}} {"type": "message_stop"}
+ */
+public class ClaudeStreamParser implements StreamResponseParser {
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    @Override
+    public String extractText(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return "";
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode type = node.get("type");
+
+        if (type != null && "content_block_delta".equals(type.asText())) {
+            JsonNode delta = node.get("delta");
+            if (delta != null) {
+                JsonNode deltaType = delta.get("type");
+                if (deltaType != null && "text_delta".equals(deltaType.asText())) {
+                    JsonNode text = delta.get("text");
+                    return text != null && !text.isNull() ? text.asText() : "";
+                }
+            }
+        }
+        return "";
+    }
+
+    @Override
+    public String extractCompletionReason(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode type = node.get("type");
+
+        if (type != null && "message_delta".equals(type.asText())) {
+            JsonNode delta = node.get("delta");
+            if (delta != null) {
+                JsonNode stopReason = delta.get("stop_reason");
+                return stopReason != null && !stopReason.isNull() ? stopReason.asText() : null;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public Integer extractTokenCount(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode type = node.get("type");
+
+        if (type != null && "message_delta".equals(type.asText())) {
+            JsonNode usage = node.get("usage");
+            if (usage != null) {
+                JsonNode outputTokens = usage.get("output_tokens");
+                return outputTokens != null && !outputTokens.isNull() ? outputTokens.asInt() : null;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public boolean isFinalChunk(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return false;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode type = node.get("type");
+        return type != null && "message_stop".equals(type.asText());
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/CohereStreamParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/CohereStreamParser.java
new file mode 100644
index 000000000000..52140781e4b9
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/CohereStreamParser.java
@@ -0,0 +1,88 @@
+/*
+ * 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.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Parser for Cohere model streaming responses
+ * <p>
+ * Cohere streaming response format: {"is_finished": false, "event_type": "text-generation", "text": "chunk"}
+ * {"is_finished": false, "event_type": "text-generation", "text": " more"} {"is_finished": true, "event_type":
+ * "stream-end", "finish_reason": "COMPLETE", "response": {...}}
+ */
+public class CohereStreamParser implements StreamResponseParser {
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    @Override
+    public String extractText(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return "";
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode eventType = node.get("event_type");
+
+        if (eventType != null && "text-generation".equals(eventType.asText())) {
+            JsonNode text = node.get("text");
+            return text != null && !text.isNull() ? text.asText() : "";
+        }
+        return "";
+    }
+
+    @Override
+    public String extractCompletionReason(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode finishReason = node.get("finish_reason");
+        return finishReason != null && !finishReason.isNull() ? finishReason.asText() : null;
+    }
+
+    @Override
+    public Integer extractTokenCount(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode response = node.get("response");
+        if (response != null) {
+            JsonNode meta = response.get("meta");
+            if (meta != null) {
+                JsonNode tokens = meta.get("tokens");
+                if (tokens != null) {
+                    JsonNode outputTokens = tokens.get("output_tokens");
+                    return outputTokens != null && !outputTokens.isNull() ? outputTokens.asInt() : null;
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public boolean isFinalChunk(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return false;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode isFinished = node.get("is_finished");
+        return isFinished != null && isFinished.asBoolean(false);
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/LlamaStreamParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/LlamaStreamParser.java
new file mode 100644
index 000000000000..04a538b7cd4e
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/LlamaStreamParser.java
@@ -0,0 +1,70 @@
+/*
+ * 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.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Parser for Meta Llama model streaming responses
+ * <p>
+ * Llama streaming response format: {"generation": "chunk text", "prompt_token_count": 10, "generation_token_count": 1,
+ * "stop_reason": null} {"generation": " more text", "prompt_token_count": 10, "generation_token_count": 2,
+ * "stop_reason": null} {"generation": "", "prompt_token_count": 10, "generation_token_count": 150, "stop_reason":
+ * "stop"}
+ */
+public class LlamaStreamParser implements StreamResponseParser {
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    @Override
+    public String extractText(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return "";
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode generation = node.get("generation");
+        return generation != null && !generation.isNull() ? generation.asText() : "";
+    }
+
+    @Override
+    public String extractCompletionReason(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode stopReason = node.get("stop_reason");
+        return stopReason != null && !stopReason.isNull() ? stopReason.asText() : null;
+    }
+
+    @Override
+    public Integer extractTokenCount(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode tokenCount = node.get("generation_token_count");
+        return tokenCount != null && !tokenCount.isNull() ? tokenCount.asInt() : null;
+    }
+
+    @Override
+    public boolean isFinalChunk(String chunk) throws JsonProcessingException {
+        String stopReason = extractCompletionReason(chunk);
+        return stopReason != null && !stopReason.isEmpty();
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/MistralStreamParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/MistralStreamParser.java
new file mode 100644
index 000000000000..8cc2b9df6575
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/MistralStreamParser.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.bedrock.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Parser for Mistral AI model streaming responses
+ * <p>
+ * Mistral streaming response format: {"outputs": [{"text": "chunk", "stop_reason": null}]} {"outputs": [{"text": " more
+ * text", "stop_reason": null}]} {"outputs": [{"text": "", "stop_reason": "stop"}]}
+ */
+public class MistralStreamParser implements StreamResponseParser {
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    @Override
+    public String extractText(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return "";
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode outputs = node.get("outputs");
+        if (outputs != null && outputs.isArray() && outputs.size() > 0) {
+            JsonNode firstOutput = outputs.get(0);
+            JsonNode text = firstOutput.get("text");
+            return text != null && !text.isNull() ? text.asText() : "";
+        }
+        return "";
+    }
+
+    @Override
+    public String extractCompletionReason(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode outputs = node.get("outputs");
+        if (outputs != null && outputs.isArray() && outputs.size() > 0) {
+            JsonNode firstOutput = outputs.get(0);
+            JsonNode stopReason = firstOutput.get("stop_reason");
+            return stopReason != null && !stopReason.isNull() ? stopReason.asText() : null;
+        }
+        return null;
+    }
+
+    @Override
+    public Integer extractTokenCount(String chunk) throws JsonProcessingException {
+        // Mistral doesn't provide token count in streaming responses
+        // Could be added if Mistral adds this feature
+        return null;
+    }
+
+    @Override
+    public boolean isFinalChunk(String chunk) throws JsonProcessingException {
+        String stopReason = extractCompletionReason(chunk);
+        return stopReason != null && !stopReason.isEmpty();
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamParserFactory.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamParserFactory.java
new file mode 100644
index 000000000000..19b1ebc0dffb
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamParserFactory.java
@@ -0,0 +1,76 @@
+/*
+ * 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.runtime.stream;
+
+/**
+ * Factory for creating appropriate StreamResponseParser based on model ID
+ */
+public final class StreamParserFactory {
+
+    private StreamParserFactory() {
+        // Utility class
+    }
+
+    /**
+     * Get the appropriate parser for the given model ID
+     *
+     * @param  modelId the Bedrock model ID
+     * @return         the appropriate parser for this model
+     */
+    public static StreamResponseParser getParser(String modelId) {
+        if (modelId == null) {
+            throw new IllegalArgumentException("Model ID cannot be null");
+        }
+
+        // Amazon Titan Models
+        if (modelId.startsWith("amazon.titan")) {
+            return new TitanStreamParser();
+        }
+
+        // Anthropic Claude Models
+        if (modelId.startsWith("anthropic.claude")) {
+            return new ClaudeStreamParser();
+        }
+
+        // Meta Llama Models
+        if (modelId.startsWith("meta.llama")) {
+            return new LlamaStreamParser();
+        }
+
+        // Mistral AI Models
+        if (modelId.startsWith("mistral.")) {
+            return new MistralStreamParser();
+        }
+
+        // Cohere Models
+        if (modelId.startsWith("cohere.")) {
+            return new CohereStreamParser();
+        }
+
+        // Amazon Nova Models (use Claude-compatible format)
+        if (modelId.startsWith("amazon.nova")) {
+            return new ClaudeStreamParser();
+        }
+
+        // AI21 Models (use Titan-compatible format for simplicity)
+        if (modelId.startsWith("ai21.")) {
+            return new TitanStreamParser();
+        }
+
+        throw new IllegalArgumentException("Unsupported model for streaming: " + modelId);
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamResponseParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamResponseParser.java
new file mode 100644
index 000000000000..cfc31e2f92dc
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/StreamResponseParser.java
@@ -0,0 +1,57 @@
+/*
+ * 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.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+/**
+ * Parser interface for extracting text and metadata from streaming responses of different Bedrock models
+ */
+public interface StreamResponseParser {
+
+    /**
+     * Extract text content from a streaming chunk
+     *
+     * @param  chunk the JSON chunk from the stream
+     * @return       the extracted text content, or empty string if no text in this chunk
+     */
+    String extractText(String chunk) throws JsonProcessingException;
+
+    /**
+     * Extract the completion reason from a streaming chunk (if present)
+     *
+     * @param  chunk the JSON chunk from the stream
+     * @return       the completion reason, or null if not present in this chunk
+     */
+    String extractCompletionReason(String chunk) throws JsonProcessingException;
+
+    /**
+     * Extract the token count from a streaming chunk (if present)
+     *
+     * @param  chunk the JSON chunk from the stream
+     * @return       the token count, or null if not present in this chunk
+     */
+    Integer extractTokenCount(String chunk) throws JsonProcessingException;
+
+    /**
+     * Check if this chunk represents the end of the stream
+     *
+     * @param  chunk the JSON chunk from the stream
+     * @return       true if this is the final chunk
+     */
+    boolean isFinalChunk(String chunk) throws JsonProcessingException;
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParser.java b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParser.java
new file mode 100644
index 000000000000..5a6aa41fd7c4
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParser.java
@@ -0,0 +1,70 @@
+/*
+ * 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.runtime.stream;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Parser for Amazon Titan model streaming responses
+ * <p>
+ * Titan streaming response format: {"outputText": "chunk text", "index": 0, "totalOutputTextTokenCount": null,
+ * "completionReason": null} {"outputText": "more text", "index": 1, "totalOutputTextTokenCount": null,
+ * "completionReason": null} {"outputText": "", "index": 2, "totalOutputTextTokenCount": 150, "completionReason":
+ * "FINISH"}
+ */
+public class TitanStreamParser implements StreamResponseParser {
+
+    private static final ObjectMapper MAPPER = new ObjectMapper();
+
+    @Override
+    public String extractText(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return "";
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode outputText = node.get("outputText");
+        return outputText != null && !outputText.isNull() ? outputText.asText() : "";
+    }
+
+    @Override
+    public String extractCompletionReason(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode completionReason = node.get("completionReason");
+        return completionReason != null && !completionReason.isNull() ? completionReason.asText() : null;
+    }
+
+    @Override
+    public Integer extractTokenCount(String chunk) throws JsonProcessingException {
+        if (chunk == null || chunk.trim().isEmpty()) {
+            return null;
+        }
+        JsonNode node = MAPPER.readTree(chunk);
+        JsonNode tokenCount = node.get("totalOutputTextTokenCount");
+        return tokenCount != null && !tokenCount.isNull() ? tokenCount.asInt() : null;
+    }
+
+    @Override
+    public boolean isFinalChunk(String chunk) throws JsonProcessingException {
+        String completionReason = extractCompletionReason(chunk);
+        return completionReason != null && !completionReason.isEmpty();
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/integration/BedrockProducerStreamingIT.java b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/integration/BedrockProducerStreamingIT.java
new file mode 100644
index 000000000000..6efe1bc9a7db
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/integration/BedrockProducerStreamingIT.java
@@ -0,0 +1,192 @@
+/*
+ * 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.runtime.integration;
+
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.IntNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.node.TextNode;
+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.BedrockModels;
+import org.apache.camel.component.aws2.bedrock.runtime.BedrockConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperties;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+// 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")
+})
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+class BedrockProducerStreamingIT extends CamelTestSupport {
+
+    private static final Logger LOG = LoggerFactory.getLogger(BedrockProducerStreamingIT.class);
+
+    @EndpointInject
+    private ProducerTemplate template;
+
+    @EndpointInject("mock:result")
+    private MockEndpoint result;
+
+    @BeforeEach
+    public void resetMocks() throws InterruptedException {
+        result.reset();
+        // Add small delay to avoid AWS rate limiting between tests
+        Thread.sleep(1000);
+    }
+
+    @Test
+    @Order(1)
+    public void testInvokeTitanExpressModelStreamingComplete() throws InterruptedException {
+        LOG.info("Starting testInvokeTitanExpressModelStreamingComplete");
+
+        result.expectedMessageCount(1);
+        result.setResultWaitTime(TimeUnit.SECONDS.toMillis(30));
+        final Exchange resultExchange = template.send("direct:send_titan_express_streaming_complete", exchange -> {
+            ObjectMapper mapper = new ObjectMapper();
+            ObjectNode rootNode = mapper.createObjectNode();
+            rootNode.putIfAbsent("inputText", new TextNode("Write a short poem about Apache Camel."));
+
+            ArrayNode stopSequences = mapper.createArrayNode();
+            stopSequences.add("User:");
+            ObjectNode childNode = mapper.createObjectNode();
+            childNode.putIfAbsent("maxTokenCount", new IntNode(512));
+            childNode.putIfAbsent("stopSequences", stopSequences);
+            childNode.putIfAbsent("temperature", new IntNode(0));
+            childNode.putIfAbsent("topP", new IntNode(1));
+
+            rootNode.putIfAbsent("textGenerationConfig", childNode);
+            exchange.getMessage().setBody(mapper.writer().writeValueAsString(rootNode));
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_CONTENT_TYPE, "application/json");
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE, "application/json");
+        });
+
+        MockEndpoint.assertIsSatisfied(context);
+
+        // Verify response
+        String response = resultExchange.getMessage().getBody(String.class);
+        assertNotNull(response, "Response should not be null");
+        assertFalse(response.isEmpty(), "Response should not be empty");
+        LOG.info("Received response with length: {}", response.length());
+
+        // Verify streaming metadata headers
+        Integer chunkCount = resultExchange.getMessage().getHeader(BedrockConstants.STREAMING_CHUNK_COUNT, Integer.class);
+        assertNotNull(chunkCount, "Chunk count header should be present");
+        assertTrue(chunkCount > 0, "Chunk count should be greater than 0, but was: " + chunkCount);
+        LOG.info("Received {} chunks in complete mode", chunkCount);
+
+        // Optional: Verify completion reason if available
+        String completionReason
+                = resultExchange.getMessage().getHeader(BedrockConstants.STREAMING_COMPLETION_REASON, String.class);
+        if (completionReason != null) {
+            LOG.info("Completion reason: {}", completionReason);
+        }
+    }
+
+    @Test
+    @Order(2)
+    public void testInvokeTitanExpressModelStreamingChunks() throws InterruptedException {
+        LOG.info("Starting testInvokeTitanExpressModelStreamingChunks");
+
+        result.expectedMessageCount(1);
+        result.setResultWaitTime(TimeUnit.SECONDS.toMillis(30));
+        final Exchange resultExchange = template.send("direct:send_titan_express_streaming_chunks", exchange -> {
+            ObjectMapper mapper = new ObjectMapper();
+            ObjectNode rootNode = mapper.createObjectNode();
+            rootNode.putIfAbsent("inputText", new TextNode("Count from 1 to 5."));
+
+            ArrayNode stopSequences = mapper.createArrayNode();
+            ObjectNode childNode = mapper.createObjectNode();
+            childNode.putIfAbsent("maxTokenCount", new IntNode(100));
+            childNode.putIfAbsent("stopSequences", stopSequences);
+            childNode.putIfAbsent("temperature", new IntNode(0));
+            childNode.putIfAbsent("topP", new IntNode(1));
+
+            rootNode.putIfAbsent("textGenerationConfig", childNode);
+            exchange.getMessage().setBody(mapper.writer().writeValueAsString(rootNode));
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_CONTENT_TYPE, "application/json");
+            exchange.getMessage().setHeader(BedrockConstants.MODEL_ACCEPT_CONTENT_TYPE, "application/json");
+        });
+
+        MockEndpoint.assertIsSatisfied(context);
+
+        // Verify response - should be a list of chunks
+        @SuppressWarnings("unchecked")
+        List<String> chunks = resultExchange.getMessage().getBody(List.class);
+        assertNotNull(chunks, "Chunks list should not be null");
+        assertTrue(chunks.size() > 0, "Chunks list should not be empty, but was: " + chunks.size());
+        LOG.info("Received {} text chunks in chunks mode", chunks.size());
+
+        // Log first few chunks for debugging
+        for (int i = 0; i < Math.min(3, chunks.size()); i++) {
+            LOG.info("Chunk {}: '{}'", i, chunks.get(i));
+        }
+
+        // Verify streaming metadata headers
+        Integer chunkCount = resultExchange.getMessage().getHeader(BedrockConstants.STREAMING_CHUNK_COUNT, Integer.class);
+        assertNotNull(chunkCount, "Chunk count header should be present");
+        assertTrue(chunkCount > 0, "Chunk count should be greater than 0, but was: " + chunkCount);
+        LOG.info("Chunk count from header: {}", chunkCount);
+
+        // Verify chunks list size matches or is close to header count
+        // Note: chunks list contains only non-empty text chunks, while header counts all chunks
+        assertTrue(chunks.size() <= chunkCount,
+                "Text chunks (" + chunks.size() + ") should be <= total chunks (" + chunkCount + ")");
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                from("direct:send_titan_express_streaming_complete")
+                        .to("aws-bedrock:test?accessKey=RAW(" + System.getProperty("aws.manual.access.key")
+                            + ")&secretKey=RAW(" + System.getProperty("aws.manual.secret.key")
+                            + ")&operation=invokeTextModelStreaming&modelId="
+                            + BedrockModels.TITAN_TEXT_EXPRESS_V1.model
+                            + "&region=us-east-1&streamOutputMode=complete")
+                        .to(result);
+
+                from("direct:send_titan_express_streaming_chunks")
+                        .to("aws-bedrock:test?accessKey=RAW(" + System.getProperty("aws.manual.access.key")
+                            + ")&secretKey=RAW(" + System.getProperty("aws.manual.secret.key")
+                            + ")&operation=invokeTextModelStreaming&modelId="
+                            + BedrockModels.TITAN_TEXT_EXPRESS_V1.model
+                            + "&region=us-east-1&streamOutputMode=chunks")
+                        .to(result);
+            }
+        };
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParserTest.java b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParserTest.java
new file mode 100644
index 000000000000..52e84d9292e2
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/ClaudeStreamParserTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.runtime.stream;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ClaudeStreamParserTest {
+
+    private final ClaudeStreamParser parser = new ClaudeStreamParser();
+
+    @Test
+    void testExtractText() throws Exception {
+        String chunk
+                = "{\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"Hello world\"}}";
+        assertEquals("Hello world", parser.extractText(chunk));
+    }
+
+    @Test
+    void testExtractTextFromNonDeltaChunk() throws Exception {
+        String chunk = "{\"type\":\"message_start\",\"message\":{}}";
+        assertEquals("", parser.extractText(chunk));
+    }
+
+    @Test
+    void testExtractCompletionReason() throws Exception {
+        String chunk
+                = "{\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"end_turn\",\"stop_sequence\":null},\"usage\":{\"output_tokens\":150}}";
+        assertEquals("end_turn", parser.extractCompletionReason(chunk));
+    }
+
+    @Test
+    void testExtractTokenCount() throws Exception {
+        String chunk
+                = "{\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"end_turn\"},\"usage\":{\"output_tokens\":150}}";
+        assertEquals(150, parser.extractTokenCount(chunk));
+    }
+
+    @Test
+    void testIsFinalChunk() throws Exception {
+        String finalChunk = "{\"type\":\"message_stop\"}";
+        assertTrue(parser.isFinalChunk(finalChunk));
+
+        String normalChunk
+                = "{\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"test\"}}";
+        assertFalse(parser.isFinalChunk(normalChunk));
+    }
+}
diff --git a/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParserTest.java b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParserTest.java
new file mode 100644
index 000000000000..0361c518eaba
--- /dev/null
+++ b/components/camel-aws/camel-aws-bedrock/src/test/java/org/apache/camel/component/aws2/bedrock/runtime/stream/TitanStreamParserTest.java
@@ -0,0 +1,62 @@
+/*
+ * 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.runtime.stream;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class TitanStreamParserTest {
+
+    private final TitanStreamParser parser = new TitanStreamParser();
+
+    @Test
+    void testExtractText() throws Exception {
+        String chunk
+                = "{\"outputText\":\"Hello world\",\"index\":0,\"totalOutputTextTokenCount\":null,\"completionReason\":null}";
+        assertEquals("Hello world", parser.extractText(chunk));
+    }
+
+    @Test
+    void testExtractTextEmpty() throws Exception {
+        String chunk = "{\"outputText\":\"\",\"index\":2,\"totalOutputTextTokenCount\":150,\"completionReason\":\"FINISH\"}";
+        assertEquals("", parser.extractText(chunk));
+    }
+
+    @Test
+    void testExtractCompletionReason() throws Exception {
+        String chunk = "{\"outputText\":\"\",\"index\":2,\"totalOutputTextTokenCount\":150,\"completionReason\":\"FINISH\"}";
+        assertEquals("FINISH", parser.extractCompletionReason(chunk));
+    }
+
+    @Test
+    void testExtractTokenCount() throws Exception {
+        String chunk = "{\"outputText\":\"\",\"index\":2,\"totalOutputTextTokenCount\":150,\"completionReason\":\"FINISH\"}";
+        assertEquals(150, parser.extractTokenCount(chunk));
+    }
+
+    @Test
+    void testIsFinalChunk() throws Exception {
+        String finalChunk
+                = "{\"outputText\":\"\",\"index\":2,\"totalOutputTextTokenCount\":150,\"completionReason\":\"FINISH\"}";
+        assertTrue(parser.isFinalChunk(finalChunk));
+
+        String normalChunk
+                = "{\"outputText\":\"text\",\"index\":0,\"totalOutputTextTokenCount\":null,\"completionReason\":null}";
+        assertFalse(parser.isFinalChunk(normalChunk));
+    }
+}
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockComponentBuilderFactory.java
index f68cd0b618c0..437990ba047d 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AwsBedrockComponentBuilderFactory.java
@@ -67,6 +67,24 @@ public interface AwsBedrockComponentBuilderFactory {
         }
     
         
+        /**
+         * Whether to include streaming metadata in the response headers
+         * (completion reason, token count, chunk count).
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: producer
+         * 
+         * @param includeStreamingMetadata the value to set
+         * @return the dsl builder
+         */
+        default AwsBedrockComponentBuilder includeStreamingMetadata(boolean includeStreamingMetadata) {
+            doSetProperty("includeStreamingMetadata", includeStreamingMetadata);
+            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
@@ -193,6 +211,25 @@ public interface AwsBedrockComponentBuilderFactory {
             return this;
         }
     
+        
+        /**
+         * The streaming output mode (complete or chunks). In complete mode, the
+         * full response is accumulated and returned as a single message. In
+         * chunks mode, each chunk is emitted as a separate exchange.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: complete
+         * Group: producer
+         * 
+         * @param streamOutputMode the value to set
+         * @return the dsl builder
+         */
+        default AwsBedrockComponentBuilder streamOutputMode(java.lang.String streamOutputMode) {
+            doSetProperty("streamOutputMode", streamOutputMode);
+            return this;
+        }
+    
         /**
          * Set the overriding uri endpoint. This option needs to be used in
          * combination with overrideEndpoint option.
@@ -268,6 +305,23 @@ public interface AwsBedrockComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * To use an existing configured AWS Bedrock Runtime Async client for
+         * streaming operations.
+         * 
+         * The option is a:
+         * &lt;code&gt;software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param bedrockRuntimeAsyncClient the value to set
+         * @return the dsl builder
+         */
+        default AwsBedrockComponentBuilder bedrockRuntimeAsyncClient(software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient bedrockRuntimeAsyncClient) {
+            doSetProperty("bedrockRuntimeAsyncClient", bedrockRuntimeAsyncClient);
+            return this;
+        }
+    
         /**
          * To use an existing configured AWS Bedrock Runtime client.
          * 
@@ -474,6 +528,7 @@ public interface AwsBedrockComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "configuration": ((BedrockComponent) component).setConfiguration((org.apache.camel.component.aws2.bedrock.runtime.BedrockConfiguration) value); return true;
+            case "includeStreamingMetadata": getOrCreateConfiguration((BedrockComponent) component).setIncludeStreamingMetadata((boolean) value); return true;
             case "lazyStartProducer": ((BedrockComponent) component).setLazyStartProducer((boolean) value); return true;
             case "modelId": getOrCreateConfiguration((BedrockComponent) component).setModelId((java.lang.String) value); return true;
             case "operation": getOrCreateConfiguration((BedrockComponent) component).setOperation((org.apache.camel.component.aws2.bedrock.runtime.BedrockOperations) value); return true;
@@ -481,10 +536,12 @@ public interface AwsBedrockComponentBuilderFactory {
             case "pojoRequest": getOrCreateConfiguration((BedrockComponent) component).setPojoRequest((boolean) value); return true;
             case "profileCredentialsName": getOrCreateConfiguration((BedrockComponent) component).setProfileCredentialsName((java.lang.String) value); return true;
             case "region": getOrCreateConfiguration((BedrockComponent) component).setRegion((java.lang.String) value); return true;
+            case "streamOutputMode": getOrCreateConfiguration((BedrockComponent) component).setStreamOutputMode((java.lang.String) value); return true;
             case "uriEndpointOverride": getOrCreateConfiguration((BedrockComponent) component).setUriEndpointOverride((java.lang.String) value); return true;
             case "useDefaultCredentialsProvider": getOrCreateConfiguration((BedrockComponent) component).setUseDefaultCredentialsProvider((boolean) value); return true;
             case "useProfileCredentialsProvider": getOrCreateConfiguration((BedrockComponent) component).setUseProfileCredentialsProvider((boolean) value); return true;
             case "autowiredEnabled": ((BedrockComponent) component).setAutowiredEnabled((boolean) value); return true;
+            case "bedrockRuntimeAsyncClient": getOrCreateConfiguration((BedrockComponent) component).setBedrockRuntimeAsyncClient((software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient) value); return true;
             case "bedrockRuntimeClient": getOrCreateConfiguration((BedrockComponent) component).setBedrockRuntimeClient((software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient) value); return true;
             case "healthCheckConsumerEnabled": ((BedrockComponent) component).setHealthCheckConsumerEnabled((boolean) value); return true;
             case "healthCheckProducerEnabled": ((BedrockComponent) component).setHealthCheckProducerEnabled((boolean) value); return true;
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockEndpointBuilderFactory.java
index 966bd4d490aa..aca85d17480b 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/BedrockEndpointBuilderFactory.java
@@ -44,6 +44,38 @@ public interface BedrockEndpointBuilderFactory {
             return (AdvancedBedrockEndpointBuilder) this;
         }
 
+        /**
+         * Whether to include streaming metadata in the response headers
+         * (completion reason, token count, chunk count).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer
+         * 
+         * @param includeStreamingMetadata the value to set
+         * @return the dsl builder
+         */
+        default BedrockEndpointBuilder includeStreamingMetadata(boolean includeStreamingMetadata) {
+            doSetProperty("includeStreamingMetadata", includeStreamingMetadata);
+            return this;
+        }
+        /**
+         * Whether to include streaming metadata in the response headers
+         * (completion reason, token count, chunk count).
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer
+         * 
+         * @param includeStreamingMetadata the value to set
+         * @return the dsl builder
+         */
+        default BedrockEndpointBuilder includeStreamingMetadata(String includeStreamingMetadata) {
+            doSetProperty("includeStreamingMetadata", includeStreamingMetadata);
+            return this;
+        }
         /**
          * Define the model Id we are going to use.
          * 
@@ -186,6 +218,23 @@ public interface BedrockEndpointBuilderFactory {
             doSetProperty("region", region);
             return this;
         }
+        /**
+         * The streaming output mode (complete or chunks). In complete mode, the
+         * full response is accumulated and returned as a single message. In
+         * chunks mode, each chunk is emitted as a separate exchange.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: complete
+         * Group: producer
+         * 
+         * @param streamOutputMode the value to set
+         * @return the dsl builder
+         */
+        default BedrockEndpointBuilder streamOutputMode(String streamOutputMode) {
+            doSetProperty("streamOutputMode", streamOutputMode);
+            return this;
+        }
         /**
          * Set the overriding uri endpoint. This option needs to be used in
          * combination with overrideEndpoint option.
@@ -509,6 +558,38 @@ public interface BedrockEndpointBuilderFactory {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
+        /**
+         * To use an existing configured AWS Bedrock Runtime Async client for
+         * streaming operations.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param bedrockRuntimeAsyncClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedBedrockEndpointBuilder bedrockRuntimeAsyncClient(software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient bedrockRuntimeAsyncClient) {
+            doSetProperty("bedrockRuntimeAsyncClient", bedrockRuntimeAsyncClient);
+            return this;
+        }
+        /**
+         * To use an existing configured AWS Bedrock Runtime Async client for
+         * streaming operations.
+         * 
+         * The option will be converted to a
+         * <code>software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param bedrockRuntimeAsyncClient the value to set
+         * @return the dsl builder
+         */
+        default AdvancedBedrockEndpointBuilder bedrockRuntimeAsyncClient(String bedrockRuntimeAsyncClient) {
+            doSetProperty("bedrockRuntimeAsyncClient", bedrockRuntimeAsyncClient);
+            return this;
+        }
         /**
          * To use an existing configured AWS Bedrock Runtime client.
          * 
@@ -643,6 +724,54 @@ public interface BedrockEndpointBuilderFactory {
         public String awsBedrockAcceptContentType() {
             return "CamelAwsBedrockAcceptContentType";
         }
+        /**
+         * The streaming output mode (complete or chunks).
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsBedrockStreamOutputMode}.
+         */
+        public String awsBedrockStreamOutputMode() {
+            return "CamelAwsBedrockStreamOutputMode";
+        }
+        /**
+         * The completion reason for streaming response.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsBedrockCompletionReason}.
+         */
+        public String awsBedrockCompletionReason() {
+            return "CamelAwsBedrockCompletionReason";
+        }
+        /**
+         * The number of tokens generated in streaming response.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsBedrockTokenCount}.
+         */
+        public String awsBedrockTokenCount() {
+            return "CamelAwsBedrockTokenCount";
+        }
+        /**
+         * The number of chunks received in streaming response.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code AwsBedrockChunkCount}.
+         */
+        public String awsBedrockChunkCount() {
+            return "CamelAwsBedrockChunkCount";
+        }
     }
     static BedrockEndpointBuilder endpointBuilder(String componentName, String path) {
         class BedrockEndpointBuilderImpl extends AbstractEndpointBuilder implements BedrockEndpointBuilder, AdvancedBedrockEndpointBuilder {