From 057f686f217caa4e277bbe6e2905decf97b0fad1 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Thu, 29 Sep 2022 09:23:27 -0700 Subject: [PATCH] fix(clients): update message in Error key in case of XML protocol (#4000) --- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_restXml.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../client-docdb/src/protocols/Aws_query.ts | 4 ++- clients/client-ec2/src/protocols/Aws_ec2.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- clients/client-iam/src/protocols/Aws_query.ts | 4 ++- .../client-neptune/src/protocols/Aws_query.ts | 4 ++- clients/client-rds/src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_restXml.ts | 4 ++- .../src/protocols/Aws_restXml.ts | 4 ++- .../client-s3/src/protocols/Aws_restXml.ts | 4 ++- clients/client-ses/src/protocols/Aws_query.ts | 4 ++- clients/client-sns/src/protocols/Aws_query.ts | 4 ++- clients/client-sqs/src/protocols/Aws_query.ts | 4 ++- clients/client-sts/src/protocols/Aws_query.ts | 4 ++- .../smithy/aws/typescript/codegen/AwsEc2.java | 2 +- .../typescript/codegen/AwsProtocolUtils.java | 27 +++++++++++++++++-- .../aws/typescript/codegen/AwsQuery.java | 2 +- .../aws/typescript/codegen/AwsRestXml.java | 2 +- .../codegen/JsonRpcProtocolGenerator.java | 2 +- .../codegen/RestJsonProtocolGenerator.java | 2 +- .../src/protocols/Aws_ec2.ts | 4 ++- .../src/protocols/Aws_query.ts | 4 ++- .../src/protocols/Aws_restXml.ts | 4 ++- 31 files changed, 105 insertions(+), 32 deletions(-) diff --git a/clients/client-auto-scaling/src/protocols/Aws_query.ts b/clients/client-auto-scaling/src/protocols/Aws_query.ts index 1a42340686d3..809fe386c1ad 100644 --- a/clients/client-auto-scaling/src/protocols/Aws_query.ts +++ b/clients/client-auto-scaling/src/protocols/Aws_query.ts @@ -9858,7 +9858,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-cloudformation/src/protocols/Aws_query.ts b/clients/client-cloudformation/src/protocols/Aws_query.ts index c4f37af80d60..25f9c960e5bb 100644 --- a/clients/client-cloudformation/src/protocols/Aws_query.ts +++ b/clients/client-cloudformation/src/protocols/Aws_query.ts @@ -10268,7 +10268,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-cloudfront/src/protocols/Aws_restXml.ts b/clients/client-cloudfront/src/protocols/Aws_restXml.ts index 6fcba5b9de3b..9f7af7fca9e9 100644 --- a/clients/client-cloudfront/src/protocols/Aws_restXml.ts +++ b/clients/client-cloudfront/src/protocols/Aws_restXml.ts @@ -17290,7 +17290,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-cloudsearch/src/protocols/Aws_query.ts b/clients/client-cloudsearch/src/protocols/Aws_query.ts index 9ad67e7918b4..0e93fce8ecc9 100644 --- a/clients/client-cloudsearch/src/protocols/Aws_query.ts +++ b/clients/client-cloudsearch/src/protocols/Aws_query.ts @@ -4206,7 +4206,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-cloudwatch/src/protocols/Aws_query.ts b/clients/client-cloudwatch/src/protocols/Aws_query.ts index 4fc704ff078d..ea887bf2c0d3 100644 --- a/clients/client-cloudwatch/src/protocols/Aws_query.ts +++ b/clients/client-cloudwatch/src/protocols/Aws_query.ts @@ -6209,7 +6209,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-docdb/src/protocols/Aws_query.ts b/clients/client-docdb/src/protocols/Aws_query.ts index d0335af8e7d3..b1438343a3d4 100644 --- a/clients/client-docdb/src/protocols/Aws_query.ts +++ b/clients/client-docdb/src/protocols/Aws_query.ts @@ -9102,7 +9102,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-ec2/src/protocols/Aws_ec2.ts b/clients/client-ec2/src/protocols/Aws_ec2.ts index c6cb1cca4259..16dd34a1e2b2 100644 --- a/clients/client-ec2/src/protocols/Aws_ec2.ts +++ b/clients/client-ec2/src/protocols/Aws_ec2.ts @@ -80348,7 +80348,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-elastic-beanstalk/src/protocols/Aws_query.ts b/clients/client-elastic-beanstalk/src/protocols/Aws_query.ts index b579815fabf2..11fbce1988ed 100644 --- a/clients/client-elastic-beanstalk/src/protocols/Aws_query.ts +++ b/clients/client-elastic-beanstalk/src/protocols/Aws_query.ts @@ -7299,7 +7299,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts b/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts index 036526c0bd8f..9a96e50a272c 100644 --- a/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts +++ b/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts @@ -6723,7 +6723,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-elastic-load-balancing/src/protocols/Aws_query.ts b/clients/client-elastic-load-balancing/src/protocols/Aws_query.ts index c8b45772add3..22bab936e281 100644 --- a/clients/client-elastic-load-balancing/src/protocols/Aws_query.ts +++ b/clients/client-elastic-load-balancing/src/protocols/Aws_query.ts @@ -4677,7 +4677,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-elasticache/src/protocols/Aws_query.ts b/clients/client-elasticache/src/protocols/Aws_query.ts index 5c5aebedc0ee..89279b1f981f 100644 --- a/clients/client-elasticache/src/protocols/Aws_query.ts +++ b/clients/client-elasticache/src/protocols/Aws_query.ts @@ -12518,7 +12518,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-iam/src/protocols/Aws_query.ts b/clients/client-iam/src/protocols/Aws_query.ts index 4c8c58e53536..c2dc1df104c9 100644 --- a/clients/client-iam/src/protocols/Aws_query.ts +++ b/clients/client-iam/src/protocols/Aws_query.ts @@ -17395,7 +17395,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-neptune/src/protocols/Aws_query.ts b/clients/client-neptune/src/protocols/Aws_query.ts index e001c80389db..fe610e673747 100644 --- a/clients/client-neptune/src/protocols/Aws_query.ts +++ b/clients/client-neptune/src/protocols/Aws_query.ts @@ -12071,7 +12071,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-rds/src/protocols/Aws_query.ts b/clients/client-rds/src/protocols/Aws_query.ts index 908e0d7af4c4..30c17a5b5b77 100644 --- a/clients/client-rds/src/protocols/Aws_query.ts +++ b/clients/client-rds/src/protocols/Aws_query.ts @@ -24122,7 +24122,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-redshift/src/protocols/Aws_query.ts b/clients/client-redshift/src/protocols/Aws_query.ts index 394caa1646f3..e912d0382b4e 100644 --- a/clients/client-redshift/src/protocols/Aws_query.ts +++ b/clients/client-redshift/src/protocols/Aws_query.ts @@ -19415,7 +19415,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-route-53/src/protocols/Aws_restXml.ts b/clients/client-route-53/src/protocols/Aws_restXml.ts index 052f30529665..9692e90a10b8 100644 --- a/clients/client-route-53/src/protocols/Aws_restXml.ts +++ b/clients/client-route-53/src/protocols/Aws_restXml.ts @@ -8970,7 +8970,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-s3-control/src/protocols/Aws_restXml.ts b/clients/client-s3-control/src/protocols/Aws_restXml.ts index 3a41eec51350..b8fd0dfed22b 100644 --- a/clients/client-s3-control/src/protocols/Aws_restXml.ts +++ b/clients/client-s3-control/src/protocols/Aws_restXml.ts @@ -8613,7 +8613,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-s3/src/protocols/Aws_restXml.ts b/clients/client-s3/src/protocols/Aws_restXml.ts index 9e3e6dfbf10a..d4ca24b9ff70 100644 --- a/clients/client-s3/src/protocols/Aws_restXml.ts +++ b/clients/client-s3/src/protocols/Aws_restXml.ts @@ -12063,7 +12063,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-ses/src/protocols/Aws_query.ts b/clients/client-ses/src/protocols/Aws_query.ts index 070f3a5d60be..49415bc9eeca 100644 --- a/clients/client-ses/src/protocols/Aws_query.ts +++ b/clients/client-ses/src/protocols/Aws_query.ts @@ -9018,7 +9018,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-sns/src/protocols/Aws_query.ts b/clients/client-sns/src/protocols/Aws_query.ts index c55a5a1dfc43..ca52e5aa83c9 100644 --- a/clients/client-sns/src/protocols/Aws_query.ts +++ b/clients/client-sns/src/protocols/Aws_query.ts @@ -5595,7 +5595,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-sqs/src/protocols/Aws_query.ts b/clients/client-sqs/src/protocols/Aws_query.ts index 25cf5f62af94..4ccd42a386fa 100644 --- a/clients/client-sqs/src/protocols/Aws_query.ts +++ b/clients/client-sqs/src/protocols/Aws_query.ts @@ -2761,7 +2761,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/clients/client-sts/src/protocols/Aws_query.ts b/clients/client-sts/src/protocols/Aws_query.ts index ea03487b2f6d..f151ee0556ee 100644 --- a/clients/client-sts/src/protocols/Aws_query.ts +++ b/clients/client-sts/src/protocols/Aws_query.ts @@ -1306,7 +1306,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEc2.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEc2.java index b66c6c6fbb66..74ab68284e26 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEc2.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEc2.java @@ -85,7 +85,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context, public void generateSharedComponents(GenerationContext context) { super.generateSharedComponents(context); AwsProtocolUtils.generateXmlParseBody(context); - AwsProtocolUtils.generateParseErrorBody(context); + AwsProtocolUtils.generateXmlParseErrorBody(context); AwsProtocolUtils.generateBuildFormUrlencodedString(context); AwsProtocolUtils.addItempotencyAutofillImport(context); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsProtocolUtils.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsProtocolUtils.java index 4d4d5a346b1d..3843ba102184 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsProtocolUtils.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsProtocolUtils.java @@ -118,12 +118,12 @@ static void generateJsonParseBody(GenerationContext context) { } /** - * Writes a response body parser function for errors. This + * Writes a response body parser function for JSON errors. This * will populate message field in parsed object, if it's not present. * * @param context The generation context. */ - static void generateParseErrorBody(GenerationContext context) { + static void generateJsonParseErrorBody(GenerationContext context) { TypeScriptWriter writer = context.getWriter(); // Include a JSON body parser used to deserialize documents from HTTP responses. @@ -175,6 +175,29 @@ static void generateXmlParseBody(GenerationContext context) { writer.write(""); } + /** + * Writes a response body parser function for XML errors. This + * will populate message field in parsed object, if it's not present. + * + * @param context The generation context. + */ + static void generateXmlParseErrorBody(GenerationContext context) { + TypeScriptWriter writer = context.getWriter(); + + // Include a JSON body parser used to deserialize documents from HTTP responses. + writer.addImport("SerdeContext", "__SerdeContext", "@aws-sdk/types"); + writer.openBlock("const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {", + "}", () -> { + writer.write("const value = await parseBody(errorBody, context);"); + writer.openBlock("if (value.Error) {", "}", () -> { + writer.write("value.Error.message = value.Error.message ?? value.Error.Message;"); + }); + writer.write("return value;"); + }); + + writer.write(""); + } + /** * Writes a form urlencoded string builder function for query based protocols. * This will escape the keys and values, combine those with an '=', and combine diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsQuery.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsQuery.java index 463181f45809..2c2ab18d24b1 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsQuery.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsQuery.java @@ -85,7 +85,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context, public void generateSharedComponents(GenerationContext context) { super.generateSharedComponents(context); AwsProtocolUtils.generateXmlParseBody(context); - AwsProtocolUtils.generateParseErrorBody(context); + AwsProtocolUtils.generateXmlParseErrorBody(context); AwsProtocolUtils.generateBuildFormUrlencodedString(context); AwsProtocolUtils.addItempotencyAutofillImport(context); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java index f28897a43b6d..75a450db27bd 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java @@ -101,7 +101,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context, public void generateSharedComponents(GenerationContext context) { super.generateSharedComponents(context); AwsProtocolUtils.generateXmlParseBody(context); - AwsProtocolUtils.generateParseErrorBody(context); + AwsProtocolUtils.generateXmlParseErrorBody(context); AwsProtocolUtils.addItempotencyAutofillImport(context); TypeScriptWriter writer = context.getWriter(); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonRpcProtocolGenerator.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonRpcProtocolGenerator.java index c84f181b1abc..17750804d7a2 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonRpcProtocolGenerator.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonRpcProtocolGenerator.java @@ -80,7 +80,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context, public void generateSharedComponents(GenerationContext context) { super.generateSharedComponents(context); AwsProtocolUtils.generateJsonParseBody(context); - AwsProtocolUtils.generateParseErrorBody(context); + AwsProtocolUtils.generateJsonParseErrorBody(context); AwsProtocolUtils.addItempotencyAutofillImport(context); TypeScriptWriter writer = context.getWriter(); diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java index 43a07bc0c929..e7966e9cd415 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java @@ -79,7 +79,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context, public void generateSharedComponents(GenerationContext context) { super.generateSharedComponents(context); AwsProtocolUtils.generateJsonParseBody(context); - AwsProtocolUtils.generateParseErrorBody(context); + AwsProtocolUtils.generateJsonParseErrorBody(context); AwsProtocolUtils.addItempotencyAutofillImport(context); TypeScriptWriter writer = context.getWriter(); diff --git a/private/aws-protocoltests-ec2/src/protocols/Aws_ec2.ts b/private/aws-protocoltests-ec2/src/protocols/Aws_ec2.ts index 5b220cafef9a..84f14deb9f95 100644 --- a/private/aws-protocoltests-ec2/src/protocols/Aws_ec2.ts +++ b/private/aws-protocoltests-ec2/src/protocols/Aws_ec2.ts @@ -1963,7 +1963,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/private/aws-protocoltests-query/src/protocols/Aws_query.ts b/private/aws-protocoltests-query/src/protocols/Aws_query.ts index e9007ec0f0e0..a28e3d0b8824 100644 --- a/private/aws-protocoltests-query/src/protocols/Aws_query.ts +++ b/private/aws-protocoltests-query/src/protocols/Aws_query.ts @@ -2699,7 +2699,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; }; diff --git a/private/aws-protocoltests-restxml/src/protocols/Aws_restXml.ts b/private/aws-protocoltests-restxml/src/protocols/Aws_restXml.ts index 9b220343c28e..bd51e13e92dc 100644 --- a/private/aws-protocoltests-restxml/src/protocols/Aws_restXml.ts +++ b/private/aws-protocoltests-restxml/src/protocols/Aws_restXml.ts @@ -5302,7 +5302,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => const parseErrorBody = async (errorBody: any, context: __SerdeContext) => { const value = await parseBody(errorBody, context); - value.message = value.message ?? value.Message; + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } return value; };