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

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

commit 06a23ba72403afe8a33e61b5cc3ca9c2c59b37e4
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Mon Apr 29 13:20:49 2024 +0200

    CAMEL-20702 - Add a Pinecone component
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 bom/camel-bom/pom.xml                              |   5 +
 .../org/apache/camel/catalog/components.properties |   1 +
 .../apache/camel/catalog/components/pinecone.json  |  53 +++
 components/pom.xml                                 |   1 +
 .../org/apache/camel/main/components.properties    |   1 +
 .../modules/ROOT/examples/json/pinecone.json       |   1 +
 docs/components/modules/ROOT/nav.adoc              |   1 +
 .../modules/ROOT/pages/pinecone-component.adoc     |   1 +
 .../component/ComponentsBuilderFactory.java        |  13 +
 .../dsl/PineconeComponentBuilderFactory.java       | 159 +++++++++
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  40 +++
 .../PineconeVectorDbEndpointBuilderFactory.java    | 377 +++++++++++++++++++++
 .../camel-component-known-dependencies.properties  |   1 +
 .../camel/kotlin/components/PineconeUriDsl.kt      |  83 +++++
 16 files changed, 739 insertions(+)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 0292d751dac..c7f58040aa9 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -1572,6 +1572,11 @@
         <artifactId>camel-pgevent</artifactId>
         <version>4.6.0-SNAPSHOT</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-pinecone</artifactId>
+        <version>4.6.0-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-platform-http</artifactId>
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 379956c6f89..73dcf99cd95 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -251,6 +251,7 @@ paho-mqtt5
 pdf
 pg-replication-slot
 pgevent
+pinecone
 platform-http
 plc4x
 pop3
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
new file mode 100644
index 00000000000..532bdd80669
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pinecone.json
@@ -0,0 +1,53 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "pinecone",
+    "title": "Pinecone",
+    "description": "Perform operations on the Pinecone Vector Database.",
+    "deprecated": false,
+    "firstVersion": "4.6.0",
+    "label": "database,ai",
+    "javaType": 
"org.apache.camel.component.pinecone.PineconeVectorDbComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-pinecone",
+    "version": "4.6.0-SNAPSHOT",
+    "scheme": "pinecone",
+    "extendsScheme": "",
+    "syntax": "pinecone:collection",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.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 [...]
+  },
+  "headers": {
+    "CamelPineconeAction": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"enum": [ "CREATE_COLLECTION", "CREATE_INDEX", "UPSERT", "INSERT", "SEARCH", 
"DELETE" ], "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The action to be performed.", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#ACTION" },
+    "CamelPineconeOperationStatus": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Operation Status.", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#OPERATION_STATUS" 
},
+    "CamelPineconeOperationStatusValue": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Operation Status Value.", 
"constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#OPERATION_STATUS_VALUE"
 },
+    "CamelPineconeTextFieldName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Text Field Name for Insert\/Upsert 
operation", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#TEXT_FIELD_NAME" 
},
+    "CamelPineconeVectorFieldName": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Vector Field Name for Insert\/Upsert 
operation", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#VECTOR_FIELD_NAME"
 },
+    "CamelPineconeIndexName": { "index": 5, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Index Name", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#INDEX_NAME" },
+    "CamelPineconeIndexPodType": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Index Pod Type", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#INDEX_POD_TYPE" },
+    "CamelPineconeIndexPodEnvironment": { "index": 7, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Index Pod Environment", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#INDEX_POD_ENVIRONMENT"
 },
+    "CamelPineconeCollectionName": { "index": 8, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Collection Name for Insert\/Upsert 
operation", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#COLLECTION_NAME" 
},
+    "CamelPineconeCollectionSimilarityMetric": { "index": 9, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Collection Similarity Metric", 
"constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#COLLECTION_SIMILARITY_METRIC"
 },
+    "CamelPineconeCollectionDimension": { "index": 10, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Collection Dimension", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#COLLECTION_DIMENSION"
 },
+    "CamelPineconeCollectionCloud": { "index": 11, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Collection Cloud Vendor", 
"constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#COLLECTION_CLOUD" 
},
+    "CamelPineconeCollectionCloudRegion": { "index": 12, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Collection Cloud Vendor Region", 
"constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#COLLECTION_CLOUD_REGION"
 },
+    "CamelPineconeIndexId": { "index": 13, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Index Upsert Id", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#INDEX_ID" },
+    "CamelPineconeQueryTopK": { "index": 14, "kind": "header", "displayName": 
"", "group": "producer", "label": "", "required": false, "javaType": "Integer", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "Query Top K", "constantName": 
"org.apache.camel.component.pinecone.PineconeVectorDb$Headers#QUERY_TOP_K" }
+  },
+  "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 [...]
+  }
+}
diff --git a/components/pom.xml b/components/pom.xml
index 6eadce4b071..b3872b61962 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -233,6 +233,7 @@
         <module>camel-pdf</module>
         <module>camel-pg-replication-slot</module>
         <module>camel-pgevent</module>
+        <module>camel-pinecone</module>
         <module>camel-platform-http</module>
         <module>camel-platform-http-jolokia</module>
         <module>camel-platform-http-main</module>
diff --git 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 379956c6f89..73dcf99cd95 100644
--- 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -251,6 +251,7 @@ paho-mqtt5
 pdf
 pg-replication-slot
 pgevent
+pinecone
 platform-http
 plc4x
 pop3
diff --git a/docs/components/modules/ROOT/examples/json/pinecone.json 
b/docs/components/modules/ROOT/examples/json/pinecone.json
new file mode 120000
index 00000000000..8ff4838a963
--- /dev/null
+++ b/docs/components/modules/ROOT/examples/json/pinecone.json
@@ -0,0 +1 @@
+../../../../../../components/camel-pinecone/src/generated/resources/META-INF/org/apache/camel/component/pinecone/pinecone.json
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/nav.adoc 
b/docs/components/modules/ROOT/nav.adoc
index 9ab4c756b4f..7b4a93cf710 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -255,6 +255,7 @@
 ** xref:paho-component.adoc[Paho]
 ** xref:paho-mqtt5-component.adoc[Paho MQTT 5]
 ** xref:pdf-component.adoc[PDF]
+** xref:pinecone-component.adoc[Pinecone]
 ** xref:platform-http-component.adoc[Platform HTTP]
 ** xref:plc4x-component.adoc[PLC4X]
 ** xref:pgevent-component.adoc[PostgresSQL Event]
diff --git a/docs/components/modules/ROOT/pages/pinecone-component.adoc 
b/docs/components/modules/ROOT/pages/pinecone-component.adoc
new file mode 120000
index 00000000000..c88758a6dca
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/pinecone-component.adoc
@@ -0,0 +1 @@
+../../../../../components/camel-pinecone/src/main/docs/pinecone-component.adoc
\ No newline at end of file
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index 3631d181a6f..7d520858685 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -3400,6 +3400,19 @@ public interface ComponentsBuilderFactory {
     static PgeventComponentBuilderFactory.PgeventComponentBuilder pgevent() {
         return PgeventComponentBuilderFactory.pgevent();
     }
+    /**
+     * Pinecone (camel-pinecone)
+     * Perform operations on the Pinecone Vector Database.
+     * 
+     * Category: database,ai
+     * Since: 4.6
+     * Maven coordinates: org.apache.camel:camel-pinecone
+     * 
+     * @return the dsl builder
+     */
+    static PineconeComponentBuilderFactory.PineconeComponentBuilder pinecone() 
{
+        return PineconeComponentBuilderFactory.pinecone();
+    }
     /**
      * Platform HTTP (camel-platform-http)
      * Expose HTTP endpoints using the HTTP server available in the current
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
new file mode 100644
index 00000000000..7b8210dec54
--- /dev/null
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PineconeComponentBuilderFactory.java
@@ -0,0 +1,159 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.pinecone.PineconeVectorDbComponent;
+
+/**
+ * Perform operations on the Pinecone Vector Database.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface PineconeComponentBuilderFactory {
+
+    /**
+     * Pinecone (camel-pinecone)
+     * Perform operations on the Pinecone Vector Database.
+     * 
+     * Category: database,ai
+     * Since: 4.6
+     * Maven coordinates: org.apache.camel:camel-pinecone
+     * 
+     * @return the dsl builder
+     */
+    static PineconeComponentBuilder pinecone() {
+        return new PineconeComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the Pinecone component.
+     */
+    interface PineconeComponentBuilder extends 
ComponentBuilder<PineconeVectorDbComponent> {
+    
+        /**
+         * The configuration;.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.pinecone.PineconeVectorDbConfiguration&lt;/code&gt;
 type.
+         * 
+         * Group: producer
+         * 
+         * @param configuration the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder 
configuration(org.apache.camel.component.pinecone.PineconeVectorDbConfiguration 
configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+    
+        
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder lazyStartProducer(boolean 
lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    
+        /**
+         * Sets the API key to use for authentication.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param token the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder token(java.lang.String token) {
+            doSetProperty("token", token);
+            return this;
+        }
+    
+        
+        /**
+         * Whether autowiring is enabled. This is used for automatic autowiring
+         * options (the option must be marked as autowired) by looking up in 
the
+         * registry to find if there is a single instance of matching type,
+         * which then gets configured on the component. This can be used for
+         * automatic configuring JDBC data sources, JMS connection factories,
+         * AWS Clients, etc.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default PineconeComponentBuilder autowiredEnabled(boolean 
autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+    }
+
+    class PineconeComponentBuilderImpl
+            extends AbstractComponentBuilder<PineconeVectorDbComponent>
+            implements PineconeComponentBuilder {
+        @Override
+        protected PineconeVectorDbComponent buildConcreteComponent() {
+            return new PineconeVectorDbComponent();
+        }
+        private 
org.apache.camel.component.pinecone.PineconeVectorDbConfiguration 
getOrCreateConfiguration(PineconeVectorDbComponent component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new 
org.apache.camel.component.pinecone.PineconeVectorDbConfiguration());
+            }
+            return component.getConfiguration();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "configuration": ((PineconeVectorDbComponent) 
component).setConfiguration((org.apache.camel.component.pinecone.PineconeVectorDbConfiguration)
 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;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 56f984218b7..e44d78fd785 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -262,6 +262,7 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.PdfEndpointBuilderFactory.PdfBuilders,
             
org.apache.camel.builder.endpoint.dsl.PgEventEndpointBuilderFactory.PgEventBuilders,
             
org.apache.camel.builder.endpoint.dsl.PgReplicationSlotEndpointBuilderFactory.PgReplicationSlotBuilders,
+            
org.apache.camel.builder.endpoint.dsl.PineconeVectorDbEndpointBuilderFactory.PineconeVectorDbBuilders,
             
org.apache.camel.builder.endpoint.dsl.PlatformHttpEndpointBuilderFactory.PlatformHttpBuilders,
             
org.apache.camel.builder.endpoint.dsl.Plc4XEndpointBuilderFactory.Plc4XBuilders,
             
org.apache.camel.builder.endpoint.dsl.PrinterEndpointBuilderFactory.PrinterBuilders,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index e14c41f5cc4..00484b3cc26 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -259,6 +259,7 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.PdfEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.PgEventEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.PgReplicationSlotEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.PineconeVectorDbEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.PlatformHttpEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Plc4XEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.PrinterEndpointBuilderFactory,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 22fb4e2cfdc..f496c4c118b 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -11443,6 +11443,46 @@ public class StaticEndpointBuilders {
     public static PgEventEndpointBuilderFactory.PgEventEndpointBuilder 
pgevent(String componentName, String path) {
         return PgEventEndpointBuilderFactory.endpointBuilder(componentName, 
path);
     }
+    /**
+     * Pinecone (camel-pinecone)
+     * Perform operations on the Pinecone Vector Database.
+     * 
+     * Category: database,ai
+     * Since: 4.6
+     * Maven coordinates: org.apache.camel:camel-pinecone
+     * 
+     * Syntax: <code>pinecone:collection</code>
+     * 
+     * Path parameter: collection (required)
+     * The collection Name
+     * 
+     * @param path collection
+     * @return the dsl builder
+     */
+    public static 
PineconeVectorDbEndpointBuilderFactory.PineconeVectorDbEndpointBuilder 
pinecone(String path) {
+        return pinecone("pinecone", path);
+    }
+    /**
+     * Pinecone (camel-pinecone)
+     * Perform operations on the Pinecone Vector Database.
+     * 
+     * Category: database,ai
+     * Since: 4.6
+     * Maven coordinates: org.apache.camel:camel-pinecone
+     * 
+     * Syntax: <code>pinecone:collection</code>
+     * 
+     * Path parameter: collection (required)
+     * The collection Name
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path collection
+     * @return the dsl builder
+     */
+    public static 
PineconeVectorDbEndpointBuilderFactory.PineconeVectorDbEndpointBuilder 
pinecone(String componentName, String path) {
+        return 
PineconeVectorDbEndpointBuilderFactory.endpointBuilder(componentName, path);
+    }
     /**
      * Platform HTTP (camel-platform-http)
      * Expose HTTP endpoints using the HTTP server available in the current
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
new file mode 100644
index 00000000000..0c35ed3492d
--- /dev/null
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PineconeVectorDbEndpointBuilderFactory.java
@@ -0,0 +1,377 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Perform operations on the Pinecone Vector Database.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface PineconeVectorDbEndpointBuilderFactory {
+
+    /**
+     * Builder for endpoint for the Pinecone component.
+     */
+    public interface PineconeVectorDbEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedPineconeVectorDbEndpointBuilder advanced() {
+            return (AdvancedPineconeVectorDbEndpointBuilder) this;
+        }
+
+        /**
+         * Sets the API key to use for authentication.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param token the value to set
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder token(String token) {
+            doSetProperty("token", token);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the Pinecone component.
+     */
+    public interface AdvancedPineconeVectorDbEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default PineconeVectorDbEndpointBuilder basic() {
+            return (PineconeVectorDbEndpointBuilder) this;
+        }
+
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedPineconeVectorDbEndpointBuilder 
lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedPineconeVectorDbEndpointBuilder 
lazyStartProducer(String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    }
+
+    public interface PineconeVectorDbBuilders {
+        /**
+         * Pinecone (camel-pinecone)
+         * Perform operations on the Pinecone Vector Database.
+         * 
+         * Category: database,ai
+         * Since: 4.6
+         * Maven coordinates: org.apache.camel:camel-pinecone
+         * 
+         * @return the dsl builder for the headers' name.
+         */
+        default PineconeVectorDbHeaderNameBuilder pinecone() {
+            return PineconeVectorDbHeaderNameBuilder.INSTANCE;
+        }
+        /**
+         * Pinecone (camel-pinecone)
+         * Perform operations on the Pinecone Vector Database.
+         * 
+         * Category: database,ai
+         * Since: 4.6
+         * Maven coordinates: org.apache.camel:camel-pinecone
+         * 
+         * Syntax: <code>pinecone:collection</code>
+         * 
+         * Path parameter: collection (required)
+         * The collection Name
+         * 
+         * @param path collection
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder pinecone(String path) {
+            return 
PineconeVectorDbEndpointBuilderFactory.endpointBuilder("pinecone", path);
+        }
+        /**
+         * Pinecone (camel-pinecone)
+         * Perform operations on the Pinecone Vector Database.
+         * 
+         * Category: database,ai
+         * Since: 4.6
+         * Maven coordinates: org.apache.camel:camel-pinecone
+         * 
+         * Syntax: <code>pinecone:collection</code>
+         * 
+         * Path parameter: collection (required)
+         * The collection Name
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path collection
+         * @return the dsl builder
+         */
+        default PineconeVectorDbEndpointBuilder pinecone(String componentName, 
String path) {
+            return 
PineconeVectorDbEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+
+    }
+    /**
+     * The builder of headers' name for the Pinecone component.
+     */
+    public static class PineconeVectorDbHeaderNameBuilder {
+        /**
+         * The internal instance of the builder used to access to all the
+         * methods representing the name of headers.
+         */
+        private static final PineconeVectorDbHeaderNameBuilder INSTANCE = new 
PineconeVectorDbHeaderNameBuilder();
+
+        /**
+         * The action to be performed.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeAction}.
+         */
+        public String pineconeAction() {
+            return "CamelPineconeAction";
+        }
+        /**
+         * Operation Status.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeOperationStatus}.
+         */
+        public String pineconeOperationStatus() {
+            return "CamelPineconeOperationStatus";
+        }
+        /**
+         * Operation Status Value.
+         * 
+         * The option is a: {@code int} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeOperationStatusValue}.
+         */
+        public String pineconeOperationStatusValue() {
+            return "CamelPineconeOperationStatusValue";
+        }
+        /**
+         * Text Field Name for Insert/Upsert operation.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeTextFieldName}.
+         */
+        public String pineconeTextFieldName() {
+            return "CamelPineconeTextFieldName";
+        }
+        /**
+         * Vector Field Name for Insert/Upsert operation.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeVectorFieldName}.
+         */
+        public String pineconeVectorFieldName() {
+            return "CamelPineconeVectorFieldName";
+        }
+        /**
+         * Index Name.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeIndexName}.
+         */
+        public String pineconeIndexName() {
+            return "CamelPineconeIndexName";
+        }
+        /**
+         * Index Pod Type.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeIndexPodType}.
+         */
+        public String pineconeIndexPodType() {
+            return "CamelPineconeIndexPodType";
+        }
+        /**
+         * Index Pod Environment.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeIndexPodEnvironment}.
+         */
+        public String pineconeIndexPodEnvironment() {
+            return "CamelPineconeIndexPodEnvironment";
+        }
+        /**
+         * Collection Name for Insert/Upsert operation.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeCollectionName}.
+         */
+        public String pineconeCollectionName() {
+            return "CamelPineconeCollectionName";
+        }
+        /**
+         * Collection Similarity Metric.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * PineconeCollectionSimilarityMetric}.
+         */
+        public String pineconeCollectionSimilarityMetric() {
+            return "CamelPineconeCollectionSimilarityMetric";
+        }
+        /**
+         * Collection Dimension.
+         * 
+         * The option is a: {@code int} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeCollectionDimension}.
+         */
+        public String pineconeCollectionDimension() {
+            return "CamelPineconeCollectionDimension";
+        }
+        /**
+         * Collection Cloud Vendor.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeCollectionCloud}.
+         */
+        public String pineconeCollectionCloud() {
+            return "CamelPineconeCollectionCloud";
+        }
+        /**
+         * Collection Cloud Vendor Region.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code 
PineconeCollectionCloudRegion}.
+         */
+        public String pineconeCollectionCloudRegion() {
+            return "CamelPineconeCollectionCloudRegion";
+        }
+        /**
+         * Index Upsert Id.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeIndexId}.
+         */
+        public String pineconeIndexId() {
+            return "CamelPineconeIndexId";
+        }
+        /**
+         * Query Top K.
+         * 
+         * The option is a: {@code Integer} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code PineconeQueryTopK}.
+         */
+        public String pineconeQueryTopK() {
+            return "CamelPineconeQueryTopK";
+        }
+    }
+    static PineconeVectorDbEndpointBuilder endpointBuilder(String 
componentName, String path) {
+        class PineconeVectorDbEndpointBuilderImpl extends 
AbstractEndpointBuilder implements PineconeVectorDbEndpointBuilder, 
AdvancedPineconeVectorDbEndpointBuilder {
+            public PineconeVectorDbEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new PineconeVectorDbEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index 60e3802fa6c..e15f8598f39 100644
--- 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -262,6 +262,7 @@ 
org.apache.camel.component.paho.mqtt5.PahoMqtt5Component=camel:paho-mqtt5
 org.apache.camel.component.pdf.PdfComponent=camel:pdf
 
org.apache.camel.component.pg.replication.slot.PgReplicationSlotComponent=camel:pg-replication-slot
 org.apache.camel.component.pgevent.PgEventComponent=camel:pgevent
+org.apache.camel.component.pinecone.PineconeVectorDbComponent=camel:pinecone
 
org.apache.camel.component.platform.http.PlatformHttpComponent=camel:platform-http
 org.apache.camel.component.plc4x.Plc4XComponent=camel:plc4x
 org.apache.camel.component.printer.PrinterComponent=camel:printer
diff --git 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/PineconeUriDsl.kt
 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/PineconeUriDsl.kt
new file mode 100644
index 00000000000..14495b53d28
--- /dev/null
+++ 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/PineconeUriDsl.kt
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.kotlin.components
+
+import kotlin.Boolean
+import kotlin.String
+import kotlin.Unit
+import org.apache.camel.kotlin.CamelDslMarker
+import org.apache.camel.kotlin.UriDsl
+
+/**
+ * Perform operations on the Pinecone Vector Database.
+ */
+public fun UriDsl.pinecone(i: PineconeUriDsl.() -> Unit) {
+  PineconeUriDsl(this).apply(i)
+}
+
+@CamelDslMarker
+public class PineconeUriDsl(
+  it: UriDsl,
+) {
+  private val it: UriDsl
+
+  init {
+    this.it = it
+    this.it.component("pinecone")
+  }
+
+  private var collection: String = ""
+
+  /**
+   * The collection Name
+   */
+  public fun collection(collection: String) {
+    this.collection = collection
+    it.url("$collection")
+  }
+
+  /**
+   * Sets the API key to use for authentication
+   */
+  public fun token(token: String) {
+    it.property("token", token)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: String) {
+    it.property("lazyStartProducer", lazyStartProducer)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: Boolean) {
+    it.property("lazyStartProducer", lazyStartProducer.toString())
+  }
+}


Reply via email to