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 a6cbdc4752a Include kservce in catalog a6cbdc4752a is described below commit a6cbdc4752a71706e1c3d5dc1cdfc2c252c7a64d Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Jan 22 11:03:31 2025 +0100 Include kservce in catalog --- .../org/apache/camel/catalog/components.properties | 1 + .../apache/camel/catalog/components/kserve.json | 49 ++++ .../org/apache/camel/main/components.properties | 1 + .../component/ComponentsBuilderFactory.java | 14 + .../dsl/KserveComponentBuilderFactory.java | 253 ++++++++++++++++++ .../builder/endpoint/EndpointBuilderFactory.java | 1 + .../camel/builder/endpoint/EndpointBuilders.java | 1 + .../builder/endpoint/StaticEndpointBuilders.java | 46 ++++ .../endpoint/dsl/KServeEndpointBuilderFactory.java | 287 +++++++++++++++++++++ .../camel-component-known-dependencies.properties | 1 + .../apache/camel/maven/packaging/MojoHelper.java | 2 +- 11 files changed, 655 insertions(+), 1 deletion(-) 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 87d12ba79bf..3502089f41a 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 @@ -189,6 +189,7 @@ jte kafka kamelet knative +kserve kubernetes-config-maps kubernetes-cronjob kubernetes-custom-resources diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json new file mode 100644 index 00000000000..cda7067ee14 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kserve.json @@ -0,0 +1,49 @@ +{ + "component": { + "kind": "component", + "name": "kserve", + "title": "KServe", + "description": "Provide access to AI model servers with the KServe standard to run inference with remote models", + "deprecated": false, + "firstVersion": "4.10.0", + "label": "ai", + "javaType": "org.apache.camel.component.kserve.KServeComponent", + "supportLevel": "Preview", + "groupId": "org.apache.camel", + "artifactId": "camel-kserve", + "version": "4.10.0-SNAPSHOT", + "scheme": "kserve", + "extendsScheme": "", + "syntax": "kserve:api", + "async": false, + "api": false, + "consumerOnly": false, + "producerOnly": true, + "lenientProperties": false, + "browsable": false, + "remote": true + }, + "componentProperties": { + "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.kserve.KServeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration." }, + "modelName": { "index": 1, "kind": "property", "displayName": "Model Name", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The name of the model used for inference." }, + "modelVersion": { "index": 2, "kind": "property", "displayName": "Model Version", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The version of the model used for inference." }, + "target": { "index": 3, "kind": "property", "displayName": "Target", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "localhost:8001", "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The target URI of the client. See: https:\/\/grpc.github.io\/grpc-java\/javadoc\/io\/g [...] + "lazyStartProducer": { "index": 4, "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 [...] + "autowiredEnabled": { "index": 5, "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 [...] + "healthCheckConsumerEnabled": { "index": 6, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" }, + "healthCheckProducerEnabled": { "index": 7, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on producer [...] + "credentials": { "index": 8, "kind": "property", "displayName": "Credentials", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.grpc.ChannelCredentials", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The credentials of the client." } + }, + "headers": { + "CamelKServeModelName": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the model used for inference.", "constantName": "org.apache.camel.component.kserve.KServeConstants#MODEL_NAME" }, + "CamelKServeModelVersion": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The version of the model used for inference.", "constantName": "org.apache.camel.component.kserve.KServeConstants#MODEL_VERSION" } + }, + "properties": { + "api": { "index": 0, "kind": "path", "displayName": "Api", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "infer", "model\/ready", "model\/metadata", "server\/ready", "server\/live", "server\/metadata" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The KServe API" }, + "modelName": { "index": 1, "kind": "parameter", "displayName": "Model Name", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The name of the model used for inference." }, + "modelVersion": { "index": 2, "kind": "parameter", "displayName": "Model Version", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The version of the model used for inference." }, + "target": { "index": 3, "kind": "parameter", "displayName": "Target", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "localhost:8001", "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The target URI of the client. See: https:\/\/grpc.github.io\/grpc-java\/javadoc\/io\/ [...] + "lazyStartProducer": { "index": 4, "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 [...] + "credentials": { "index": 5, "kind": "parameter", "displayName": "Credentials", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.grpc.ChannelCredentials", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kserve.KServeConfiguration", "configurationField": "configuration", "description": "The credentials of the client." } + } +} 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 87d12ba79bf..3502089f41a 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 @@ -189,6 +189,7 @@ jte kafka kamelet knative +kserve kubernetes-config-maps kubernetes-cronjob kubernetes-custom-resources 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 9085a27759b..625d974e2bf 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 @@ -2580,6 +2580,20 @@ public interface ComponentsBuilderFactory { static KnativeComponentBuilderFactory.KnativeComponentBuilder knative() { return KnativeComponentBuilderFactory.knative(); } + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * @return the dsl builder + */ + static KserveComponentBuilderFactory.KserveComponentBuilder kserve() { + return KserveComponentBuilderFactory.kserve(); + } /** * Kubernetes ConfigMap (camel-kubernetes) * Perform operations on Kubernetes ConfigMaps and get notified on diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java new file mode 100644 index 00000000000..5a2942574dc --- /dev/null +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KserveComponentBuilderFactory.java @@ -0,0 +1,253 @@ +/* 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.kserve.KServeComponent; + +/** + * Provide access to AI model servers with the KServe standard to run inference + * with remote models + * + * Generated by camel build tools - do NOT edit this file! + */ +@Generated("org.apache.camel.maven.packaging.ComponentDslMojo") +public interface KserveComponentBuilderFactory { + + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * @return the dsl builder + */ + static KserveComponentBuilder kserve() { + return new KserveComponentBuilderImpl(); + } + + /** + * Builder for the KServe component. + */ + interface KserveComponentBuilder extends ComponentBuilder<KServeComponent> { + + /** + * The configuration. + * + * The option is a: + * <code>org.apache.camel.component.kserve.KServeConfiguration</code> type. + * + * Group: producer + * + * @param configuration the value to set + * @return the dsl builder + */ + default KserveComponentBuilder configuration(org.apache.camel.component.kserve.KServeConfiguration configuration) { + doSetProperty("configuration", configuration); + return this; + } + + /** + * The name of the model used for inference. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: common + * + * @param modelName the value to set + * @return the dsl builder + */ + default KserveComponentBuilder modelName(java.lang.String modelName) { + doSetProperty("modelName", modelName); + return this; + } + + /** + * The version of the model used for inference. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: common + * + * @param modelVersion the value to set + * @return the dsl builder + */ + default KserveComponentBuilder modelVersion(java.lang.String modelVersion) { + doSetProperty("modelVersion", modelVersion); + return this; + } + + + /** + * The target URI of the client. See: + * https://grpc.github.io/grpc-java/javadoc/io/grpc/Grpc.html#newChannelBuilder%28java.lang.String,io.grpc.ChannelCredentials%29. + * + * The option is a: <code>java.lang.String</code> type. + * + * Default: localhost:8001 + * Group: common + * + * @param target the value to set + * @return the dsl builder + */ + default KserveComponentBuilder target(java.lang.String target) { + doSetProperty("target", target); + 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 KserveComponentBuilder lazyStartProducer(boolean lazyStartProducer) { + doSetProperty("lazyStartProducer", lazyStartProducer); + 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 KserveComponentBuilder autowiredEnabled(boolean autowiredEnabled) { + doSetProperty("autowiredEnabled", autowiredEnabled); + return this; + } + + + /** + * Used for enabling or disabling all consumer based health checks from + * this component. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: health + * + * @param healthCheckConsumerEnabled the value to set + * @return the dsl builder + */ + default KserveComponentBuilder healthCheckConsumerEnabled(boolean healthCheckConsumerEnabled) { + doSetProperty("healthCheckConsumerEnabled", healthCheckConsumerEnabled); + return this; + } + + + /** + * Used for enabling or disabling all producer based health checks from + * this component. Notice: Camel has by default disabled all producer + * based health-checks. You can turn on producer checks globally by + * setting camel.health.producersEnabled=true. + * + * The option is a: <code>boolean</code> type. + * + * Default: true + * Group: health + * + * @param healthCheckProducerEnabled the value to set + * @return the dsl builder + */ + default KserveComponentBuilder healthCheckProducerEnabled(boolean healthCheckProducerEnabled) { + doSetProperty("healthCheckProducerEnabled", healthCheckProducerEnabled); + return this; + } + + /** + * The credentials of the client. + * + * The option is a: <code>io.grpc.ChannelCredentials</code> + * type. + * + * Group: security + * + * @param credentials the value to set + * @return the dsl builder + */ + default KserveComponentBuilder credentials(io.grpc.ChannelCredentials credentials) { + doSetProperty("credentials", credentials); + return this; + } + } + + class KserveComponentBuilderImpl + extends AbstractComponentBuilder<KServeComponent> + implements KserveComponentBuilder { + @Override + protected KServeComponent buildConcreteComponent() { + return new KServeComponent(); + } + private org.apache.camel.component.kserve.KServeConfiguration getOrCreateConfiguration(KServeComponent component) { + if (component.getConfiguration() == null) { + component.setConfiguration(new org.apache.camel.component.kserve.KServeConfiguration()); + } + return component.getConfiguration(); + } + @Override + protected boolean setPropertyOnComponent( + Component component, + String name, + Object value) { + switch (name) { + case "configuration": ((KServeComponent) component).setConfiguration((org.apache.camel.component.kserve.KServeConfiguration) value); return true; + case "modelName": getOrCreateConfiguration((KServeComponent) component).setModelName((java.lang.String) value); return true; + case "modelVersion": getOrCreateConfiguration((KServeComponent) component).setModelVersion((java.lang.String) value); return true; + case "target": getOrCreateConfiguration((KServeComponent) component).setTarget((java.lang.String) value); return true; + case "lazyStartProducer": ((KServeComponent) component).setLazyStartProducer((boolean) value); return true; + case "autowiredEnabled": ((KServeComponent) component).setAutowiredEnabled((boolean) value); return true; + case "healthCheckConsumerEnabled": ((KServeComponent) component).setHealthCheckConsumerEnabled((boolean) value); return true; + case "healthCheckProducerEnabled": ((KServeComponent) component).setHealthCheckProducerEnabled((boolean) value); return true; + case "credentials": getOrCreateConfiguration((KServeComponent) component).setCredentials((io.grpc.ChannelCredentials) 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 8de8e48658e..22f306dcffe 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 @@ -193,6 +193,7 @@ public interface EndpointBuilderFactory org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory.Jt400Builders, org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory.JteBuilders, org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders, + org.apache.camel.builder.endpoint.dsl.KServeEndpointBuilderFactory.KServeBuilders, org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory.KafkaBuilders, org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory.KameletBuilders, org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory.KeyVaultBuilders, 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 964a0c9a493..47370e3cbe7 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 @@ -190,6 +190,7 @@ public interface EndpointBuilders org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.JteEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory, + org.apache.camel.builder.endpoint.dsl.KServeEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory, org.apache.camel.builder.endpoint.dsl.KeyVaultEndpointBuilderFactory, 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 05b1000e832..9c741712064 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 @@ -8464,6 +8464,52 @@ public class StaticEndpointBuilders { public static KnativeEndpointBuilderFactory.KnativeEndpointBuilder knative(String componentName, String path) { return KnativeEndpointBuilderFactory.endpointBuilder(componentName, path); } + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * Syntax: <code>kserve:api</code> + * + * Path parameter: api (required) + * The KServe API + * There are 6 enums and the value can be one of: infer, model/ready, + * model/metadata, server/ready, server/live, server/metadata + * + * @param path api + * @return the dsl builder + */ + public static KServeEndpointBuilderFactory.KServeEndpointBuilder kserve(String path) { + return kserve("kserve", path); + } + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * Syntax: <code>kserve:api</code> + * + * Path parameter: api (required) + * The KServe API + * There are 6 enums and the value can be one of: infer, model/ready, + * model/metadata, server/ready, server/live, server/metadata + * + * @param componentName to use a custom component name for the endpoint + * instead of the default name + * @param path api + * @return the dsl builder + */ + public static KServeEndpointBuilderFactory.KServeEndpointBuilder kserve(String componentName, String path) { + return KServeEndpointBuilderFactory.endpointBuilder(componentName, path); + } /** * Kubernetes ConfigMap (camel-kubernetes) * Perform operations on Kubernetes ConfigMaps and get notified on diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java new file mode 100644 index 00000000000..0ffe4e88d2c --- /dev/null +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KServeEndpointBuilderFactory.java @@ -0,0 +1,287 @@ +/* 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; + +/** + * Provide access to AI model servers with the KServe standard to run inference + * with remote models + * + * Generated by camel build tools - do NOT edit this file! + */ +@Generated("org.apache.camel.maven.packaging.EndpointDslMojo") +public interface KServeEndpointBuilderFactory { + + /** + * Builder for endpoint for the KServe component. + */ + public interface KServeEndpointBuilder + extends + EndpointProducerBuilder { + default AdvancedKServeEndpointBuilder advanced() { + return (AdvancedKServeEndpointBuilder) this; + } + + /** + * The name of the model used for inference. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: common + * + * @param modelName the value to set + * @return the dsl builder + */ + default KServeEndpointBuilder modelName(String modelName) { + doSetProperty("modelName", modelName); + return this; + } + /** + * The version of the model used for inference. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: common + * + * @param modelVersion the value to set + * @return the dsl builder + */ + default KServeEndpointBuilder modelVersion(String modelVersion) { + doSetProperty("modelVersion", modelVersion); + return this; + } + /** + * The target URI of the client. See: + * https://grpc.github.io/grpc-java/javadoc/io/grpc/Grpc.html#newChannelBuilder%28java.lang.String,io.grpc.ChannelCredentials%29. + * + * The option is a: <code>java.lang.String</code> type. + * + * Default: localhost:8001 + * Group: common + * + * @param target the value to set + * @return the dsl builder + */ + default KServeEndpointBuilder target(String target) { + doSetProperty("target", target); + return this; + } + /** + * The credentials of the client. + * + * The option is a: <code>io.grpc.ChannelCredentials</code> type. + * + * Group: security + * + * @param credentials the value to set + * @return the dsl builder + */ + default KServeEndpointBuilder credentials(io.grpc.ChannelCredentials credentials) { + doSetProperty("credentials", credentials); + return this; + } + /** + * The credentials of the client. + * + * The option will be converted to a + * <code>io.grpc.ChannelCredentials</code> type. + * + * Group: security + * + * @param credentials the value to set + * @return the dsl builder + */ + default KServeEndpointBuilder credentials(String credentials) { + doSetProperty("credentials", credentials); + return this; + } + } + + /** + * Advanced builder for endpoint for the KServe component. + */ + public interface AdvancedKServeEndpointBuilder + extends + EndpointProducerBuilder { + default KServeEndpointBuilder basic() { + return (KServeEndpointBuilder) 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 AdvancedKServeEndpointBuilder 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 AdvancedKServeEndpointBuilder lazyStartProducer(String lazyStartProducer) { + doSetProperty("lazyStartProducer", lazyStartProducer); + return this; + } + } + + public interface KServeBuilders { + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * @return the dsl builder for the headers' name. + */ + default KServeHeaderNameBuilder kserve() { + return KServeHeaderNameBuilder.INSTANCE; + } + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * Syntax: <code>kserve:api</code> + * + * Path parameter: api (required) + * The KServe API + * There are 6 enums and the value can be one of: infer, model/ready, + * model/metadata, server/ready, server/live, server/metadata + * + * @param path api + * @return the dsl builder + */ + default KServeEndpointBuilder kserve(String path) { + return KServeEndpointBuilderFactory.endpointBuilder("kserve", path); + } + /** + * KServe (camel-kserve) + * Provide access to AI model servers with the KServe standard to run + * inference with remote models + * + * Category: ai + * Since: 4.10 + * Maven coordinates: org.apache.camel:camel-kserve + * + * Syntax: <code>kserve:api</code> + * + * Path parameter: api (required) + * The KServe API + * There are 6 enums and the value can be one of: infer, model/ready, + * model/metadata, server/ready, server/live, server/metadata + * + * @param componentName to use a custom component name for the endpoint + * instead of the default name + * @param path api + * @return the dsl builder + */ + default KServeEndpointBuilder kserve(String componentName, String path) { + return KServeEndpointBuilderFactory.endpointBuilder(componentName, path); + } + + } + /** + * The builder of headers' name for the KServe component. + */ + public static class KServeHeaderNameBuilder { + /** + * The internal instance of the builder used to access to all the + * methods representing the name of headers. + */ + private static final KServeHeaderNameBuilder INSTANCE = new KServeHeaderNameBuilder(); + + /** + * The name of the model used for inference. + * + * The option is a: {@code String} type. + * + * Group: producer + * + * @return the name of the header {@code KServeModelName}. + */ + public String kServeModelName() { + return "CamelKServeModelName"; + } + /** + * The version of the model used for inference. + * + * The option is a: {@code String} type. + * + * Group: producer + * + * @return the name of the header {@code KServeModelVersion}. + */ + public String kServeModelVersion() { + return "CamelKServeModelVersion"; + } + } + static KServeEndpointBuilder endpointBuilder(String componentName, String path) { + class KServeEndpointBuilderImpl extends AbstractEndpointBuilder implements KServeEndpointBuilder, AdvancedKServeEndpointBuilder { + public KServeEndpointBuilderImpl(String path) { + super(componentName, path); + } + } + return new KServeEndpointBuilderImpl(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 8b5f9aedc9f..3a95ab32a3c 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 @@ -201,6 +201,7 @@ org.apache.camel.component.jte.JteComponent=camel:jte org.apache.camel.component.kafka.KafkaComponent=camel:kafka org.apache.camel.component.kamelet.KameletComponent=camel:kamelet org.apache.camel.component.knative.KnativeComponent=camel:knative +org.apache.camel.component.kserve.KServeComponent=camel:kserve org.apache.camel.component.kubernetes.config_maps.KubernetesConfigMapsComponent=camel:kubernetes org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent=camel:kubernetes org.apache.camel.component.kubernetes.customresources.KubernetesCustomResourcesComponent=camel:kubernetes diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java index 46574dc0a19..0cb06f8df16 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java @@ -42,7 +42,7 @@ public final class MojoHelper { dir.resolve("camel-langchain4j-embeddings"), dir.resolve("camel-langchain4j-tokenizer"), dir.resolve("camel-langchain4j-tools"), dir.resolve("camel-langchain4j-web-search"), dir.resolve("camel-qdrant"), dir.resolve("camel-milvus"), - dir.resolve("camel-pinecone")); + dir.resolve("camel-pinecone"), dir.resolve("camel-kserve")); case "camel-as2": return Collections.singletonList(dir.resolve("camel-as2-component")); case "camel-avro-rpc":