You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2026/01/27 13:13:12 UTC
(camel-spring-boot) branch main updated: CAMEL-22912 - Camel-Spring-Boot: Create an AWS Polly starter (#1635)
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-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new 32b94563238 CAMEL-22912 - Camel-Spring-Boot: Create an AWS Polly starter (#1635)
32b94563238 is described below
commit 32b9456323825c9cad13e345d9a1b4f86d2f4ccf
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Jan 27 14:13:06 2026 +0100
CAMEL-22912 - Camel-Spring-Boot: Create an AWS Polly starter (#1635)
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../camel/springboot/catalog/components.properties | 1 +
.../springboot/catalog/components/aws2-polly.json | 103 +++++
.../camel/springboot/catalog/languages/simple.json | 205 +++++-----
.../camel-aws2-polly-starter/pom.xml | 56 +++
.../src/main/docs/aws2-polly.json | 220 +++++++++++
.../Polly2ComponentAutoConfiguration.java | 77 ++++
.../springboot/Polly2ComponentConfiguration.java | 425 +++++++++++++++++++++
.../polly/springboot/Polly2ComponentConverter.java | 65 ++++
.../src/main/resources/META-INF/LICENSE.txt | 203 ++++++++++
.../src/main/resources/META-INF/NOTICE.txt | 11 +
...rk.boot.autoconfigure.AutoConfiguration.imports | 18 +
components-starter/pom.xml | 1 +
tooling/camel-spring-boot-bom/pom.xml | 5 +
tooling/camel-spring-boot-dependencies/pom.xml | 10 +
14 files changed, 1297 insertions(+), 103 deletions(-)
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
index 7b63e11e818..4dab665fd0b 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components.properties
@@ -29,6 +29,7 @@ aws2-kms
aws2-lambda
aws2-mq
aws2-msk
+aws2-polly
aws2-redshift-data
aws2-rekognition
aws2-s3
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-polly.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-polly.json
new file mode 100644
index 00000000000..b9a42cfdc1d
--- /dev/null
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-polly.json
@@ -0,0 +1,103 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "aws2-polly",
+ "title": "AWS Polly",
+ "description": "Synthesize speech using AWS Polly and AWS SDK version 2.x.",
+ "deprecated": false,
+ "firstVersion": "4.18.0",
+ "label": "cloud,ai",
+ "javaType": "org.apache.camel.component.aws2.polly.Polly2Component",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel.springboot",
+ "artifactId": "camel-aws2-polly-starter",
+ "version": "4.18.0-SNAPSHOT",
+ "scheme": "aws2-polly",
+ "extendsScheme": "",
+ "syntax": "aws2-polly:label",
+ "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.aws2.polly.Polly2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+ "engine": { "index": 1, "kind": "property", "displayName": "Engine", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.Engine", "enum": [ "standard", "neural", "long-form", "generative", "null" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The engine to use f [...]
+ "languageCode": { "index": 2, "kind": "property", "displayName": "Language Code", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The language code for the synthesis" },
+ "lazyStartProducer": { "index": 3, "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 [...]
+ "lexiconNames": { "index": 4, "kind": "property", "displayName": "Lexicon Names", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Lexicon names to apply during synthesis" },
+ "operation": { "index": 5, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.polly.Polly2Operations", "enum": [ "synthesizeSpeech", "describeVoices", "listLexicons", "getLexicon", "putLexicon", "deleteLexicon", "startSpeechSynthesisTask", "getSpeechSynthesisTask", "listSpeechSynthesisTasks" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, " [...]
+ "outputFormat": { "index": 6, "kind": "property", "displayName": "Output Format", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.OutputFormat", "enum": [ "json", "mp3", "ogg_opus", "ogg_vorbis", "pcm", "null" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MP3", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configurat [...]
+ "overrideEndpoint": { "index": 7, "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in combinatio [...]
+ "pojoRequest": { "index": 8, "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+ "region": { "index": 9, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
+ "sampleRate": { "index": 10, "kind": "property", "displayName": "Sample Rate", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The sample rate in Hz for the audio output" },
+ "textType": { "index": 11, "kind": "property", "displayName": "Text Type", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.TextType", "enum": [ "ssml", "text", "null" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TEXT", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The type of text inp [...]
+ "uriEndpointOverride": { "index": 12, "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideE [...]
+ "voiceId": { "index": 13, "kind": "property", "displayName": "Voice Id", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.VoiceId", "enum": [ "Aditi", "Amy", "Astrid", "Bianca", "Brian", "Camila", "Carla", "Carmen", "Celine", "Chantal", "Conchita", "Cristiano", "Dora", "Emma", "Enrique", "Ewa", "Filiz", "Gabrielle", "Geraint", "Giorgio", "Gwyneth", "Hans", "Ines", "Ivy", "Jacek", "Jan", "Joanna", "Joey", "Ju [...]
+ "autowiredEnabled": { "index": 14, "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 [...]
+ "pollyClient": { "index": 15, "kind": "property", "displayName": "Polly Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.polly.PollyClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To use an existing configured AWS Polly client" },
+ "healthCheckConsumerEnabled": { "index": 16, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" },
+ "healthCheckProducerEnabled": { "index": 17, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on produce [...]
+ "proxyHost": { "index": 18, "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Polly client" },
+ "proxyPort": { "index": 19, "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Polly client" },
+ "proxyProtocol": { "index": 20, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol whe [...]
+ "accessKey": { "index": 21, "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 22, "kind": "property", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If using a profile credentials provider, this parameter will set the profile [...]
+ "secretKey": { "index": 23, "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 24, "kind": "property", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 25, "kind": "property", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the end [...]
+ "useDefaultCredentialsProvider": { "index": 26, "kind": "property", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to l [...]
+ "useProfileCredentialsProvider": { "index": 27, "kind": "property", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to l [...]
+ "useSessionCredentials": { "index": 28, "kind": "property", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to use Session Creden [...]
+ },
+ "headers": {
+ "CamelAwsPollyOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#OPERATION" },
+ "CamelAwsPollyVoiceId": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.polly.model.VoiceId", "enum": [ "Aditi", "Amy", "Astrid", "Bianca", "Brian", "Camila", "Carla", "Carmen", "Celine", "Chantal", "Conchita", "Cristiano", "Dora", "Emma", "Enrique", "Ewa", "Filiz", "Gabrielle", "Geraint", "Giorgio", "Gwyneth", "Hans", "Ines", "Ivy", "Jacek", "Jan", "Joanna", "Joey", "Justin", "Karl", [...]
+ "CamelAwsPollyOutputFormat": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.polly.model.OutputFormat", "enum": [ "json", "mp3", "ogg_opus", "ogg_vorbis", "pcm", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The output format for the audio stream", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#OUTPUT [...]
+ "CamelAwsPollyTextType": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.polly.model.TextType", "enum": [ "ssml", "text", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of text input (text or ssml)", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#TEXT_TYPE" },
+ "CamelAwsPollySampleRate": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The sample rate in Hz", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#SAMPLE_RATE" },
+ "CamelAwsPollyEngine": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "software.amazon.awssdk.services.polly.model.Engine", "enum": [ "standard", "neural", "long-form", "generative", "null" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The engine to use (standard, neural, long-form, generative)", "constantName": "org.apache.camel.component.aws2.polly.Polly2Consta [...]
+ "CamelAwsPollyLanguageCode": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The language code", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#LANGUAGE_CODE" },
+ "CamelAwsPollyLexiconNames": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Comma-separated list of lexicon names", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#LEXICON_NAMES" },
+ "CamelAwsPollyLexiconName": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the lexicon", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#LEXICON_NAME" },
+ "CamelAwsPollyLexiconContent": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the lexicon in PLS format", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#LEXICON_CONTENT" },
+ "CamelAwsPollyTaskId": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The task ID for speech synthesis task", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#TASK_ID" },
+ "CamelAwsPollyS3Bucket": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The S3 bucket name for output", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#S3_BUCKET" },
+ "CamelAwsPollyS3KeyPrefix": { "index": 12, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The S3 key prefix for output", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#S3_KEY_PREFIX" },
+ "CamelAwsPollySnsTopicArn": { "index": 13, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SNS topic ARN for notifications", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#SNS_TOPIC_ARN" },
+ "CamelAwsPollyContentType": { "index": 14, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type of the audio stream", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#CONTENT_TYPE" },
+ "CamelAwsPollyRequestCharacters": { "index": 15, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Number of characters synthesized", "constantName": "org.apache.camel.component.aws2.polly.Polly2Constants#REQUEST_CHARACTERS" }
+ },
+ "properties": {
+ "label": { "index": 0, "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Logical name" },
+ "engine": { "index": 1, "kind": "parameter", "displayName": "Engine", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.Engine", "enum": [ "standard", "neural", "long-form", "generative", "null" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The engine to use [...]
+ "languageCode": { "index": 2, "kind": "parameter", "displayName": "Language Code", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The language code for the synthesis" },
+ "lexiconNames": { "index": 3, "kind": "parameter", "displayName": "Lexicon Names", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Lexicon names to apply during synthesis" },
+ "operation": { "index": 4, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.polly.Polly2Operations", "enum": [ "synthesizeSpeech", "describeVoices", "listLexicons", "getLexicon", "putLexicon", "deleteLexicon", "startSpeechSynthesisTask", "getSpeechSynthesisTask", "listSpeechSynthesisTasks" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, [...]
+ "outputFormat": { "index": 5, "kind": "parameter", "displayName": "Output Format", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.OutputFormat", "enum": [ "json", "mp3", "ogg_opus", "ogg_vorbis", "pcm", "null" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MP3", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configura [...]
+ "overrideEndpoint": { "index": 6, "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in combinati [...]
+ "pojoRequest": { "index": 7, "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+ "region": { "index": 8, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
+ "sampleRate": { "index": 9, "kind": "parameter", "displayName": "Sample Rate", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The sample rate in Hz for the audio output" },
+ "textType": { "index": 10, "kind": "parameter", "displayName": "Text Type", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.TextType", "enum": [ "ssml", "text", "null" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TEXT", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "The type of text in [...]
+ "uriEndpointOverride": { "index": 11, "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with override [...]
+ "voiceId": { "index": 12, "kind": "parameter", "displayName": "Voice Id", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.services.polly.model.VoiceId", "enum": [ "Aditi", "Amy", "Astrid", "Bianca", "Brian", "Camila", "Carla", "Carmen", "Celine", "Chantal", "Conchita", "Cristiano", "Dora", "Emma", "Enrique", "Ewa", "Filiz", "Gabrielle", "Geraint", "Giorgio", "Gwyneth", "Hans", "Ines", "Ivy", "Jacek", "Jan", "Joanna", "Joey", "J [...]
+ "lazyStartProducer": { "index": 13, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
+ "pollyClient": { "index": 14, "kind": "parameter", "displayName": "Polly Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.polly.PollyClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To use an existing configured AWS Polly client" },
+ "proxyHost": { "index": 15, "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Polly client" },
+ "proxyPort": { "index": 16, "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Polly client" },
+ "proxyProtocol": { "index": 17, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol wh [...]
+ "accessKey": { "index": 18, "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 19, "kind": "parameter", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If using a profile credentials provider, this parameter will set the profile [...]
+ "secretKey": { "index": 20, "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 21, "kind": "parameter", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 22, "kind": "parameter", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the en [...]
+ "useDefaultCredentialsProvider": { "index": 23, "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to [...]
+ "useProfileCredentialsProvider": { "index": 24, "kind": "parameter", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to [...]
+ "useSessionCredentials": { "index": 25, "kind": "parameter", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.polly.Polly2Configuration", "configurationField": "configuration", "description": "Set whether the Polly client should expect to use Session Crede [...]
+ }
+}
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
index 2d727ef05c4..857d46c7719 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/languages/simple.json
@@ -25,108 +25,107 @@
},
"functions": {
"abs(exp)": { "index": 0, "kind": "function", "displayName": "Absolute Number", "group": "function", "label": "function", "required": false, "javaType": "Long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to a long number and return the absolute value.", "ognl": false, "suffix": "}" },
- "assert(exp,msg)": { "index": 1, "kind": "function", "displayName": "Assert", "group": "function", "label": "function", "required": false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates the expression and throws an exception with the message if the condition is false", "ognl": false, "suffix": "}" },
- "attachment.name": { "index": 2, "kind": "function", "displayName": "Attachment", "group": "function", "label": "function", "required": false, "javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The DataHandler for the given attachment.", "ognl": true, "suffix": "}" },
- "attachments": { "index": 3, "kind": "function", "displayName": "Attachments", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "All the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
- "attachmentsContent.name": { "index": 4, "kind": "function", "displayName": "Attachments Content", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment", "ognl": false, "suffix": "}" },
- "attachmentsContentAs(name,type)": { "index": 5, "kind": "function", "displayName": "Attachments Content As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment, converted to the given type.", "ognl": false, "suffix": "}" },
- "attachmentsContentAsText.name": { "index": 6, "kind": "function", "displayName": "Attachments Content As Text", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment as text (ie String).", "ognl": false, "suffix": "}" },
- "attachmentsHeader(key,name)": { "index": 7, "kind": "function", "displayName": "Attachments Header", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The attachment header with the given name.", "ognl": false, "suffix": "}" },
- "attachmentsHeaderAs(key,name,type)": { "index": 8, "kind": "function", "displayName": "Attachments Header As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The attachment header with the given name, converted to the given type.", "ognl": false, "suffix": "}" },
- "attachmentsSize": { "index": 9, "kind": "function", "displayName": "Attachments Size", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of attachments. Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
- "average(val...)": { "index": 10, "kind": "function", "displayName": "Average Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the average number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
- "base64Decode(exp)": { "index": 11, "kind": "function", "displayName": "Base64 Decode", "group": "function", "label": "function", "required": false, "javaType": "byte[]", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Base64 decodes the message body (or expression)", "ognl": false, "suffix": "}" },
- "base64Encode(exp)": { "index": 12, "kind": "function", "displayName": "Base64 Encode", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Base64 encodes the message body (or expression)", "ognl": false, "suffix": "}" },
- "bean(name.method)": { "index": 13, "kind": "function", "displayName": "Call Java Bean", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Calls a Java bean. The name of the bean can also refer to a class name using type prefix as follows `bean:type:com.foo.MyClass`. If no method name is given then Camel will automatic attempt to find the b [...]
- "body": { "index": 14, "kind": "function", "displayName": "Body", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message body", "ognl": true, "suffix": "}" },
- "bodyAs(type)": { "index": 15, "kind": "function", "displayName": "Body As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body to the given type (classname).", "ognl": true, "suffix": "}" },
- "bodyOneLine": { "index": 16, "kind": "function", "displayName": "Body One Line", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the body to a String and removes all line-breaks, so the string is in one line.", "ognl": false, "suffix": "}" },
- "bodyType": { "index": 17, "kind": "function", "displayName": "Body Type", "group": "function", "label": "function", "required": false, "javaType": "Class", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message body class type", "ognl": false, "suffix": "}" },
- "camelContext": { "index": 18, "kind": "function", "displayName": "Camel Context", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Camel Context", "ognl": true, "suffix": "}" },
- "camelId": { "index": 19, "kind": "function", "displayName": "Camel Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the CamelContext", "ognl": false, "suffix": "}" },
- "capitalize(exp)": { "index": 20, "kind": "function", "displayName": "Capitalize String Values", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Capitalizes the message body\/expression as a String value (upper case every words)", "ognl": false, "suffix": "}" },
- "ceil(exp)": { "index": 21, "kind": "function", "displayName": "Ceil Number", "group": "function", "label": "function", "required": false, "javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to a floating number and return the ceil value (rounded up to nearest integer).", "ognl": false, "suffix": "}" },
- "collate(num)": { "index": 22, "kind": "function", "displayName": "Group Message Body into Sub Lists", "group": "function", "label": "function", "required": false, "javaType": "java.util.Iterator", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The collate function iterates the message body and groups the data into sub lists of specified size. This can be used with the Splitter EIP to split a message body and group\/ba [...]
- "concat(exp,exp,separator)": { "index": 23, "kind": "function", "displayName": "Concat", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Performs a string concat using two expressions (message body as default) with optional separator", "ognl": false, "suffix": "}" },
- "convertTo(exp,type)": { "index": 24, "kind": "function", "displayName": "Convert To", "group": "function", "label": "function", "required": false, "javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to the specified type.", "ognl": true, "suffix": "}" },
- "date(command)": { "index": 25, "kind": "function", "displayName": "Parse Date", "group": "function", "label": "function", "required": false, "javaType": "java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates to a java.util.Date object. Supported commands are: `now` for current timestamp, `millis` for current timestamp in millis (unix epoch), `exchangeCreated` for the timestamp when the current exch [...]
- "date-with-timezone(command:timezone:pattern)": { "index": 26, "kind": "function", "displayName": "Date Formatter", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Formats the date to a String using the given date pattern, and with support for timezone. Supported commands are: `now` for current timestamp, `exchangeCreated` for the timesta [...]
- "distinct(val...)": { "index": 27, "kind": "function", "displayName": "Distinct Values", "group": "function", "label": "function", "required": false, "javaType": "Set", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a set of all the values with duplicates removed", "ognl": false, "suffix": "}" },
- "empty(type)": { "index": 28, "kind": "function", "displayName": "Create Empty Object", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": true, "deprecationNote": "", "autowired": false, "secret": false, "description": "Creates a new empty object (decided by type). Use `string` to create an empty String. Use `list` to create an empty `java.util.ArrayList`. Use `map` to create an empty `java.util.LinkedHashMap`. Use `set` [...]
- "env.name": { "index": 29, "kind": "function", "displayName": "OS Environment Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The OS environment variable with the given name", "ognl": false, "suffix": "}" },
- "exchange": { "index": 30, "kind": "function", "displayName": "Exchange", "group": "function", "label": "function", "required": false, "javaType": "org.apache.camel.Exchange", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The current exchange", "ognl": true, "suffix": "}" },
- "exchangeId": { "index": 31, "kind": "function", "displayName": "Exchange Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exchange id", "ognl": false, "suffix": "}" },
- "exchangeProperty.name": { "index": 32, "kind": "function", "displayName": "Exchange Property", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exchange property with the given name", "ognl": true, "suffix": "}" },
- "exception": { "index": 33, "kind": "function", "displayName": "Exception", "group": "function", "label": "function", "required": false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception object on the exchange (also from caught exceptions), is null if no exception present.", "ognl": true, "suffix": "}" },
- "exception.message": { "index": 34, "kind": "function", "displayName": "Exception Message", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception message (also from caught exceptions), is null if no exception present.", "ognl": false, "suffix": "}" },
- "exception.stackTrace": { "index": 35, "kind": "function", "displayName": "Exception Stacktrace", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception stacktrace (also from caught exceptions), is null if no exception present.", "ognl": false, "suffix": "}" },
- "forEach(exp,fun)": { "index": 36, "kind": "function", "displayName": "For Each call Function", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a List containing the values returned by the function when applied to each value from the input expression", "ognl": false, "suffix": "}" },
- "floor(exp)": { "index": 37, "kind": "function", "displayName": "Floor Number", "group": "function", "label": "function", "required": false, "javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to a floating number and return the floor value (rounded down to nearest integer).", "ognl": false, "suffix": "}" },
- "fromRouteId": { "index": 38, "kind": "function", "displayName": "From Route Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The original route id where this exchange was created.", "ognl": false, "suffix": "}" },
- "hash(exp,algorithm)": { "index": 39, "kind": "function", "displayName": "Compute Hash Value", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a hashed value (string in hex decimal) of the message body\/expression using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.", "ognl": false, "suffix": "}" },
- "header.name": { "index": 40, "kind": "function", "displayName": "Header", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message header with the given name", "ognl": true, "suffix": "}" },
- "headerAs(key,type)": { "index": 41, "kind": "function", "displayName": "Header As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message header to the given type (classname).", "ognl": false, "suffix": "}" },
- "headers": { "index": 42, "kind": "function", "displayName": "Headers", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns all the message headers in a Map", "ognl": false, "suffix": "}" },
- "hostName": { "index": 43, "kind": "function", "displayName": "Host Name", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the local hostname (may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
- "id": { "index": 44, "kind": "function", "displayName": "Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message id", "ognl": false, "suffix": "}" },
- "iif(predicate,trueExp,falseExp)": { "index": 45, "kind": "function", "displayName": "If Then Else", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates the predicate and returns the value of trueExp or falseExp. This function is similar to the ternary operator in Java.", "ognl": false, "suffix": "}" },
- "isAlpha(exp)": { "index": 46, "kind": "function", "displayName": "Is Alphabetic Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is alphabetic value (A..Z). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
- "isAlphaNumeric(exp)": { "index": 47, "kind": "function", "displayName": "Is Alphabetic-Numeric Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is alphanumeric value (A..Z0-9). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
- "isEmpty(exp)": { "index": 48, "kind": "function", "displayName": "Is Empty", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is null or empty (list\/map types are tested if they have 0 elements).", "ognl": false, "suffix": "}" },
- "isNumeric(exp)": { "index": 49, "kind": "function", "displayName": "Is Numeric Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is numeric value (0..9). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
- "jq(input,exp)": { "index": 50, "kind": "function", "displayName": "JQ", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with JSon data, then this allows using the JQ language, for example, to extract data from the message body (in JSon format). This requires having camel-jq JAR on the classpath. For input (optional), you can [...]
- "jsonpath(input,exp)": { "index": 51, "kind": "function", "displayName": "JSonPath", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with JSon data, then this allows using the JSonPath language, for example, to extract data from the message body (in JSon format). This requires having camel-jsonpath JAR on the classpath. For i [...]
- "join(separator,prefix,exp)": { "index": 52, "kind": "function", "displayName": "Join", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The join function iterates the message body\/expression and joins the data into a string. The separator is by default a comma. The prefix is optional. The join uses the message body as source by default. [...]
- "length(exp)": { "index": 53, "kind": "function", "displayName": "Length", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The payload length (number of bytes) of the message body (or expression).", "ognl": false, "suffix": "}" },
- "list(val...)": { "index": 54, "kind": "function", "displayName": "Create List of values", "group": "function", "label": "function", "required": false, "javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list function creates an ArrayList with the given set of values.", "ognl": false, "suffix": "}" },
- "lowercase(exp)": { "index": 55, "kind": "function", "displayName": "Lowercase", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Lowercases the message body (or expression)", "ognl": false, "suffix": "}" },
- "mandatoryBodyAs(type)": { "index": 56, "kind": "function", "displayName": "Mandatory Body As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body to the given type (classname). If the body is null then the function will fail with an exception", "ognl": true, "suffix": "}" },
- "map(key1,value1,...)": { "index": 57, "kind": "function", "displayName": "Create Map of pairs", "group": "function", "label": "function", "required": false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map function creates a LinkedHashMap with the given set of pairs.", "ognl": false, "suffix": "}" },
- "max(val...)": { "index": 58, "kind": "function", "displayName": "Maximum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the maximum number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
- "messageAs(type)": { "index": 59, "kind": "function", "displayName": "Message As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message to the given type (classname).", "ognl": true, "suffix": "}" },
- "messageHistory(boolean)": { "index": 60, "kind": "function", "displayName": "Print Message History", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message history of the current exchange (how it has been routed). This is similar to the route stack-trace message history the error handler logs in case of an unhandled exception. The b [...]
- "messageTimestamp": { "index": 61, "kind": "function", "displayName": "Message Timestamp", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message timestamp (millis since epoc) that this message originates from. Some systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel received. This method returns the timestam [...]
- "min(val...)": { "index": 62, "kind": "function", "displayName": "Minimum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the minimum number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
- "newEmpty(type)": { "index": 63, "kind": "function", "displayName": "Create Empty Object", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Creates a new empty object (decided by type). Use `string` to create an empty String. Use `list` to create an empty `java.util.ArrayList`. Use `map` to create an empty `java.util.LinkedHashMap`. Use `s [...]
- "normalizeWhitespace(exp)": { "index": 64, "kind": "function", "displayName": "Normalize Whitespace", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Normalizes the whitespace in the message body (or expression) by cleaning up excess whitespaces.", "ognl": false, "suffix": "}" },
- "not": { "index": 65, "kind": "function", "displayName": "Not", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates the predicate and returns the opposite.", "ognl": false, "suffix": "}" },
- "null": { "index": 66, "kind": "function", "displayName": "Null", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Represents a null value", "ognl": false, "suffix": "}" },
- "originalBody": { "index": 67, "kind": "function", "displayName": "Original Body", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The original incoming body (only available if allowUseOriginalMessage=true).", "ognl": false, "suffix": "}" },
- "pad(exp,width,separator)": { "index": 68, "kind": "function", "displayName": "Pad String", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Pads the expression with extra padding if necessary, according the the total width. The separator is by default a space. If the width is negative then padding to the right, otherwise to the left.", "o [...]
- "pretty(exp)": { "index": 69, "kind": "function", "displayName": "Pretty Print", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the expression to a String, and attempts to pretty print if JSon or XML, otherwise the expression is returned as the String value.", "ognl": false, "suffix": "}" },
- "prettyBody": { "index": 70, "kind": "function", "displayName": "Pretty Body", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the body to a String, and attempts to pretty print if JSon or XML; otherwise the body is returned as the String value.", "ognl": false, "suffix": "}" },
- "properties:key:default": { "index": 71, "kind": "function", "displayName": "Property Placeholder", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Lookup a property placeholder with the given key. If the key does not exist nor has a value, then an optional default value can be specified.", "ognl": false, "suffix": "}" },
- "propertiesExist:key": { "index": 72, "kind": "function", "displayName": "Property Placeholder Exists", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Checks whether a property placeholder with the given key exists or not. The result can be negated by prefixing the key with !", "ognl": false, "suffix": "}" },
- "random(min,max)": { "index": 73, "kind": "function", "displayName": "Random", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a random number between min and max (exclusive)", "ognl": false, "suffix": "}" },
- "ref:name": { "index": 74, "kind": "function", "displayName": "Bean By Id", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To look up a bean from the Registry with the given name.", "ognl": false, "suffix": "}" },
- "replace(from,to,exp)": { "index": 75, "kind": "function", "displayName": "Replace String Values", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Replace all the string values in the message body\/expression. To make it easier to replace single and double quotes, then you can use XML escaped values `\\"` as double quote, `\\'` [...]
- "reverse(val...)": { "index": 76, "kind": "function", "displayName": "Reverse Values", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a list of all the values, but in reverse order", "ognl": false, "suffix": "}" },
- "routeGroup": { "index": 77, "kind": "function", "displayName": "Route Group", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The route group of the current route the Exchange is being routed. Not all routes have a group assigned, so this may be null.", "ognl": false, "suffix": "}" },
- "routeId": { "index": 78, "kind": "function", "displayName": "Route Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The route id of the current route the Exchange is being routed", "ognl": false, "suffix": "}" },
- "setHeader(name,type,exp)": { "index": 79, "kind": "function", "displayName": "Set Header", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets a message header with the given expression (optional converting to the given type)", "ognl": false, "suffix": "}" },
- "setVariable(name,type,exp)": { "index": 80, "kind": "function", "displayName": "Set Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets a variable with the given expression (optional converting to the given type)", "ognl": false, "suffix": "}" },
- "shuffle(val...)": { "index": 81, "kind": "function", "displayName": "Shuffle Values", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a list of all the values shuffled in random order", "ognl": false, "suffix": "}" },
- "size(exp)": { "index": 82, "kind": "function", "displayName": "Size", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the number of elements in collection or array based payloads. If the value is null then 0 is returned, otherwise 1.", "ognl": false, "suffix": "}" },
- "skip(num)": { "index": 83, "kind": "function", "displayName": "Skip First Items from the Message Body", "group": "function", "label": "function", "required": false, "javaType": "java.util.Iterator", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The skip function iterates the message body and skips the first number of items. This can be used with the Splitter EIP to split a message body and skip the first N number of [...]
- "split(exp,separator)": { "index": 84, "kind": "function", "displayName": "Split String Values", "group": "function", "label": "function", "required": false, "javaType": "String[]", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Splits the message body\/expression as a String value using the separator into a String array", "ognl": false, "suffix": "}" },
- "stepId": { "index": 85, "kind": "function", "displayName": "Step Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the id of the current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
- "substring(head,tail)": { "index": 86, "kind": "function", "displayName": "Substring", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression. If only one positive number, then the returned string is clipped from the beginning. If only one negative number, then the returned string is clipped fr [...]
- "substringAfter(exp,before)": { "index": 87, "kind": "function", "displayName": "Substring After", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that comes after. Returns null if nothing comes after.", "ognl": false, "suffix": "}" },
- "substringBefore(exp,before)": { "index": 88, "kind": "function", "displayName": "Substring Before", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that comes before. Returns null if nothing comes before.", "ognl": false, "suffix": "}" },
- "substringBetween(exp,after,before)": { "index": 89, "kind": "function", "displayName": "Substring Between", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that are between after and before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
- "sum(val...)": { "index": 90, "kind": "function", "displayName": "Calculate Sum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sums together all the values as integral numbers. This function can also be used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
- "sys.name": { "index": 91, "kind": "function", "displayName": "JVM System Property", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JVM system property with the given name", "ognl": false, "suffix": "}" },
- "threadId": { "index": 92, "kind": "function", "displayName": "Thread Id", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the id of the current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "threadName": { "index": 93, "kind": "function", "displayName": "Thread Name", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the name of the current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
- "throwException(type,msg)": { "index": 94, "kind": "function", "displayName": "Throw Exception", "group": "function", "label": "function", "required": false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deliberately throws an error. Uses IllegalArgumentException by default if no type is specified (use fully qualified classname).", "ognl": false, "suffix": "}" },
- "trim(exp)": { "index": 95, "kind": "function", "displayName": "Trim", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The trim function trims the message body (or expression) by removing all leading and trailing white spaces.", "ognl": false, "suffix": "}" },
- "type:name.field": { "index": 96, "kind": "function", "displayName": "Java Field Value", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To refer to a type or field by its classname. To refer to a field, you can append .FIELD_NAME. For example, you can refer to the constant field from Exchange as: `org.apache.camel.Exchange.FILE_NAME`", " [...]
- "kindOfType(exp)": { "index": 97, "kind": "function", "displayName": "Kind of Type", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "What kind of type is the value (null,number,string,boolean,array,object)", "ognl": false, "suffix": "}" },
- "uppercase(exp)": { "index": 98, "kind": "function", "displayName": "Uppercase", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Uppercases the message body (or expression)", "ognl": false, "suffix": "}" },
- "uuid(type)": { "index": 99, "kind": "function", "displayName": "Generate UUID", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a UUID using the Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and `simple` as the type. If no type is given, the default is used. It is also possible to use a custom `UuidG [...]
- "variable.name": { "index": 100, "kind": "function", "displayName": "Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The variable with the given name", "ognl": true, "suffix": "}" },
- "variableAs(key,type)": { "index": 101, "kind": "function", "displayName": "Variable As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the variable to the given type (classname).", "ognl": false, "suffix": "}" },
- "variables": { "index": 102, "kind": "function", "displayName": "Variables", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns all the variables from the current Exchange in a Map", "ognl": false, "suffix": "}" },
- "xpath(input,exp)": { "index": 103, "kind": "function", "displayName": "XPath", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with XML data, then this allows using the XPath language, for example, to extract data from the message body (in XML format). This requires having camel-xpath JAR on the classpath. For input (optiona [...]
+ "attachment.name": { "index": 1, "kind": "function", "displayName": "Attachment", "group": "function", "label": "function", "required": false, "javaType": "jakarta.activation.DataHandler", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The DataHandler for the given attachment.", "ognl": true, "suffix": "}" },
+ "attachments": { "index": 2, "kind": "function", "displayName": "Attachments", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "All the attachments as a Map<String,DataHandler.", "ognl": false, "suffix": "}" },
+ "attachmentsContent.name": { "index": 3, "kind": "function", "displayName": "Attachments Content", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment", "ognl": false, "suffix": "}" },
+ "attachmentsContentAs(name,type)": { "index": 4, "kind": "function", "displayName": "Attachments Content As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment, converted to the given type.", "ognl": false, "suffix": "}" },
+ "attachmentsContentAsText.name": { "index": 5, "kind": "function", "displayName": "Attachments Content As Text", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content of the attachment as text (ie String).", "ognl": false, "suffix": "}" },
+ "attachmentsHeader(key,name)": { "index": 6, "kind": "function", "displayName": "Attachments Header", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The attachment header with the given name.", "ognl": false, "suffix": "}" },
+ "attachmentsHeaderAs(key,name,type)": { "index": 7, "kind": "function", "displayName": "Attachments Header As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The attachment header with the given name, converted to the given type.", "ognl": false, "suffix": "}" },
+ "attachmentsSize": { "index": 8, "kind": "function", "displayName": "Attachments Size", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of attachments. Is 0 if there are no attachments.", "ognl": false, "suffix": "}" },
+ "average(val...)": { "index": 9, "kind": "function", "displayName": "Average Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the average number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+ "base64Decode(exp)": { "index": 10, "kind": "function", "displayName": "Base64 Decode", "group": "function", "label": "function", "required": false, "javaType": "byte[]", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Base64 decodes the message body (or expression)", "ognl": false, "suffix": "}" },
+ "base64Encode(exp)": { "index": 11, "kind": "function", "displayName": "Base64 Encode", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Base64 encodes the message body (or expression)", "ognl": false, "suffix": "}" },
+ "bean(name.method)": { "index": 12, "kind": "function", "displayName": "Call Java Bean", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Calls a Java bean. The name of the bean can also refer to a class name using type prefix as follows `bean:type:com.foo.MyClass`. If no method name is given then Camel will automatic attempt to find the b [...]
+ "body": { "index": 13, "kind": "function", "displayName": "Body", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message body", "ognl": true, "suffix": "}" },
+ "bodyAs(type)": { "index": 14, "kind": "function", "displayName": "Body As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body to the given type (classname).", "ognl": true, "suffix": "}" },
+ "bodyOneLine": { "index": 15, "kind": "function", "displayName": "Body One Line", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the body to a String and removes all line-breaks, so the string is in one line.", "ognl": false, "suffix": "}" },
+ "bodyType": { "index": 16, "kind": "function", "displayName": "Body Type", "group": "function", "label": "function", "required": false, "javaType": "Class", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message body class type", "ognl": false, "suffix": "}" },
+ "camelContext": { "index": 17, "kind": "function", "displayName": "Camel Context", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Camel Context", "ognl": true, "suffix": "}" },
+ "camelId": { "index": 18, "kind": "function", "displayName": "Camel Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the CamelContext", "ognl": false, "suffix": "}" },
+ "capitalize(exp)": { "index": 19, "kind": "function", "displayName": "Capitalize String Values", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Capitalizes the message body\/expression as a String value (upper case every words)", "ognl": false, "suffix": "}" },
+ "ceil(exp)": { "index": 20, "kind": "function", "displayName": "Ceil Number", "group": "function", "label": "function", "required": false, "javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to a floating number and return the ceil value (rounded up to nearest integer).", "ognl": false, "suffix": "}" },
+ "collate(num)": { "index": 21, "kind": "function", "displayName": "Group Message Body into Sub Lists", "group": "function", "label": "function", "required": false, "javaType": "java.util.Iterator", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The collate function iterates the message body and groups the data into sub lists of specified size. This can be used with the Splitter EIP to split a message body and group\/ba [...]
+ "concat(exp,exp,separator)": { "index": 22, "kind": "function", "displayName": "Concat", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Performs a string concat using two expressions (message body as default) with optional separator", "ognl": false, "suffix": "}" },
+ "convertTo(exp,type)": { "index": 23, "kind": "function", "displayName": "Convert To", "group": "function", "label": "function", "required": false, "javaType": "", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to the specified type.", "ognl": true, "suffix": "}" },
+ "date(command)": { "index": 24, "kind": "function", "displayName": "Parse Date", "group": "function", "label": "function", "required": false, "javaType": "java.util.Date", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates to a java.util.Date object. Supported commands are: `now` for current timestamp, `millis` for current timestamp in millis (unix epoch), `exchangeCreated` for the timestamp when the current exch [...]
+ "date-with-timezone(command:timezone:pattern)": { "index": 25, "kind": "function", "displayName": "Date Formatter", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Formats the date to a String using the given date pattern, and with support for timezone. Supported commands are: `now` for current timestamp, `exchangeCreated` for the timesta [...]
+ "distinct(val...)": { "index": 26, "kind": "function", "displayName": "Distinct Values", "group": "function", "label": "function", "required": false, "javaType": "Set", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a set of all the values with duplicates removed", "ognl": false, "suffix": "}" },
+ "empty(type)": { "index": 27, "kind": "function", "displayName": "Create Empty Object", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": true, "deprecationNote": "", "autowired": false, "secret": false, "description": "Creates a new empty object (decided by type). Use `string` to create an empty String. Use `list` to create an empty `java.util.ArrayList`. Use `map` to create an empty `java.util.LinkedHashMap`. Use `set` [...]
+ "env.name": { "index": 28, "kind": "function", "displayName": "OS Environment Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The OS environment variable with the given name", "ognl": false, "suffix": "}" },
+ "exchange": { "index": 29, "kind": "function", "displayName": "Exchange", "group": "function", "label": "function", "required": false, "javaType": "org.apache.camel.Exchange", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The current exchange", "ognl": true, "suffix": "}" },
+ "exchangeId": { "index": 30, "kind": "function", "displayName": "Exchange Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exchange id", "ognl": false, "suffix": "}" },
+ "exchangeProperty.name": { "index": 31, "kind": "function", "displayName": "Exchange Property", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exchange property with the given name", "ognl": true, "suffix": "}" },
+ "exception": { "index": 32, "kind": "function", "displayName": "Exception", "group": "function", "label": "function", "required": false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception object on the exchange (also from caught exceptions), is null if no exception present.", "ognl": true, "suffix": "}" },
+ "exception.message": { "index": 33, "kind": "function", "displayName": "Exception Message", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception message (also from caught exceptions), is null if no exception present.", "ognl": false, "suffix": "}" },
+ "exception.stackTrace": { "index": 34, "kind": "function", "displayName": "Exception Stacktrace", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exception stacktrace (also from caught exceptions), is null if no exception present.", "ognl": false, "suffix": "}" },
+ "forEach(exp,fun)": { "index": 35, "kind": "function", "displayName": "For Each call Function", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a List containing the values returned by the function when applied to each value from the input expression", "ognl": false, "suffix": "}" },
+ "floor(exp)": { "index": 36, "kind": "function", "displayName": "Floor Number", "group": "function", "label": "function", "required": false, "javaType": "Integer", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body (or expression) to a floating number and return the floor value (rounded down to nearest integer).", "ognl": false, "suffix": "}" },
+ "fromRouteId": { "index": 37, "kind": "function", "displayName": "From Route Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The original route id where this exchange was created.", "ognl": false, "suffix": "}" },
+ "hash(exp,algorithm)": { "index": 38, "kind": "function", "displayName": "Compute Hash Value", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a hashed value (string in hex decimal) of the message body\/expression using JDK MessageDigest. The algorithm can be SHA-256 (default) or SHA3-256.", "ognl": false, "suffix": "}" },
+ "header.name": { "index": 39, "kind": "function", "displayName": "Header", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message header with the given name", "ognl": true, "suffix": "}" },
+ "headerAs(key,type)": { "index": 40, "kind": "function", "displayName": "Header As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message header to the given type (classname).", "ognl": false, "suffix": "}" },
+ "headers": { "index": 41, "kind": "function", "displayName": "Headers", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns all the message headers in a Map", "ognl": false, "suffix": "}" },
+ "hostName": { "index": 42, "kind": "function", "displayName": "Host Name", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the local hostname (may be empty if not possible to resolve).", "ognl": false, "suffix": "}" },
+ "id": { "index": 43, "kind": "function", "displayName": "Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message id", "ognl": false, "suffix": "}" },
+ "iif(predicate,trueExp,falseExp)": { "index": 44, "kind": "function", "displayName": "If Then Else", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates the predicate and returns the value of trueExp or falseExp. This function is similar to the ternary operator in Java.", "ognl": false, "suffix": "}" },
+ "isAlpha(exp)": { "index": 45, "kind": "function", "displayName": "Is Alphabetic Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is alphabetic value (A..Z). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isAlphaNumeric(exp)": { "index": 46, "kind": "function", "displayName": "Is Alphabetic-Numeric Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is alphanumeric value (A..Z0-9). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
+ "isEmpty(exp)": { "index": 47, "kind": "function", "displayName": "Is Empty", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is null or empty (list\/map types are tested if they have 0 elements).", "ognl": false, "suffix": "}" },
+ "isNumeric(exp)": { "index": 48, "kind": "function", "displayName": "Is Numeric Value", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the message body (or expression) is numeric value (0..9). For more advanced checks use the `regex` operator.", "ognl": false, "suffix": "}" },
+ "jq(input,exp)": { "index": 49, "kind": "function", "displayName": "JQ", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with JSon data, then this allows using the JQ language, for example, to extract data from the message body (in JSon format). This requires having camel-jq JAR on the classpath. For input (optional), you can [...]
+ "jsonpath(input,exp)": { "index": 50, "kind": "function", "displayName": "JSonPath", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with JSon data, then this allows using the JSonPath language, for example, to extract data from the message body (in JSon format). This requires having camel-jsonpath JAR on the classpath. For i [...]
+ "join(separator,prefix,exp)": { "index": 51, "kind": "function", "displayName": "Join", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The join function iterates the message body\/expression and joins the data into a string. The separator is by default a comma. The prefix is optional. The join uses the message body as source by default. [...]
+ "length(exp)": { "index": 52, "kind": "function", "displayName": "Length", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The payload length (number of bytes) of the message body (or expression).", "ognl": false, "suffix": "}" },
+ "list(val...)": { "index": 53, "kind": "function", "displayName": "Create List of values", "group": "function", "label": "function", "required": false, "javaType": "java.util.ArrayList", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The list function creates an ArrayList with the given set of values.", "ognl": false, "suffix": "}" },
+ "lowercase(exp)": { "index": 54, "kind": "function", "displayName": "Lowercase", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Lowercases the message body (or expression)", "ognl": false, "suffix": "}" },
+ "mandatoryBodyAs(type)": { "index": 55, "kind": "function", "displayName": "Mandatory Body As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message body to the given type (classname). If the body is null then the function will fail with an exception", "ognl": true, "suffix": "}" },
+ "map(key1,value1,...)": { "index": 56, "kind": "function", "displayName": "Create Map of pairs", "group": "function", "label": "function", "required": false, "javaType": "java.util.LinkedHashMap", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The map function creates a LinkedHashMap with the given set of pairs.", "ognl": false, "suffix": "}" },
+ "max(val...)": { "index": 57, "kind": "function", "displayName": "Maximum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the maximum number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+ "messageAs(type)": { "index": 58, "kind": "function", "displayName": "Message As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the message to the given type (classname).", "ognl": true, "suffix": "}" },
+ "messageHistory(boolean)": { "index": 59, "kind": "function", "displayName": "Print Message History", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message history of the current exchange (how it has been routed). This is similar to the route stack-trace message history the error handler logs in case of an unhandled exception. The b [...]
+ "messageTimestamp": { "index": 60, "kind": "function", "displayName": "Message Timestamp", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message timestamp (millis since epoc) that this message originates from. Some systems like JMS, Kafka, AWS have a timestamp on the event\/message that Camel received. This method returns the timestam [...]
+ "min(val...)": { "index": 61, "kind": "function", "displayName": "Minimum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the minimum number from all the values (integral numbers only).", "ognl": false, "suffix": "}" },
+ "newEmpty(type)": { "index": 62, "kind": "function", "displayName": "Create Empty Object", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Creates a new empty object (decided by type). Use `string` to create an empty String. Use `list` to create an empty `java.util.ArrayList`. Use `map` to create an empty `java.util.LinkedHashMap`. Use `s [...]
+ "normalizeWhitespace(exp)": { "index": 63, "kind": "function", "displayName": "Normalize Whitespace", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Normalizes the whitespace in the message body (or expression) by cleaning up excess whitespaces.", "ognl": false, "suffix": "}" },
+ "not": { "index": 64, "kind": "function", "displayName": "Not", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Evaluates the predicate and returns the opposite.", "ognl": false, "suffix": "}" },
+ "null": { "index": 65, "kind": "function", "displayName": "Null", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Represents a null value", "ognl": false, "suffix": "}" },
+ "originalBody": { "index": 66, "kind": "function", "displayName": "Original Body", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The original incoming body (only available if allowUseOriginalMessage=true).", "ognl": false, "suffix": "}" },
+ "pad(exp,width,separator)": { "index": 67, "kind": "function", "displayName": "Pad String", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Pads the expression with extra padding if necessary, according the the total width. The separator is by default a space. If the width is negative then padding to the right, otherwise to the left.", "o [...]
+ "pretty(exp)": { "index": 68, "kind": "function", "displayName": "Pretty Print", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the expression to a String, and attempts to pretty print if JSon or XML, otherwise the expression is returned as the String value.", "ognl": false, "suffix": "}" },
+ "prettyBody": { "index": 69, "kind": "function", "displayName": "Pretty Body", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the body to a String, and attempts to pretty print if JSon or XML; otherwise the body is returned as the String value.", "ognl": false, "suffix": "}" },
+ "properties:key:default": { "index": 70, "kind": "function", "displayName": "Property Placeholder", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Lookup a property placeholder with the given key. If the key does not exist nor has a value, then an optional default value can be specified.", "ognl": false, "suffix": "}" },
+ "propertiesExist:key": { "index": 71, "kind": "function", "displayName": "Property Placeholder Exists", "group": "function", "label": "function", "required": false, "javaType": "boolean", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Checks whether a property placeholder with the given key exists or not. The result can be negated by prefixing the key with !", "ognl": false, "suffix": "}" },
+ "random(min,max)": { "index": 72, "kind": "function", "displayName": "Random", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a random number between min and max (exclusive)", "ognl": false, "suffix": "}" },
+ "ref:name": { "index": 73, "kind": "function", "displayName": "Bean By Id", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To look up a bean from the Registry with the given name.", "ognl": false, "suffix": "}" },
+ "replace(from,to,exp)": { "index": 74, "kind": "function", "displayName": "Replace String Values", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Replace all the string values in the message body\/expression. To make it easier to replace single and double quotes, then you can use XML escaped values `\\"` as double quote, `\\'` [...]
+ "reverse(val...)": { "index": 75, "kind": "function", "displayName": "Reverse Values", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a list of all the values, but in reverse order", "ognl": false, "suffix": "}" },
+ "routeGroup": { "index": 76, "kind": "function", "displayName": "Route Group", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The route group of the current route the Exchange is being routed. Not all routes have a group assigned, so this may be null.", "ognl": false, "suffix": "}" },
+ "routeId": { "index": 77, "kind": "function", "displayName": "Route Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The route id of the current route the Exchange is being routed", "ognl": false, "suffix": "}" },
+ "setHeader(name,type,exp)": { "index": 78, "kind": "function", "displayName": "Set Header", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets a message header with the given expression (optional converting to the given type)", "ognl": false, "suffix": "}" },
+ "setVariable(name,type,exp)": { "index": 79, "kind": "function", "displayName": "Set Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets a variable with the given expression (optional converting to the given type)", "ognl": false, "suffix": "}" },
+ "shuffle(val...)": { "index": 80, "kind": "function", "displayName": "Shuffle Values", "group": "function", "label": "function", "required": false, "javaType": "List", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a list of all the values shuffled in random order", "ognl": false, "suffix": "}" },
+ "size(exp)": { "index": 81, "kind": "function", "displayName": "Size", "group": "function", "label": "function", "required": false, "javaType": "int", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the number of elements in collection or array based payloads. If the value is null then 0 is returned, otherwise 1.", "ognl": false, "suffix": "}" },
+ "skip(num)": { "index": 82, "kind": "function", "displayName": "Skip First Items from the Message Body", "group": "function", "label": "function", "required": false, "javaType": "java.util.Iterator", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The skip function iterates the message body and skips the first number of items. This can be used with the Splitter EIP to split a message body and skip the first N number of [...]
+ "split(exp,separator)": { "index": 83, "kind": "function", "displayName": "Split String Values", "group": "function", "label": "function", "required": false, "javaType": "String[]", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Splits the message body\/expression as a String value using the separator into a String array", "ognl": false, "suffix": "}" },
+ "stepId": { "index": 84, "kind": "function", "displayName": "Step Id", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the id of the current step the Exchange is being routed.", "ognl": false, "suffix": "}" },
+ "substring(head,tail)": { "index": 85, "kind": "function", "displayName": "Substring", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression. If only one positive number, then the returned string is clipped from the beginning. If only one negative number, then the returned string is clipped fr [...]
+ "substringAfter(exp,before)": { "index": 86, "kind": "function", "displayName": "Substring After", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that comes after. Returns null if nothing comes after.", "ognl": false, "suffix": "}" },
+ "substringBefore(exp,before)": { "index": 87, "kind": "function", "displayName": "Substring Before", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that comes before. Returns null if nothing comes before.", "ognl": false, "suffix": "}" },
+ "substringBetween(exp,after,before)": { "index": 88, "kind": "function", "displayName": "Substring Between", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a substring of the message body\/expression that are between after and before. Returns null if nothing comes between.", "ognl": false, "suffix": "}" },
+ "sum(val...)": { "index": 89, "kind": "function", "displayName": "Calculate Sum Number", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sums together all the values as integral numbers. This function can also be used to subtract by using negative numbers.", "ognl": false, "suffix": "}" },
+ "sys.name": { "index": 90, "kind": "function", "displayName": "JVM System Property", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JVM system property with the given name", "ognl": false, "suffix": "}" },
+ "threadId": { "index": 91, "kind": "function", "displayName": "Thread Id", "group": "function", "label": "function", "required": false, "javaType": "long", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the id of the current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "threadName": { "index": 92, "kind": "function", "displayName": "Thread Name", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns the name of the current thread. Can be used for logging.", "ognl": false, "suffix": "}" },
+ "throwException(type,msg)": { "index": 93, "kind": "function", "displayName": "Throw Exception", "group": "function", "label": "function", "required": false, "javaType": "java.lang.Exception", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deliberately throws an error. Uses IllegalArgumentException by default if no type is specified (use fully qualified classname).", "ognl": false, "suffix": "}" },
+ "trim(exp)": { "index": 94, "kind": "function", "displayName": "Trim", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The trim function trims the message body (or expression) by removing all leading and trailing white spaces.", "ognl": false, "suffix": "}" },
+ "type:name.field": { "index": 95, "kind": "function", "displayName": "Java Field Value", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To refer to a type or field by its classname. To refer to a field, you can append .FIELD_NAME. For example, you can refer to the constant field from Exchange as: `org.apache.camel.Exchange.FILE_NAME`", " [...]
+ "kindOfType(exp)": { "index": 96, "kind": "function", "displayName": "Kind of Type", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "What kind of type is the value (null,number,string,boolean,array,object)", "ognl": false, "suffix": "}" },
+ "uppercase(exp)": { "index": 97, "kind": "function", "displayName": "Uppercase", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Uppercases the message body (or expression)", "ognl": false, "suffix": "}" },
+ "uuid(type)": { "index": 98, "kind": "function", "displayName": "Generate UUID", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns a UUID using the Camel `UuidGenerator`. You can choose between `default`, `classic`, `short` and `simple` as the type. If no type is given, the default is used. It is also possible to use a custom `UuidG [...]
+ "variable.name": { "index": 99, "kind": "function", "displayName": "Variable", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The variable with the given name", "ognl": true, "suffix": "}" },
+ "variableAs(key,type)": { "index": 100, "kind": "function", "displayName": "Variable As", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the variable to the given type (classname).", "ognl": false, "suffix": "}" },
+ "variables": { "index": 101, "kind": "function", "displayName": "Variables", "group": "function", "label": "function", "required": false, "javaType": "java.util.Map", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Returns all the variables from the current Exchange in a Map", "ognl": false, "suffix": "}" },
+ "xpath(input,exp)": { "index": 102, "kind": "function", "displayName": "XPath", "group": "function", "label": "function", "required": false, "javaType": "Object", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "When working with XML data, then this allows using the XPath language, for example, to extract data from the message body (in XML format). This requires having camel-xpath JAR on the classpath. For input (optiona [...]
}
}
diff --git a/components-starter/camel-aws2-polly-starter/pom.xml b/components-starter/camel-aws2-polly-starter/pom.xml
new file mode 100644
index 00000000000..c78a551d705
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>components-starter</artifactId>
+ <version>4.18.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>camel-aws2-polly-starter</artifactId>
+ <packaging>jar</packaging>
+ <name>Camel SB Starters :: aws2-polly</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter</artifactId>
+ <version>${spring-boot-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-aws2-polly</artifactId>
+ <version>${camel-version}</version>
+ <!--START OF GENERATED CODE-->
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ <!--END OF GENERATED CODE-->
+ </dependency>
+ <!--START OF GENERATED CODE-->
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-core-starter</artifactId>
+ </dependency>
+ <!--END OF GENERATED CODE-->
+ </dependencies>
+</project>
diff --git a/components-starter/camel-aws2-polly-starter/src/main/docs/aws2-polly.json b/components-starter/camel-aws2-polly-starter/src/main/docs/aws2-polly.json
new file mode 100644
index 00000000000..8cd89b03f69
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/docs/aws2-polly.json
@@ -0,0 +1,220 @@
+{
+ "groups": [
+ {
+ "name": "camel.component.aws2-polly",
+ "type": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.customizer",
+ "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "sourceMethod": "getCustomizer()"
+ }
+ ],
+ "properties": [
+ {
+ "name": "camel.component.aws2-polly.access-key",
+ "type": "java.lang.String",
+ "description": "Amazon AWS Access Key",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.autowired-enabled",
+ "type": "java.lang.Boolean",
+ "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 type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.aws2-polly.configuration",
+ "type": "org.apache.camel.component.aws2.polly.Polly2Configuration",
+ "description": "Component configuration. The option is a org.apache.camel.component.aws2.polly.Polly2Configuration type.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.customizer.enabled",
+ "type": "java.lang.Boolean",
+ "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+ },
+ {
+ "name": "camel.component.aws2-polly.enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether to enable auto configuration of the aws2-polly component. This is enabled by default.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.engine",
+ "type": "software.amazon.awssdk.services.polly.model.Engine",
+ "description": "The engine to use for synthesis (standard, neural, long-form, generative)",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.health-check-consumer-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Used for enabling or disabling all consumer based health checks from this component",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.aws2-polly.health-check-producer-enabled",
+ "type": "java.lang.Boolean",
+ "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 checks globally by setting camel.health.producersEnabled=true.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.component.aws2-polly.language-code",
+ "type": "java.lang.String",
+ "description": "The language code for the synthesis",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.lazy-start-producer",
+ "type": "java.lang.Boolean",
+ "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 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 [...]
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.lexicon-names",
+ "type": "java.lang.String",
+ "description": "Lexicon names to apply during synthesis",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.operation",
+ "type": "org.apache.camel.component.aws2.polly.Polly2Operations",
+ "description": "The operation to perform",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": "synthesizespeech"
+ },
+ {
+ "name": "camel.component.aws2-polly.output-format",
+ "type": "software.amazon.awssdk.services.polly.model.OutputFormat",
+ "description": "The audio output format",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": "mp3"
+ },
+ {
+ "name": "camel.component.aws2-polly.override-endpoint",
+ "type": "java.lang.Boolean",
+ "description": "Set the need for overriding the endpoint. This option needs to be used in combination with the uriEndpointOverride option",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.pojo-request",
+ "type": "java.lang.Boolean",
+ "description": "If we want to use a POJO request as body or not",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.polly-client",
+ "type": "software.amazon.awssdk.services.polly.PollyClient",
+ "description": "To use an existing configured AWS Polly client. The option is a software.amazon.awssdk.services.polly.PollyClient type.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.profile-credentials-name",
+ "type": "java.lang.String",
+ "description": "If using a profile credentials provider, this parameter will set the profile name",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.proxy-host",
+ "type": "java.lang.String",
+ "description": "To define a proxy host when instantiating the Polly client",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.proxy-port",
+ "type": "java.lang.Integer",
+ "description": "To define a proxy port when instantiating the Polly client",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.proxy-protocol",
+ "type": "software.amazon.awssdk.core.Protocol",
+ "description": "To define a proxy protocol when instantiating the Polly client",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": "https"
+ },
+ {
+ "name": "camel.component.aws2-polly.region",
+ "type": "java.lang.String",
+ "description": "The region in which the Polly client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example, ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.sample-rate",
+ "type": "java.lang.String",
+ "description": "The sample rate in Hz for the audio output",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.secret-key",
+ "type": "java.lang.String",
+ "description": "Amazon AWS Secret Key",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.session-token",
+ "type": "java.lang.String",
+ "description": "Amazon AWS Session Token used when the user needs to assume an IAM role",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.text-type",
+ "type": "software.amazon.awssdk.services.polly.model.TextType",
+ "description": "The type of text input (text or ssml)",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": "text"
+ },
+ {
+ "name": "camel.component.aws2-polly.trust-all-certificates",
+ "type": "java.lang.Boolean",
+ "description": "If we want to trust all certificates in case of overriding the endpoint",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.uri-endpoint-override",
+ "type": "java.lang.String",
+ "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ },
+ {
+ "name": "camel.component.aws2-polly.use-default-credentials-provider",
+ "type": "java.lang.Boolean",
+ "description": "Set whether the Polly client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.use-profile-credentials-provider",
+ "type": "java.lang.Boolean",
+ "description": "Set whether the Polly client should expect to load credentials through a profile credentials provider.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.use-session-credentials",
+ "type": "java.lang.Boolean",
+ "description": "Set whether the Polly client should expect to use Session Credentials. This is useful in a situation in which the user needs to assume an IAM role for doing operations in Polly.",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.component.aws2-polly.voice-id",
+ "type": "software.amazon.awssdk.services.polly.model.VoiceId",
+ "description": "The voice ID to use for synthesis",
+ "sourceType": "org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConfiguration"
+ }
+ ],
+ "hints": [],
+ "ignored": {
+ "properties": []
+ }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentAutoConfiguration.java b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentAutoConfiguration.java
new file mode 100644
index 00000000000..016e7dafa42
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentAutoConfiguration.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.polly.springboot;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+import org.apache.camel.component.aws2.polly.Polly2Component;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration(proxyBeanMethods = false)
+@Conditional(ConditionalOnCamelContextAndAutoConfigurationBeans.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,Polly2ComponentConfiguration.class})
+@ConditionalOnHierarchicalProperties({"camel.component", "camel.component.aws2-polly"})
+@AutoConfigureAfter({CamelAutoConfiguration.class, Polly2ComponentConverter.class})
+public class Polly2ComponentAutoConfiguration {
+
+ @Autowired
+ private ApplicationContext applicationContext;
+ private final CamelContext camelContext;
+ @Autowired
+ private Polly2ComponentConfiguration configuration;
+
+ public Polly2ComponentAutoConfiguration(
+ org.apache.camel.CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
+ @Lazy
+ @Bean
+ public ComponentCustomizer configurePolly2Component() {
+ return new ComponentCustomizer() {
+ @Override
+ public void configure(String name, Component target) {
+ CamelPropertiesHelper.copyProperties(camelContext, configuration, target);
+ }
+ @Override
+ public boolean isEnabled(String name, Component target) {
+ return HierarchicalPropertiesEvaluator.evaluate(
+ applicationContext,
+ "camel.component.customizer",
+ "camel.component.aws2-polly.customizer")
+ && target instanceof Polly2Component;
+ }
+ };
+ }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConfiguration.java b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConfiguration.java
new file mode 100644
index 00000000000..a6eeef9ab69
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConfiguration.java
@@ -0,0 +1,425 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.polly.springboot;
+
+import org.apache.camel.component.aws2.polly.Polly2Component;
+import org.apache.camel.component.aws2.polly.Polly2Configuration;
+import org.apache.camel.component.aws2.polly.Polly2Operations;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.services.polly.PollyClient;
+import software.amazon.awssdk.services.polly.model.Engine;
+import software.amazon.awssdk.services.polly.model.OutputFormat;
+import software.amazon.awssdk.services.polly.model.TextType;
+import software.amazon.awssdk.services.polly.model.VoiceId;
+
+/**
+ * Synthesize speech using AWS Polly and AWS SDK version 2.x.
+ *
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.aws2-polly")
+public class Polly2ComponentConfiguration
+ extends
+ ComponentConfigurationPropertiesCommon {
+
+ /**
+ * Whether to enable auto configuration of the aws2-polly component. This is
+ * enabled by default.
+ */
+ private Boolean enabled;
+ /**
+ * Component configuration. The option is a
+ * org.apache.camel.component.aws2.polly.Polly2Configuration type.
+ */
+ private Polly2Configuration configuration;
+ /**
+ * The engine to use for synthesis (standard, neural, long-form, generative)
+ */
+ private Engine engine;
+ /**
+ * The language code for the synthesis
+ */
+ private String languageCode;
+ /**
+ * 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.
+ */
+ private Boolean lazyStartProducer = false;
+ /**
+ * Lexicon names to apply during synthesis
+ */
+ private String lexiconNames;
+ /**
+ * The operation to perform
+ */
+ private Polly2Operations operation = Polly2Operations.synthesizeSpeech;
+ /**
+ * The audio output format
+ */
+ private OutputFormat outputFormat = OutputFormat.MP3;
+ /**
+ * Set the need for overriding the endpoint. This option needs to be used in
+ * combination with the uriEndpointOverride option
+ */
+ private Boolean overrideEndpoint = false;
+ /**
+ * If we want to use a POJO request as body or not
+ */
+ private Boolean pojoRequest = false;
+ /**
+ * The region in which the Polly client needs to work. When using this
+ * parameter, the configuration will expect the lowercase name of the region
+ * (for example, ap-east-1) You'll need to use the name
+ * Region.EU_WEST_1.id()
+ */
+ private String region;
+ /**
+ * The sample rate in Hz for the audio output
+ */
+ private String sampleRate;
+ /**
+ * The type of text input (text or ssml)
+ */
+ private TextType textType = TextType.TEXT;
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in
+ * combination with overrideEndpoint option
+ */
+ private String uriEndpointOverride;
+ /**
+ * The voice ID to use for synthesis
+ */
+ private VoiceId voiceId;
+ /**
+ * 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.
+ */
+ private Boolean autowiredEnabled = true;
+ /**
+ * To use an existing configured AWS Polly client. The option is a
+ * software.amazon.awssdk.services.polly.PollyClient type.
+ */
+ private PollyClient pollyClient;
+ /**
+ * Used for enabling or disabling all consumer based health checks from this
+ * component
+ */
+ private Boolean healthCheckConsumerEnabled = true;
+ /**
+ * 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.
+ */
+ private Boolean healthCheckProducerEnabled = true;
+ /**
+ * To define a proxy host when instantiating the Polly client
+ */
+ private String proxyHost;
+ /**
+ * To define a proxy port when instantiating the Polly client
+ */
+ private Integer proxyPort;
+ /**
+ * To define a proxy protocol when instantiating the Polly client
+ */
+ private Protocol proxyProtocol = Protocol.HTTPS;
+ /**
+ * Amazon AWS Access Key
+ */
+ private String accessKey;
+ /**
+ * If using a profile credentials provider, this parameter will set the
+ * profile name
+ */
+ private String profileCredentialsName;
+ /**
+ * Amazon AWS Secret Key
+ */
+ private String secretKey;
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM role
+ */
+ private String sessionToken;
+ /**
+ * If we want to trust all certificates in case of overriding the endpoint
+ */
+ private Boolean trustAllCertificates = false;
+ /**
+ * Set whether the Polly client should expect to load credentials through a
+ * default credentials provider or to expect static credentials to be passed
+ * in.
+ */
+ private Boolean useDefaultCredentialsProvider = false;
+ /**
+ * Set whether the Polly client should expect to load credentials through a
+ * profile credentials provider.
+ */
+ private Boolean useProfileCredentialsProvider = false;
+ /**
+ * Set whether the Polly client should expect to use Session Credentials.
+ * This is useful in a situation in which the user needs to assume an IAM
+ * role for doing operations in Polly.
+ */
+ private Boolean useSessionCredentials = false;
+
+ public Polly2Configuration getConfiguration() {
+ return configuration;
+ }
+
+ public void setConfiguration(Polly2Configuration configuration) {
+ this.configuration = configuration;
+ }
+
+ public Engine getEngine() {
+ return engine;
+ }
+
+ public void setEngine(Engine engine) {
+ this.engine = engine;
+ }
+
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+
+ public Boolean getLazyStartProducer() {
+ return lazyStartProducer;
+ }
+
+ public void setLazyStartProducer(Boolean lazyStartProducer) {
+ this.lazyStartProducer = lazyStartProducer;
+ }
+
+ public String getLexiconNames() {
+ return lexiconNames;
+ }
+
+ public void setLexiconNames(String lexiconNames) {
+ this.lexiconNames = lexiconNames;
+ }
+
+ public Polly2Operations getOperation() {
+ return operation;
+ }
+
+ public void setOperation(Polly2Operations operation) {
+ this.operation = operation;
+ }
+
+ public OutputFormat getOutputFormat() {
+ return outputFormat;
+ }
+
+ public void setOutputFormat(OutputFormat outputFormat) {
+ this.outputFormat = outputFormat;
+ }
+
+ public Boolean getOverrideEndpoint() {
+ return overrideEndpoint;
+ }
+
+ public void setOverrideEndpoint(Boolean overrideEndpoint) {
+ this.overrideEndpoint = overrideEndpoint;
+ }
+
+ public Boolean getPojoRequest() {
+ return pojoRequest;
+ }
+
+ public void setPojoRequest(Boolean pojoRequest) {
+ this.pojoRequest = pojoRequest;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ public void setRegion(String region) {
+ this.region = region;
+ }
+
+ public String getSampleRate() {
+ return sampleRate;
+ }
+
+ public void setSampleRate(String sampleRate) {
+ this.sampleRate = sampleRate;
+ }
+
+ public TextType getTextType() {
+ return textType;
+ }
+
+ public void setTextType(TextType textType) {
+ this.textType = textType;
+ }
+
+ public String getUriEndpointOverride() {
+ return uriEndpointOverride;
+ }
+
+ public void setUriEndpointOverride(String uriEndpointOverride) {
+ this.uriEndpointOverride = uriEndpointOverride;
+ }
+
+ public VoiceId getVoiceId() {
+ return voiceId;
+ }
+
+ public void setVoiceId(VoiceId voiceId) {
+ this.voiceId = voiceId;
+ }
+
+ public Boolean getAutowiredEnabled() {
+ return autowiredEnabled;
+ }
+
+ public void setAutowiredEnabled(Boolean autowiredEnabled) {
+ this.autowiredEnabled = autowiredEnabled;
+ }
+
+ public PollyClient getPollyClient() {
+ return pollyClient;
+ }
+
+ public void setPollyClient(PollyClient pollyClient) {
+ this.pollyClient = pollyClient;
+ }
+
+ public Boolean getHealthCheckConsumerEnabled() {
+ return healthCheckConsumerEnabled;
+ }
+
+ public void setHealthCheckConsumerEnabled(Boolean healthCheckConsumerEnabled) {
+ this.healthCheckConsumerEnabled = healthCheckConsumerEnabled;
+ }
+
+ public Boolean getHealthCheckProducerEnabled() {
+ return healthCheckProducerEnabled;
+ }
+
+ public void setHealthCheckProducerEnabled(Boolean healthCheckProducerEnabled) {
+ this.healthCheckProducerEnabled = healthCheckProducerEnabled;
+ }
+
+ public String getProxyHost() {
+ return proxyHost;
+ }
+
+ public void setProxyHost(String proxyHost) {
+ this.proxyHost = proxyHost;
+ }
+
+ public Integer getProxyPort() {
+ return proxyPort;
+ }
+
+ public void setProxyPort(Integer proxyPort) {
+ this.proxyPort = proxyPort;
+ }
+
+ public Protocol getProxyProtocol() {
+ return proxyProtocol;
+ }
+
+ public void setProxyProtocol(Protocol proxyProtocol) {
+ this.proxyProtocol = proxyProtocol;
+ }
+
+ public String getAccessKey() {
+ return accessKey;
+ }
+
+ public void setAccessKey(String accessKey) {
+ this.accessKey = accessKey;
+ }
+
+ public String getProfileCredentialsName() {
+ return profileCredentialsName;
+ }
+
+ public void setProfileCredentialsName(String profileCredentialsName) {
+ this.profileCredentialsName = profileCredentialsName;
+ }
+
+ public String getSecretKey() {
+ return secretKey;
+ }
+
+ public void setSecretKey(String secretKey) {
+ this.secretKey = secretKey;
+ }
+
+ public String getSessionToken() {
+ return sessionToken;
+ }
+
+ public void setSessionToken(String sessionToken) {
+ this.sessionToken = sessionToken;
+ }
+
+ public Boolean getTrustAllCertificates() {
+ return trustAllCertificates;
+ }
+
+ public void setTrustAllCertificates(Boolean trustAllCertificates) {
+ this.trustAllCertificates = trustAllCertificates;
+ }
+
+ public Boolean getUseDefaultCredentialsProvider() {
+ return useDefaultCredentialsProvider;
+ }
+
+ public void setUseDefaultCredentialsProvider(
+ Boolean useDefaultCredentialsProvider) {
+ this.useDefaultCredentialsProvider = useDefaultCredentialsProvider;
+ }
+
+ public Boolean getUseProfileCredentialsProvider() {
+ return useProfileCredentialsProvider;
+ }
+
+ public void setUseProfileCredentialsProvider(
+ Boolean useProfileCredentialsProvider) {
+ this.useProfileCredentialsProvider = useProfileCredentialsProvider;
+ }
+
+ public Boolean getUseSessionCredentials() {
+ return useSessionCredentials;
+ }
+
+ public void setUseSessionCredentials(Boolean useSessionCredentials) {
+ this.useSessionCredentials = useSessionCredentials;
+ }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConverter.java b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConverter.java
new file mode 100644
index 00000000000..7f1a1934dd0
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/java/org/apache/camel/component/aws2/polly/springboot/Polly2ComponentConverter.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.polly.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+import org.springframework.stereotype.Component;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration(proxyBeanMethods = false)
+@ConfigurationPropertiesBinding
+@Component
+public class Polly2ComponentConverter implements GenericConverter {
+
+ @Autowired
+ private ApplicationContext applicationContext;
+
+ public Set<ConvertiblePair> getConvertibleTypes() {
+ Set<ConvertiblePair> answer = new LinkedHashSet<>();
+ answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.polly.Polly2Configuration.class));
+ answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.polly.PollyClient.class));
+ return answer;
+ }
+
+ public Object convert(
+ Object source,
+ TypeDescriptor sourceType,
+ TypeDescriptor targetType) {
+ if (source == null) {
+ return null;
+ }
+ String ref = source.toString();
+ if (!ref.startsWith("#")) {
+ return null;
+ }
+ ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+ switch (targetType.getName()) {
+ case "org.apache.camel.component.aws2.polly.Polly2Configuration": return applicationContext.getBean(ref, org.apache.camel.component.aws2.polly.Polly2Configuration.class);
+ case "software.amazon.awssdk.services.polly.PollyClient": return applicationContext.getBean(ref, software.amazon.awssdk.services.polly.PollyClient.class);
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/LICENSE.txt b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 00000000000..6b0b1270ff0
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
+
diff --git a/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/NOTICE.txt b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 00000000000..2e215bf2e6b
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Apache Camel distribution. ==
+ =========================================================================
+
+ This product includes software developed by
+ The Apache Software Foundation (http://www.apache.org/).
+
+ Please read the different LICENSE files present in the licenses directory of
+ this distribution.
diff --git a/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..0ba6e78bd1a
--- /dev/null
+++ b/components-starter/camel-aws2-polly-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+org.apache.camel.component.aws2.polly.springboot.Polly2ComponentConverter
+org.apache.camel.component.aws2.polly.springboot.Polly2ComponentAutoConfiguration
diff --git a/components-starter/pom.xml b/components-starter/pom.xml
index fba5cb08f09..d5e56161ac5 100644
--- a/components-starter/pom.xml
+++ b/components-starter/pom.xml
@@ -134,6 +134,7 @@
<module>camel-aws2-lambda-starter</module>
<module>camel-aws2-mq-starter</module>
<module>camel-aws2-msk-starter</module>
+ <module>camel-aws2-polly-starter</module>
<module>camel-aws2-redshift-starter</module>
<module>camel-aws2-rekognition-starter</module>
<module>camel-aws2-s3-starter</module>
diff --git a/tooling/camel-spring-boot-bom/pom.xml b/tooling/camel-spring-boot-bom/pom.xml
index ba718f5eb17..f5db8eb87f1 100644
--- a/tooling/camel-spring-boot-bom/pom.xml
+++ b/tooling/camel-spring-boot-bom/pom.xml
@@ -183,6 +183,11 @@
<artifactId>camel-aws2-msk-starter</artifactId>
<version>4.18.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-aws2-polly-starter</artifactId>
+ <version>4.18.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-aws2-redshift-starter</artifactId>
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml b/tooling/camel-spring-boot-dependencies/pom.xml
index a2962ff8608..d4803148158 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -452,6 +452,11 @@
<artifactId>camel-aws2-msk-starter</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-aws2-polly-starter</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-aws2-redshift-starter</artifactId>
@@ -2563,6 +2568,11 @@
<artifactId>camel-aws2-msk</artifactId>
<version>4.18.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-aws2-polly</artifactId>
+ <version>4.18.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws2-redshift</artifactId>