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: + * <code>org.apache.camel.component.pinecone.PineconeVectorDbConfiguration</code> 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: <code>boolean</code> 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: <code>java.lang.String</code> 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: <code>boolean</code> 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()) + } +}