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

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


The following commit(s) were added to refs/heads/main by this push:
     new 5ef10e0ea6e2 CAMEL-24316: camel-aws2-transcribe - throw when 
pojoRequest=true and the body is the wrong type (#25250)
5ef10e0ea6e2 is described below

commit 5ef10e0ea6e21ebcbe77731323388ffa927f4cf9
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Jul 30 14:01:11 2026 +0200

    CAMEL-24316: camel-aws2-transcribe - throw when pojoRequest=true and the 
body is the wrong type (#25250)
    
    Child of CAMEL-24261. Transcribe2Producer's 30 operations only acted when 
the body
    was the matching request type under pojoRequest=true; any other body 
silently fell
    through with no AWS call and no error. Add the missing else that throws
    IllegalArgumentException naming the required type, consistent with 
CAMEL-23462.
    This is separate from CAMEL-24207, which implemented the previously-empty
    operation stubs.
    
    A new parameterized test (Transcribe2ProducerPojoRequestTest) covers all 30
    operations; verified to fail (silent no-op) before the fix. The shared 4.22
    upgrade-guide entry was added with CAMEL-24263.
    
    Signed-off-by: Andrea Cosentino <[email protected]>
    Co-authored-by: Claude Opus 4.8 <[email protected]>
---
 .../aws2/transcribe/Transcribe2Producer.java       |  90 +++++++++++++
 .../Transcribe2ProducerPojoRequestTest.java        | 139 +++++++++++++++++++++
 2 files changed, 229 insertions(+)

diff --git 
a/components/camel-aws/camel-aws2-transcribe/src/main/java/org/apache/camel/component/aws2/transcribe/Transcribe2Producer.java
 
b/components/camel-aws/camel-aws2-transcribe/src/main/java/org/apache/camel/component/aws2/transcribe/Transcribe2Producer.java
index 9521e1d360b8..6efeca408e58 100644
--- 
a/components/camel-aws/camel-aws2-transcribe/src/main/java/org/apache/camel/component/aws2/transcribe/Transcribe2Producer.java
+++ 
b/components/camel-aws/camel-aws2-transcribe/src/main/java/org/apache/camel/component/aws2/transcribe/Transcribe2Producer.java
@@ -156,6 +156,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "startTranscriptionJob operation requires 
StartTranscriptionJobRequest in POJO mode");
             }
         } else {
             StartTranscriptionJobRequest.Builder builder = 
StartTranscriptionJobRequest.builder();
@@ -200,6 +203,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "getTranscriptionJob operation requires 
GetTranscriptionJobRequest in POJO mode");
             }
         } else {
             GetTranscriptionJobRequest.Builder builder = 
GetTranscriptionJobRequest.builder();
@@ -232,6 +238,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "listTranscriptionJobs operation requires 
ListTranscriptionJobsRequest in POJO mode");
             }
         } else {
             ListTranscriptionJobsRequest.Builder builder = 
ListTranscriptionJobsRequest.builder();
@@ -265,6 +274,9 @@ public class Transcribe2Producer extends DefaultProducer {
                     LOG.trace("Delete Transcription Job command returned the 
error code {}", ase.awsErrorDetails().errorCode());
                     throw ase;
                 }
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteTranscriptionJob operation requires 
DeleteTranscriptionJobRequest in POJO mode");
             }
         } else {
             DeleteTranscriptionJobRequest.Builder builder = 
DeleteTranscriptionJobRequest.builder();
@@ -295,6 +307,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "createVocabulary operation requires 
CreateVocabularyRequest in POJO mode");
             }
         } else {
             CreateVocabularyRequest.Builder builder = 
CreateVocabularyRequest.builder();
@@ -335,6 +350,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "getVocabulary operation requires GetVocabularyRequest 
in POJO mode");
             }
         } else {
             GetVocabularyRequest.Builder builder = 
GetVocabularyRequest.builder();
@@ -367,6 +385,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "listVocabularies operation requires 
ListVocabulariesRequest in POJO mode");
             }
         } else {
             ListVocabulariesRequest.Builder builder = 
ListVocabulariesRequest.builder();
@@ -399,6 +420,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
+            } else {
+                throw new IllegalArgumentException(
+                        "updateVocabulary operation requires 
UpdateVocabularyRequest in POJO mode");
             }
         } else {
             UpdateVocabularyRequest.Builder builder = 
UpdateVocabularyRequest.builder();
@@ -432,6 +456,9 @@ public class Transcribe2Producer extends DefaultProducer {
                     LOG.trace("Delete Vocabulary command returned the error 
code {}", ase.awsErrorDetails().errorCode());
                     throw ase;
                 }
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteVocabulary operation requires 
DeleteVocabularyRequest in POJO mode");
             }
         } else {
             DeleteVocabularyRequest.Builder builder = 
DeleteVocabularyRequest.builder();
@@ -454,6 +481,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof CreateVocabularyFilterRequest req) {
                 setResponse(exchange, execute("Create Vocabulary Filter", () 
-> transcribeClient.createVocabularyFilter(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "createVocabularyFilter operation requires 
CreateVocabularyFilterRequest in POJO mode");
             }
         } else {
             CreateVocabularyFilterRequest.Builder builder = 
CreateVocabularyFilterRequest.builder();
@@ -475,6 +505,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof GetVocabularyFilterRequest req) {
                 setResponse(exchange, execute("Get Vocabulary Filter", () -> 
transcribeClient.getVocabularyFilter(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "getVocabularyFilter operation requires 
GetVocabularyFilterRequest in POJO mode");
             }
         } else {
             GetVocabularyFilterRequest.Builder builder = 
GetVocabularyFilterRequest.builder();
@@ -489,6 +522,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof ListVocabularyFiltersRequest req) {
                 setResponse(exchange, execute("List Vocabulary Filters", () -> 
transcribeClient.listVocabularyFilters(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "listVocabularyFilters operation requires 
ListVocabularyFiltersRequest in POJO mode");
             }
         } else {
             ListVocabularyFiltersRequest.Builder builder = 
ListVocabularyFiltersRequest.builder();
@@ -506,6 +542,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof UpdateVocabularyFilterRequest req) {
                 setResponse(exchange, execute("Update Vocabulary Filter", () 
-> transcribeClient.updateVocabularyFilter(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "updateVocabularyFilter operation requires 
UpdateVocabularyFilterRequest in POJO mode");
             }
         } else {
             UpdateVocabularyFilterRequest.Builder builder = 
UpdateVocabularyFilterRequest.builder();
@@ -527,6 +566,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof DeleteVocabularyFilterRequest req) {
                 setResponse(exchange, execute("Delete Vocabulary Filter", () 
-> transcribeClient.deleteVocabularyFilter(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteVocabularyFilter operation requires 
DeleteVocabularyFilterRequest in POJO mode");
             }
         } else {
             DeleteVocabularyFilterRequest.Builder builder = 
DeleteVocabularyFilterRequest.builder();
@@ -541,6 +583,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof CreateLanguageModelRequest req) {
                 setResponse(exchange, execute("Create Language Model", () -> 
transcribeClient.createLanguageModel(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "createLanguageModel operation requires 
CreateLanguageModelRequest in POJO mode");
             }
         } else {
             CreateLanguageModelRequest.Builder builder = 
CreateLanguageModelRequest.builder();
@@ -562,6 +607,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof DescribeLanguageModelRequest req) {
                 setResponse(exchange, execute("Describe Language Model", () -> 
transcribeClient.describeLanguageModel(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "describeLanguageModel operation requires 
DescribeLanguageModelRequest in POJO mode");
             }
         } else {
             DescribeLanguageModelRequest.Builder builder = 
DescribeLanguageModelRequest.builder();
@@ -576,6 +624,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof ListLanguageModelsRequest req) {
                 setResponse(exchange, execute("List Language Models", () -> 
transcribeClient.listLanguageModels(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "listLanguageModels operation requires 
ListLanguageModelsRequest in POJO mode");
             }
         } else {
             ListLanguageModelsRequest.Builder builder = 
ListLanguageModelsRequest.builder();
@@ -592,6 +643,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof DeleteLanguageModelRequest req) {
                 setResponse(exchange, execute("Delete Language Model", () -> 
transcribeClient.deleteLanguageModel(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteLanguageModel operation requires 
DeleteLanguageModelRequest in POJO mode");
             }
         } else {
             DeleteLanguageModelRequest.Builder builder = 
DeleteLanguageModelRequest.builder();
@@ -608,6 +662,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof CreateMedicalVocabularyRequest req) {
                 setResponse(exchange,
                         execute("Create Medical Vocabulary", () -> 
transcribeClient.createMedicalVocabulary(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "createMedicalVocabulary operation requires 
CreateMedicalVocabularyRequest in POJO mode");
             }
         } else {
             CreateMedicalVocabularyRequest.Builder builder = 
CreateMedicalVocabularyRequest.builder();
@@ -624,6 +681,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof GetMedicalVocabularyRequest req) {
                 setResponse(exchange, execute("Get Medical Vocabulary", () -> 
transcribeClient.getMedicalVocabulary(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "getMedicalVocabulary operation requires 
GetMedicalVocabularyRequest in POJO mode");
             }
         } else {
             GetMedicalVocabularyRequest.Builder builder = 
GetMedicalVocabularyRequest.builder();
@@ -640,6 +700,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof ListMedicalVocabulariesRequest req) {
                 setResponse(exchange,
                         execute("List Medical Vocabularies", () -> 
transcribeClient.listMedicalVocabularies(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "listMedicalVocabularies operation requires 
ListMedicalVocabulariesRequest in POJO mode");
             }
         } else {
             ListMedicalVocabulariesRequest.Builder builder = 
ListMedicalVocabulariesRequest.builder();
@@ -659,6 +722,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof UpdateMedicalVocabularyRequest req) {
                 setResponse(exchange,
                         execute("Update Medical Vocabulary", () -> 
transcribeClient.updateMedicalVocabulary(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "updateMedicalVocabulary operation requires 
UpdateMedicalVocabularyRequest in POJO mode");
             }
         } else {
             UpdateMedicalVocabularyRequest.Builder builder = 
UpdateMedicalVocabularyRequest.builder();
@@ -677,6 +743,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof DeleteMedicalVocabularyRequest req) {
                 setResponse(exchange,
                         execute("Delete Medical Vocabulary", () -> 
transcribeClient.deleteMedicalVocabulary(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteMedicalVocabulary operation requires 
DeleteMedicalVocabularyRequest in POJO mode");
             }
         } else {
             DeleteMedicalVocabularyRequest.Builder builder = 
DeleteMedicalVocabularyRequest.builder();
@@ -694,6 +763,9 @@ public class Transcribe2Producer extends DefaultProducer {
                 setResponse(exchange,
                         execute("Start Medical Transcription Job",
                                 () -> 
transcribeClient.startMedicalTranscriptionJob(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "startMedicalTranscriptionJob operation requires 
StartMedicalTranscriptionJobRequest in POJO mode");
             }
         } else {
             StartMedicalTranscriptionJobRequest.Builder builder = 
StartMedicalTranscriptionJobRequest.builder();
@@ -720,6 +792,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof GetMedicalTranscriptionJobRequest req) {
                 setResponse(exchange,
                         execute("Get Medical Transcription Job", () -> 
transcribeClient.getMedicalTranscriptionJob(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "getMedicalTranscriptionJob operation requires 
GetMedicalTranscriptionJobRequest in POJO mode");
             }
         } else {
             GetMedicalTranscriptionJobRequest.Builder builder = 
GetMedicalTranscriptionJobRequest.builder();
@@ -737,6 +812,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof ListMedicalTranscriptionJobsRequest req) {
                 setResponse(exchange,
                         execute("List Medical Transcription Jobs", () -> 
transcribeClient.listMedicalTranscriptionJobs(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "listMedicalTranscriptionJobs operation requires 
ListMedicalTranscriptionJobsRequest in POJO mode");
             }
         } else {
             ListMedicalTranscriptionJobsRequest.Builder builder = 
ListMedicalTranscriptionJobsRequest.builder();
@@ -756,6 +834,9 @@ public class Transcribe2Producer extends DefaultProducer {
             if (payload instanceof DeleteMedicalTranscriptionJobRequest req) {
                 setResponse(exchange, execute("Delete Medical Transcription 
Job",
                         () -> 
transcribeClient.deleteMedicalTranscriptionJob(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "deleteMedicalTranscriptionJob operation requires 
DeleteMedicalTranscriptionJobRequest in POJO mode");
             }
         } else {
             DeleteMedicalTranscriptionJobRequest.Builder builder = 
DeleteMedicalTranscriptionJobRequest.builder();
@@ -771,6 +852,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof TagResourceRequest req) {
                 setResponse(exchange, execute("Tag Resource", () -> 
transcribeClient.tagResource(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "tagResource operation requires TagResourceRequest in 
POJO mode");
             }
         } else {
             TagResourceRequest.Builder builder = TagResourceRequest.builder();
@@ -790,6 +874,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof UntagResourceRequest req) {
                 setResponse(exchange, execute("Untag Resource", () -> 
transcribeClient.untagResource(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "untagResource operation requires UntagResourceRequest 
in POJO mode");
             }
         } else {
             UntagResourceRequest.Builder builder = 
UntagResourceRequest.builder();
@@ -807,6 +894,9 @@ public class Transcribe2Producer extends DefaultProducer {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof ListTagsForResourceRequest req) {
                 setResponse(exchange, execute("List Tags For Resource", () -> 
transcribeClient.listTagsForResource(req)));
+            } else {
+                throw new IllegalArgumentException(
+                        "listTagsForResource operation requires 
ListTagsForResourceRequest in POJO mode");
             }
         } else {
             ListTagsForResourceRequest.Builder builder = 
ListTagsForResourceRequest.builder();
diff --git 
a/components/camel-aws/camel-aws2-transcribe/src/test/java/org/apache/camel/component/aws2/transcribe/Transcribe2ProducerPojoRequestTest.java
 
b/components/camel-aws/camel-aws2-transcribe/src/test/java/org/apache/camel/component/aws2/transcribe/Transcribe2ProducerPojoRequestTest.java
new file mode 100644
index 000000000000..988cf2aa5c95
--- /dev/null
+++ 
b/components/camel-aws/camel-aws2-transcribe/src/test/java/org/apache/camel/component/aws2/transcribe/Transcribe2ProducerPojoRequestTest.java
@@ -0,0 +1,139 @@
+/*
+ * 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.transcribe;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.junit6.CamelTestSupport;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+class Transcribe2ProducerPojoRequestTest extends CamelTestSupport {
+
+    @BindToRegistry("amazonTranscribeClient")
+    AmazonAWSTranscribeMock clientMock = new AmazonAWSTranscribeMock();
+
+    @ParameterizedTest
+    @CsvSource({
+            "direct:startTranscriptionJob,startTranscriptionJob operation 
requires StartTranscriptionJobRequest in POJO mode",
+            "direct:getTranscriptionJob,getTranscriptionJob operation requires 
GetTranscriptionJobRequest in POJO mode",
+            "direct:listTranscriptionJobs,listTranscriptionJobs operation 
requires ListTranscriptionJobsRequest in POJO mode",
+            "direct:deleteTranscriptionJob,deleteTranscriptionJob operation 
requires DeleteTranscriptionJobRequest in POJO mode",
+            "direct:createVocabulary,createVocabulary operation requires 
CreateVocabularyRequest in POJO mode",
+            "direct:getVocabulary,getVocabulary operation requires 
GetVocabularyRequest in POJO mode",
+            "direct:listVocabularies,listVocabularies operation requires 
ListVocabulariesRequest in POJO mode",
+            "direct:updateVocabulary,updateVocabulary operation requires 
UpdateVocabularyRequest in POJO mode",
+            "direct:deleteVocabulary,deleteVocabulary operation requires 
DeleteVocabularyRequest in POJO mode",
+            "direct:createVocabularyFilter,createVocabularyFilter operation 
requires CreateVocabularyFilterRequest in POJO mode",
+            "direct:getVocabularyFilter,getVocabularyFilter operation requires 
GetVocabularyFilterRequest in POJO mode",
+            "direct:listVocabularyFilters,listVocabularyFilters operation 
requires ListVocabularyFiltersRequest in POJO mode",
+            "direct:updateVocabularyFilter,updateVocabularyFilter operation 
requires UpdateVocabularyFilterRequest in POJO mode",
+            "direct:deleteVocabularyFilter,deleteVocabularyFilter operation 
requires DeleteVocabularyFilterRequest in POJO mode",
+            "direct:createLanguageModel,createLanguageModel operation requires 
CreateLanguageModelRequest in POJO mode",
+            "direct:describeLanguageModel,describeLanguageModel operation 
requires DescribeLanguageModelRequest in POJO mode",
+            "direct:listLanguageModels,listLanguageModels operation requires 
ListLanguageModelsRequest in POJO mode",
+            "direct:deleteLanguageModel,deleteLanguageModel operation requires 
DeleteLanguageModelRequest in POJO mode",
+            "direct:createMedicalVocabulary,createMedicalVocabulary operation 
requires CreateMedicalVocabularyRequest in POJO mode",
+            "direct:getMedicalVocabulary,getMedicalVocabulary operation 
requires GetMedicalVocabularyRequest in POJO mode",
+            "direct:listMedicalVocabularies,listMedicalVocabularies operation 
requires ListMedicalVocabulariesRequest in POJO mode",
+            "direct:updateMedicalVocabulary,updateMedicalVocabulary operation 
requires UpdateMedicalVocabularyRequest in POJO mode",
+            "direct:deleteMedicalVocabulary,deleteMedicalVocabulary operation 
requires DeleteMedicalVocabularyRequest in POJO mode",
+            "direct:startMedicalTranscriptionJob,startMedicalTranscriptionJob 
operation requires StartMedicalTranscriptionJobRequest in POJO mode",
+            "direct:getMedicalTranscriptionJob,getMedicalTranscriptionJob 
operation requires GetMedicalTranscriptionJobRequest in POJO mode",
+            "direct:listMedicalTranscriptionJobs,listMedicalTranscriptionJobs 
operation requires ListMedicalTranscriptionJobsRequest in POJO mode",
+            
"direct:deleteMedicalTranscriptionJob,deleteMedicalTranscriptionJob operation 
requires DeleteMedicalTranscriptionJobRequest in POJO mode",
+            "direct:tagResource,tagResource operation requires 
TagResourceRequest in POJO mode",
+            "direct:untagResource,untagResource operation requires 
UntagResourceRequest in POJO mode",
+            "direct:listTagsForResource,listTagsForResource operation requires 
ListTagsForResourceRequest in POJO mode",
+    })
+    void pojoRequestWithWrongBodyTypeThrows(String route, String 
expectedMessage) {
+        assertThatThrownBy(() -> template.requestBody(route, "not the expected 
request type"))
+                .hasRootCauseInstanceOf(IllegalArgumentException.class)
+                .hasRootCauseMessage(expectedMessage);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                from("direct:startTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=startTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:getTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=getTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listTranscriptionJobs")
+                        
.to("aws2-transcribe://transcribe?operation=listTranscriptionJobs&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=deleteTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:createVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=createVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:getVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=getVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listVocabularies")
+                        
.to("aws2-transcribe://transcribe?operation=listVocabularies&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:updateVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=updateVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=deleteVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:createVocabularyFilter")
+                        
.to("aws2-transcribe://transcribe?operation=createVocabularyFilter&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:getVocabularyFilter")
+                        
.to("aws2-transcribe://transcribe?operation=getVocabularyFilter&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listVocabularyFilters")
+                        
.to("aws2-transcribe://transcribe?operation=listVocabularyFilters&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:updateVocabularyFilter")
+                        
.to("aws2-transcribe://transcribe?operation=updateVocabularyFilter&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteVocabularyFilter")
+                        
.to("aws2-transcribe://transcribe?operation=deleteVocabularyFilter&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:createLanguageModel")
+                        
.to("aws2-transcribe://transcribe?operation=createLanguageModel&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:describeLanguageModel")
+                        
.to("aws2-transcribe://transcribe?operation=describeLanguageModel&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listLanguageModels")
+                        
.to("aws2-transcribe://transcribe?operation=listLanguageModels&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteLanguageModel")
+                        
.to("aws2-transcribe://transcribe?operation=deleteLanguageModel&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:createMedicalVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=createMedicalVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:getMedicalVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=getMedicalVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listMedicalVocabularies")
+                        
.to("aws2-transcribe://transcribe?operation=listMedicalVocabularies&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:updateMedicalVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=updateMedicalVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteMedicalVocabulary")
+                        
.to("aws2-transcribe://transcribe?operation=deleteMedicalVocabulary&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:startMedicalTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=startMedicalTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:getMedicalTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=getMedicalTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listMedicalTranscriptionJobs")
+                        
.to("aws2-transcribe://transcribe?operation=listMedicalTranscriptionJobs&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:deleteMedicalTranscriptionJob")
+                        
.to("aws2-transcribe://transcribe?operation=deleteMedicalTranscriptionJob&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:tagResource")
+                        
.to("aws2-transcribe://transcribe?operation=tagResource&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:untagResource")
+                        
.to("aws2-transcribe://transcribe?operation=untagResource&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+                from("direct:listTagsForResource")
+                        
.to("aws2-transcribe://transcribe?operation=listTagsForResource&transcribeClient=#amazonTranscribeClient&pojoRequest=true");
+            }
+        };
+    }
+}

Reply via email to