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

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


The following commit(s) were added to refs/heads/main by this push:
     new 7ae963e3353 CAMEL-21588 Add indexName, collectionSimilarityMetric, 
dimension, cloud, and region to the configuration (#17270)
7ae963e3353 is described below

commit 7ae963e33538b986eae1a8e4aa95c154fe78ef13
Author: Tom Cunningham <tcunn...@redhat.com>
AuthorDate: Wed Feb 26 02:40:53 2025 -0500

    CAMEL-21588 Add indexName, collectionSimilarityMetric, dimension, cloud, 
and region to the configuration (#17270)
---
 .../apache/camel/catalog/components/pinecone.json  | 22 ++++--
 .../PineconeVectorDbComponentConfigurer.java       | 27 +++++++
 .../PineconeVectorDbConfigurationConfigurer.java   | 27 +++++++
 .../PineconeVectorDbEndpointConfigurer.java        | 27 +++++++
 .../PineconeVectorDbEndpointUriFactory.java        |  7 +-
 .../apache/camel/component/pinecone/pinecone.json  | 22 ++++--
 .../pinecone/PineconeVectorDbConfiguration.java    | 70 +++++++++++++++++
 .../pinecone/PineconeVectorDbProducer.java         | 91 ++++++++++++++++++----
 .../PineconeComponentConfigurationTest.java        | 65 ++++++++++++++++
 .../component/pinecone/it/PineconeComponentIT.java |  6 +-
 .../src/test/resources/pinecone_index.properties   | 21 +++++
 .../dsl/PineconeComponentBuilderFactory.java       | 81 +++++++++++++++++++
 .../PineconeVectorDbEndpointBuilderFactory.java    | 86 ++++++++++++++++++++
 13 files changed, 520 insertions(+), 32 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pinecone.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pinecone.json
index 289d0f4b144..3419caa1b63 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pinecone.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pinecone.json
@@ -24,10 +24,15 @@
     "remote": true
   },
   "componentProperties": {
-    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
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 [...]
-    "token": { "index": 2, "kind": "property", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "cloud": { "index": 0, "kind": "property", "displayName": "Cloud", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud type to 
use (aws\/gcp\/azure)" },
+    "cloudRegion": { "index": 1, "kind": "property", "displayName": "Cloud 
Region", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud region" },
+    "collectionDimension": { "index": 2, "kind": "property", "displayName": 
"Collection Dimension", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Dimension to use (1-1536)" },
+    "collectionSimilarityMetric": { "index": 3, "kind": "property", 
"displayName": "Collection Similarity Metric", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Similarity Metric to use (cosine\/euclidea [...]
+    "configuration": { "index": 4, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
configuration;" },
+    "indexName": { "index": 5, "kind": "property", "displayName": "Index 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the index name to 
use" },
+    "lazyStartProducer": { "index": 6, "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 [...]
+    "token": { "index": 7, "kind": "property", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
+    "autowiredEnabled": { "index": 8, "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 t [...]
   },
   "headers": {
     "CamelPineconeAction": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"enum": [ "CREATE_COLLECTION", "CREATE_INDEX", "UPSERT", "INSERT", "SEARCH", 
"DELETE", "UPDATE", "QUERY", "QUERY_BY_ID" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
action to be performed.", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#ACTION" },
@@ -46,7 +51,12 @@
   },
   "properties": {
     "collection": { "index": 0, "kind": "path", "displayName": "Collection", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The collection Name" },
-    "token": { "index": 1, "kind": "parameter", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
-    "lazyStartProducer": { "index": 2, "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 produc [...]
+    "cloud": { "index": 1, "kind": "parameter", "displayName": "Cloud", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud type to 
use (aws\/gcp\/azure)" },
+    "cloudRegion": { "index": 2, "kind": "parameter", "displayName": "Cloud 
Region", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud region" },
+    "collectionDimension": { "index": 3, "kind": "parameter", "displayName": 
"Collection Dimension", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Dimension to use (1-1536)" },
+    "collectionSimilarityMetric": { "index": 4, "kind": "parameter", 
"displayName": "Collection Similarity Metric", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Similarity Metric to use (cosine\/euclide [...]
+    "indexName": { "index": 5, "kind": "parameter", "displayName": "Index 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the index name to 
use" },
+    "token": { "index": 6, "kind": "parameter", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
+    "lazyStartProducer": { "index": 7, "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 produc [...]
   }
 }
diff --git 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbComponentConfigurer.java
 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbComponentConfigurer.java
index dd6535b3461..410362fea3a 100644
--- 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbComponentConfigurer.java
+++ 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbComponentConfigurer.java
@@ -32,7 +32,16 @@ public class PineconeVectorDbComponentConfigurer extends 
PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
+        case "cloud": 
getOrCreateConfiguration(target).setCloud(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "cloudregion":
+        case "cloudRegion": 
getOrCreateConfiguration(target).setCloudRegion(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "collectiondimension":
+        case "collectionDimension": 
getOrCreateConfiguration(target).setCollectionDimension(property(camelContext, 
java.lang.Integer.class, value)); return true;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": 
getOrCreateConfiguration(target).setCollectionSimilarityMetric(property(camelContext,
 java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, 
org.apache.camel.component.pinecone.PineconeVectorDbConfiguration.class, 
value)); return true;
+        case "indexname":
+        case "indexName": 
getOrCreateConfiguration(target).setIndexName(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "token": 
getOrCreateConfiguration(target).setToken(property(camelContext, 
java.lang.String.class, value)); return true;
@@ -45,7 +54,16 @@ public class PineconeVectorDbComponentConfigurer extends 
PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return boolean.class;
+        case "cloud": return java.lang.String.class;
+        case "cloudregion":
+        case "cloudRegion": return java.lang.String.class;
+        case "collectiondimension":
+        case "collectionDimension": return java.lang.Integer.class;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return java.lang.String.class;
         case "configuration": return 
org.apache.camel.component.pinecone.PineconeVectorDbConfiguration.class;
+        case "indexname":
+        case "indexName": return java.lang.String.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "token": return java.lang.String.class;
@@ -59,7 +77,16 @@ public class PineconeVectorDbComponentConfigurer extends 
PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "cloud": return getOrCreateConfiguration(target).getCloud();
+        case "cloudregion":
+        case "cloudRegion": return 
getOrCreateConfiguration(target).getCloudRegion();
+        case "collectiondimension":
+        case "collectionDimension": return 
getOrCreateConfiguration(target).getCollectionDimension();
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return 
getOrCreateConfiguration(target).getCollectionSimilarityMetric();
         case "configuration": return target.getConfiguration();
+        case "indexname":
+        case "indexName": return 
getOrCreateConfiguration(target).getIndexName();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "token": return getOrCreateConfiguration(target).getToken();
diff --git 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbConfigurationConfigurer.java
 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbConfigurationConfigurer.java
index befae42d11c..5192a73ec7c 100644
--- 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbConfigurationConfigurer.java
+++ 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbConfigurationConfigurer.java
@@ -24,6 +24,15 @@ public class PineconeVectorDbConfigurationConfigurer extends 
org.apache.camel.su
         org.apache.camel.component.pinecone.PineconeVectorDbConfiguration 
target = (org.apache.camel.component.pinecone.PineconeVectorDbConfiguration) 
obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "client": target.setClient(property(camelContext, 
io.pinecone.clients.Pinecone.class, value)); return true;
+        case "cloud": target.setCloud(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "cloudregion":
+        case "cloudRegion": target.setCloudRegion(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "collectiondimension":
+        case "collectionDimension": 
target.setCollectionDimension(property(camelContext, java.lang.Integer.class, 
value)); return true;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": 
target.setCollectionSimilarityMetric(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "indexname":
+        case "indexName": target.setIndexName(property(camelContext, 
java.lang.String.class, value)); return true;
         case "token": target.setToken(property(camelContext, 
java.lang.String.class, value)); return true;
         default: return false;
         }
@@ -33,6 +42,15 @@ public class PineconeVectorDbConfigurationConfigurer extends 
org.apache.camel.su
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "client": return io.pinecone.clients.Pinecone.class;
+        case "cloud": return java.lang.String.class;
+        case "cloudregion":
+        case "cloudRegion": return java.lang.String.class;
+        case "collectiondimension":
+        case "collectionDimension": return java.lang.Integer.class;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return java.lang.String.class;
+        case "indexname":
+        case "indexName": return java.lang.String.class;
         case "token": return java.lang.String.class;
         default: return null;
         }
@@ -43,6 +61,15 @@ public class PineconeVectorDbConfigurationConfigurer extends 
org.apache.camel.su
         org.apache.camel.component.pinecone.PineconeVectorDbConfiguration 
target = (org.apache.camel.component.pinecone.PineconeVectorDbConfiguration) 
obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "client": return target.getClient();
+        case "cloud": return target.getCloud();
+        case "cloudregion":
+        case "cloudRegion": return target.getCloudRegion();
+        case "collectiondimension":
+        case "collectionDimension": return target.getCollectionDimension();
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return 
target.getCollectionSimilarityMetric();
+        case "indexname":
+        case "indexName": return target.getIndexName();
         case "token": return target.getToken();
         default: return null;
         }
diff --git 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointConfigurer.java
 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointConfigurer.java
index 5a6b067416e..109b265e4b3 100644
--- 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointConfigurer.java
+++ 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointConfigurer.java
@@ -23,6 +23,15 @@ public class PineconeVectorDbEndpointConfigurer extends 
PropertyConfigurerSuppor
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
         PineconeVectorDbEndpoint target = (PineconeVectorDbEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "cloud": 
target.getConfiguration().setCloud(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "cloudregion":
+        case "cloudRegion": 
target.getConfiguration().setCloudRegion(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "collectiondimension":
+        case "collectionDimension": 
target.getConfiguration().setCollectionDimension(property(camelContext, 
java.lang.Integer.class, value)); return true;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": 
target.getConfiguration().setCollectionSimilarityMetric(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "indexname":
+        case "indexName": 
target.getConfiguration().setIndexName(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "token": 
target.getConfiguration().setToken(property(camelContext, 
java.lang.String.class, value)); return true;
@@ -33,6 +42,15 @@ public class PineconeVectorDbEndpointConfigurer extends 
PropertyConfigurerSuppor
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "cloud": return java.lang.String.class;
+        case "cloudregion":
+        case "cloudRegion": return java.lang.String.class;
+        case "collectiondimension":
+        case "collectionDimension": return java.lang.Integer.class;
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return java.lang.String.class;
+        case "indexname":
+        case "indexName": return java.lang.String.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "token": return java.lang.String.class;
@@ -44,6 +62,15 @@ public class PineconeVectorDbEndpointConfigurer extends 
PropertyConfigurerSuppor
     public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
         PineconeVectorDbEndpoint target = (PineconeVectorDbEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "cloud": return target.getConfiguration().getCloud();
+        case "cloudregion":
+        case "cloudRegion": return target.getConfiguration().getCloudRegion();
+        case "collectiondimension":
+        case "collectionDimension": return 
target.getConfiguration().getCollectionDimension();
+        case "collectionsimilaritymetric":
+        case "collectionSimilarityMetric": return 
target.getConfiguration().getCollectionSimilarityMetric();
+        case "indexname":
+        case "indexName": return target.getConfiguration().getIndexName();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "token": return target.getConfiguration().getToken();
diff --git 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointUriFactory.java
 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointUriFactory.java
index c0a692cfb59..ce8e48b99d6 100644
--- 
a/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointUriFactory.java
+++ 
b/components/camel-ai/camel-pinecone/src/generated/java/org/apache/camel/component/pinecone/PineconeVectorDbEndpointUriFactory.java
@@ -23,8 +23,13 @@ public class PineconeVectorDbEndpointUriFactory extends 
org.apache.camel.support
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(3);
+        Set<String> props = new HashSet<>(8);
+        props.add("cloud");
+        props.add("cloudRegion");
         props.add("collection");
+        props.add("collectionDimension");
+        props.add("collectionSimilarityMetric");
+        props.add("indexName");
         props.add("lazyStartProducer");
         props.add("token");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
diff --git 
a/components/camel-ai/camel-pinecone/src/generated/resources/META-INF/org/apache/camel/component/pinecone/pinecone.json
 
b/components/camel-ai/camel-pinecone/src/generated/resources/META-INF/org/apache/camel/component/pinecone/pinecone.json
index 289d0f4b144..3419caa1b63 100644
--- 
a/components/camel-ai/camel-pinecone/src/generated/resources/META-INF/org/apache/camel/component/pinecone/pinecone.json
+++ 
b/components/camel-ai/camel-pinecone/src/generated/resources/META-INF/org/apache/camel/component/pinecone/pinecone.json
@@ -24,10 +24,15 @@
     "remote": true
   },
   "componentProperties": {
-    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
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 [...]
-    "token": { "index": 2, "kind": "property", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "cloud": { "index": 0, "kind": "property", "displayName": "Cloud", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud type to 
use (aws\/gcp\/azure)" },
+    "cloudRegion": { "index": 1, "kind": "property", "displayName": "Cloud 
Region", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud region" },
+    "collectionDimension": { "index": 2, "kind": "property", "displayName": 
"Collection Dimension", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Dimension to use (1-1536)" },
+    "collectionSimilarityMetric": { "index": 3, "kind": "property", 
"displayName": "Collection Similarity Metric", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Similarity Metric to use (cosine\/euclidea [...]
+    "configuration": { "index": 4, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
configuration;" },
+    "indexName": { "index": 5, "kind": "property", "displayName": "Index 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the index name to 
use" },
+    "lazyStartProducer": { "index": 6, "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 [...]
+    "token": { "index": 7, "kind": "property", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
+    "autowiredEnabled": { "index": 8, "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 t [...]
   },
   "headers": {
     "CamelPineconeAction": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"enum": [ "CREATE_COLLECTION", "CREATE_INDEX", "UPSERT", "INSERT", "SEARCH", 
"DELETE", "UPDATE", "QUERY", "QUERY_BY_ID" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
action to be performed.", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#ACTION" },
@@ -46,7 +51,12 @@
   },
   "properties": {
     "collection": { "index": 0, "kind": "path", "displayName": "Collection", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The collection Name" },
-    "token": { "index": 1, "kind": "parameter", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
-    "lazyStartProducer": { "index": 2, "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 produc [...]
+    "cloud": { "index": 1, "kind": "parameter", "displayName": "Cloud", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud type to 
use (aws\/gcp\/azure)" },
+    "cloudRegion": { "index": 2, "kind": "parameter", "displayName": "Cloud 
Region", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the cloud region" },
+    "collectionDimension": { "index": 3, "kind": "parameter", "displayName": 
"Collection Dimension", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Dimension to use (1-1536)" },
+    "collectionSimilarityMetric": { "index": 4, "kind": "parameter", 
"displayName": "Collection Similarity Metric", "group": "producer", "label": 
"producer", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the Collection 
Similarity Metric to use (cosine\/euclide [...]
+    "indexName": { "index": 5, "kind": "parameter", "displayName": "Index 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the index name to 
use" },
+    "token": { "index": 6, "kind": "parameter", "displayName": "Token", 
"group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.pinecone.PineconeVectorDbConfiguration", 
"configurationField": "configuration", "description": "Sets the API key to use 
for authentication" },
+    "lazyStartProducer": { "index": 7, "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 produc [...]
   }
 }
diff --git 
a/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbConfiguration.java
 
b/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbConfiguration.java
index b95e6fd9604..df06a7076ab 100644
--- 
a/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbConfiguration.java
+++ 
b/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbConfiguration.java
@@ -34,6 +34,76 @@ public class PineconeVectorDbConfiguration implements 
Cloneable {
     @Metadata(autowired = true)
     private Pinecone client;
 
+    @UriParam(label = "producer")
+    private String indexName;
+
+    @UriParam(label = "producer")
+    private String collectionSimilarityMetric;
+
+    @UriParam(label = "producer")
+    private Integer collectionDimension;
+
+    @UriParam(label = "producer")
+    private String cloud;
+
+    @UriParam(label = "producer")
+    private String cloudRegion;
+
+    public String getIndexName() {
+        return indexName;
+    }
+
+    /**
+     * Sets the index name to use
+     */
+    public void setIndexName(String indexName) {
+        this.indexName = indexName;
+    }
+
+    public String getCollectionSimilarityMetric() {
+        return collectionSimilarityMetric;
+    }
+
+    /**
+     * Sets the Collection Similarity Metric to use 
(cosine/euclidean/dotproduct)
+     */
+    public void setCollectionSimilarityMetric(String 
collectionSimilarityMetric) {
+        this.collectionSimilarityMetric = collectionSimilarityMetric;
+    }
+
+    public Integer getCollectionDimension() {
+        return collectionDimension;
+    }
+
+    /**
+     * Sets the Collection Dimension to use (1-1536)
+     */
+    public void setCollectionDimension(Integer collectionDimension) {
+        this.collectionDimension = collectionDimension;
+    }
+
+    public String getCloud() {
+        return cloud;
+    }
+
+    /**
+     * Sets the cloud type to use (aws/gcp/azure)
+     */
+    public void setCloud(String cloud) {
+        this.cloud = cloud;
+    }
+
+    public String getCloudRegion() {
+        return cloudRegion;
+    }
+
+    /**
+     * Sets the cloud region
+     */
+    public void setCloudRegion(String cloudRegion) {
+        this.cloudRegion = cloudRegion;
+    }
+
     public String getToken() {
         return token;
     }
diff --git 
a/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbProducer.java
 
b/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbProducer.java
index 351c79ce528..5293b225dad 100644
--- 
a/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbProducer.java
+++ 
b/components/camel-ai/camel-pinecone/src/main/java/org/apache/camel/component/pinecone/PineconeVectorDbProducer.java
@@ -107,8 +107,13 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
 
     private void createCollection(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
+
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+
         String collectionName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_NAME, String.class);
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
 
         CollectionModel result = this.client.createCollection(collectionName, 
indexName);
 
@@ -118,12 +123,31 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
 
     private void createServerlessIndex(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
-        String collectionSimilarityMetricName
-                = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_SIMILARITY_METRIC, 
String.class);
-        int collectionDimension = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_DIMENSION, Integer.class);
-        String collectionCloudName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD, String.class);
-        String collectionCloudRegionName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD_REGION, String.class);
+
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+        String collectionSimilarityMetricName = 
getEndpoint().getConfiguration().getCollectionSimilarityMetric();
+        int collectionDimension = 
getEndpoint().getConfiguration().getCollectionDimension().intValue();
+        String collectionCloudName = 
getEndpoint().getConfiguration().getCloud();
+        String collectionCloudRegionName = 
getEndpoint().getConfiguration().getCloudRegion();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
+
+        if 
(in.getHeader(PineconeVectorDb.Headers.COLLECTION_SIMILARITY_METRIC, 
String.class) != null) {
+            collectionSimilarityMetricName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_SIMILARITY_METRIC, 
String.class);
+        }
+
+        if (in.getHeader(PineconeVectorDb.Headers.COLLECTION_DIMENSION, 
Integer.class) != null) {
+            collectionDimension = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_DIMENSION, Integer.class);
+        }
+        if (in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD, 
String.class) != null) {
+            collectionCloudName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD, String.class);
+        }
+
+        if (in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD_REGION, 
String.class) != null) {
+            collectionCloudRegionName = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_CLOUD_REGION, String.class);
+        }
 
         IndexModel result = this.client.createServerlessIndex(indexName, 
collectionSimilarityMetricName, collectionDimension,
                 collectionCloudName, collectionCloudRegionName, 
DeletionProtection.DISABLED);
@@ -134,10 +158,22 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
 
     private void createPodIndex(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
-        String collectionSimilarityMetricName
-                = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_SIMILARITY_METRIC, 
String.class);
-        int collectionDimension = 
in.getHeader(PineconeVectorDb.Headers.COLLECTION_DIMENSION, Integer.class);
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+        String collectionSimilarityMetricName = 
getEndpoint().getConfiguration().getCollectionSimilarityMetric();
+        int collectionDimension = 
getEndpoint().getConfiguration().getCollectionDimension().intValue();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
+
+        if 
(in.getHeader(PineconeVectorDb.Headers.COLLECTION_SIMILARITY_METRIC, 
String.class) != null) {
+            collectionSimilarityMetricName = 
getEndpoint().getConfiguration().getCollectionSimilarityMetric();
+        }
+
+        if (in.getHeader(PineconeVectorDb.Headers.COLLECTION_DIMENSION, 
Integer.class) != null) {
+            collectionDimension = 
getEndpoint().getConfiguration().getCollectionDimension().intValue();
+        }
+
         String indexPodType = 
in.getHeader(PineconeVectorDb.Headers.INDEX_POD_TYPE, String.class);
         String indexPodEnv = 
in.getHeader(PineconeVectorDb.Headers.INDEX_POD_ENVIRONMENT, String.class);
 
@@ -151,7 +187,10 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
     private void upsert(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
         List elements = in.getMandatoryBody(List.class);
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
         String indexId = in.getHeader(PineconeVectorDb.Headers.INDEX_ID, 
String.class);
         Index index = this.client.getIndexConnection(indexName);
 
@@ -164,7 +203,11 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
     private void update(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
         List elements = in.getMandatoryBody(List.class);
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
         String indexId = in.getHeader(PineconeVectorDb.Headers.INDEX_ID, 
String.class);
         Index index = this.client.getIndexConnection(indexName);
 
@@ -176,7 +219,11 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
 
     private void deleteIndex(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
         this.client.deleteIndex(indexName);
     }
 
@@ -189,7 +236,12 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
     private void query(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
         List elements = in.getMandatoryBody(List.class);
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
+
         int topK = in.getHeader(PineconeVectorDb.Headers.QUERY_TOP_K, 
Integer.class);
         Index index = this.client.getIndexConnection(indexName);
 
@@ -200,7 +252,14 @@ public class PineconeVectorDbProducer extends 
DefaultProducer {
 
     private void queryById(Exchange exchange) throws Exception {
         final Message in = exchange.getMessage();
-        String indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+
+        // Check to see if indexName is stored in the header, if it is not, 
check the configuration
+        String indexName = getEndpoint().getConfiguration().getIndexName();
+
+        if (in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, String.class) != 
null) {
+            indexName = in.getHeader(PineconeVectorDb.Headers.INDEX_NAME, 
String.class);
+        }
+
         int topK = in.getHeader(PineconeVectorDb.Headers.QUERY_TOP_K, 
Integer.class);
         Index index = this.client.getIndexConnection(indexName);
 
diff --git 
a/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/PineconeComponentConfigurationTest.java
 
b/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/PineconeComponentConfigurationTest.java
new file mode 100644
index 00000000000..7095f941b0d
--- /dev/null
+++ 
b/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/PineconeComponentConfigurationTest.java
@@ -0,0 +1,65 @@
+/*
+ * 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.pinecone;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.apache.camel.test.junit5.TestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class PineconeComponentConfigurationTest extends CamelTestSupport {
+
+    public Properties loadPineconePropertiesFile() throws IOException {
+        final String fileName = "pinecone_index.properties";
+        return 
TestSupport.loadExternalProperties(PineconeComponentConfigurationTest.class.getClassLoader(),
 fileName);
+    }
+
+    @Test
+    void createEndpointWithMinimalConfiguration() throws Exception {
+        PineconeVectorDbComponent component = context.getComponent("pinecone", 
PineconeVectorDbComponent.class);
+        PineconeVectorDbEndpoint endpoint = (PineconeVectorDbEndpoint) 
component
+                .createEndpoint(
+                        
"pinecone://test-collection?indexName=test-serverless-index&collectionSimilarityMetric=cosine&collectionDimension=3&cloud=aws&cloudRegion=us-east-1");
+        assertEquals("test-serverless-index", 
endpoint.getConfiguration().getIndexName());
+        assertEquals("cosine", 
endpoint.getConfiguration().getCollectionSimilarityMetric());
+        assertEquals(3, endpoint.getConfiguration().getCollectionDimension());
+        assertEquals("aws", endpoint.getConfiguration().getCloud());
+        assertEquals("us-east-1", 
endpoint.getConfiguration().getCloudRegion());
+    }
+
+    @Test
+    void createEndpointWithProperties() throws Exception {
+        Properties properties = loadPineconePropertiesFile();
+        Map<String, Object> propsMap = (Map) properties;
+
+        PineconeVectorDbComponent component = context.getComponent("pinecone", 
PineconeVectorDbComponent.class);
+        PineconeVectorDbEndpoint endpoint = (PineconeVectorDbEndpoint) 
component
+                .createEndpoint(
+                        "pinecone://test-collection", "", propsMap);
+        assertEquals("test-serverless-index", 
endpoint.getConfiguration().getIndexName());
+        assertEquals("cosine", 
endpoint.getConfiguration().getCollectionSimilarityMetric());
+        assertEquals(3, endpoint.getConfiguration().getCollectionDimension());
+        assertEquals("aws", endpoint.getConfiguration().getCloud());
+        assertEquals("us-east-1", 
endpoint.getConfiguration().getCloudRegion());
+    }
+
+}
diff --git 
a/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/it/PineconeComponentIT.java
 
b/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/it/PineconeComponentIT.java
index 211f6fdb797..47de8aeb71e 100644
--- 
a/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/it/PineconeComponentIT.java
+++ 
b/components/camel-ai/camel-pinecone/src/test/java/org/apache/camel/component/pinecone/it/PineconeComponentIT.java
@@ -93,7 +93,7 @@ public class PineconeComponentIT extends CamelTestSupport {
     }
 
     @Test
-    @Order(3)
+    @Order(4)
     public void queryByVector() {
 
         List<Float> elements = Arrays.asList(1.0f, 2.0f, 3.2f);
@@ -112,7 +112,7 @@ public class PineconeComponentIT extends CamelTestSupport {
     }
 
     @Test
-    @Order(4)
+    @Order(5)
     public void queryById() {
 
         Exchange result = 
fluentTemplate.to("pinecone:test-collection?token={{pinecone.token}}")
@@ -128,7 +128,7 @@ public class PineconeComponentIT extends CamelTestSupport {
     }
 
     @Test
-    @Order(5)
+    @Order(6)
     public void deleteIndex() {
 
         Exchange result = 
fluentTemplate.to("pinecone:test-collection?token={{pinecone.token}}")
diff --git 
a/components/camel-ai/camel-pinecone/src/test/resources/pinecone_index.properties
 
b/components/camel-ai/camel-pinecone/src/test/resources/pinecone_index.properties
new file mode 100644
index 00000000000..8c563a7821d
--- /dev/null
+++ 
b/components/camel-ai/camel-pinecone/src/test/resources/pinecone_index.properties
@@ -0,0 +1,21 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+indexName=test-serverless-index
+collectionSimilarityMetric=cosine
+collectionDimension=3
+cloud=aws
+cloudRegion=us-east-1
\ No newline at end of file
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PineconeComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PineconeComponentBuilderFactory.java
index 7b8210dec54..1adfdd0dfb4 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PineconeComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PineconeComponentBuilderFactory.java
@@ -50,6 +50,67 @@ public interface PineconeComponentBuilderFactory {
      */
     interface PineconeComponentBuilder extends 
ComponentBuilder<PineconeVectorDbComponent> {
     
+        /**
+         * Sets the cloud type to use (aws/gcp/azure).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param cloud the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder cloud(java.lang.String cloud) {
+            doSetProperty("cloud", cloud);
+            return this;
+        }
+    
+        /**
+         * Sets the cloud region.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param cloudRegion the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder cloudRegion(java.lang.String 
cloudRegion) {
+            doSetProperty("cloudRegion", cloudRegion);
+            return this;
+        }
+    
+        /**
+         * Sets the Collection Dimension to use (1-1536).
+         * 
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param collectionDimension the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder collectionDimension(java.lang.Integer 
collectionDimension) {
+            doSetProperty("collectionDimension", collectionDimension);
+            return this;
+        }
+    
+        /**
+         * Sets the Collection Similarity Metric to use
+         * (cosine/euclidean/dotproduct).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param collectionSimilarityMetric the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder 
collectionSimilarityMetric(java.lang.String collectionSimilarityMetric) {
+            doSetProperty("collectionSimilarityMetric", 
collectionSimilarityMetric);
+            return this;
+        }
+    
         /**
          * The configuration;.
          * 
@@ -66,6 +127,21 @@ public interface PineconeComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * Sets the index name to use.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param indexName the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder indexName(java.lang.String indexName) 
{
+            doSetProperty("indexName", indexName);
+            return this;
+        }
+    
         
         /**
          * Whether the producer should be started lazy (on the first message).
@@ -148,7 +224,12 @@ public interface PineconeComponentBuilderFactory {
                 String name,
                 Object value) {
             switch (name) {
+            case "cloud": getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setCloud((java.lang.String) value); return true;
+            case "cloudRegion": 
getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setCloudRegion((java.lang.String) value); return true;
+            case "collectionDimension": 
getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setCollectionDimension((java.lang.Integer) value); return true;
+            case "collectionSimilarityMetric": 
getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setCollectionSimilarityMetric((java.lang.String) value); return true;
             case "configuration": ((PineconeVectorDbComponent) 
component).setConfiguration((org.apache.camel.component.pinecone.PineconeVectorDbConfiguration)
 value); return true;
+            case "indexName": 
getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setIndexName((java.lang.String) value); return true;
             case "lazyStartProducer": ((PineconeVectorDbComponent) 
component).setLazyStartProducer((boolean) value); return true;
             case "token": getOrCreateConfiguration((PineconeVectorDbComponent) 
component).setToken((java.lang.String) value); return true;
             case "autowiredEnabled": ((PineconeVectorDbComponent) 
component).setAutowiredEnabled((boolean) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PineconeVectorDbEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PineconeVectorDbEndpointBuilderFactory.java
index 56bbfb4ea2f..3b92a950009 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PineconeVectorDbEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PineconeVectorDbEndpointBuilderFactory.java
@@ -44,6 +44,92 @@ public interface PineconeVectorDbEndpointBuilderFactory {
             return (AdvancedPineconeVectorDbEndpointBuilder) this;
         }
 
+        /**
+         * Sets the cloud type to use (aws/gcp/azure).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param cloud the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder cloud(String cloud) {
+            doSetProperty("cloud", cloud);
+            return this;
+        }
+        /**
+         * Sets the cloud region.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param cloudRegion the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder cloudRegion(String 
cloudRegion) {
+            doSetProperty("cloudRegion", cloudRegion);
+            return this;
+        }
+        /**
+         * Sets the Collection Dimension to use (1-1536).
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param collectionDimension the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder collectionDimension(Integer 
collectionDimension) {
+            doSetProperty("collectionDimension", collectionDimension);
+            return this;
+        }
+        /**
+         * Sets the Collection Dimension to use (1-1536).
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: producer
+         * 
+         * @param collectionDimension the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder collectionDimension(String 
collectionDimension) {
+            doSetProperty("collectionDimension", collectionDimension);
+            return this;
+        }
+        /**
+         * Sets the Collection Similarity Metric to use
+         * (cosine/euclidean/dotproduct).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param collectionSimilarityMetric the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder 
collectionSimilarityMetric(String collectionSimilarityMetric) {
+            doSetProperty("collectionSimilarityMetric", 
collectionSimilarityMetric);
+            return this;
+        }
+        /**
+         * Sets the index name to use.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param indexName the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder indexName(String indexName) {
+            doSetProperty("indexName", indexName);
+            return this;
+        }
         /**
          * Sets the API key to use for authentication.
          * 

Reply via email to