Skip to content

Commit 057f686

Browse files
authored
fix(clients): update message in Error key in case of XML protocol (#4000)
1 parent 2558c93 commit 057f686

File tree

31 files changed

+105
-32
lines changed

31 files changed

+105
-32
lines changed

clients/client-auto-scaling/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9858,7 +9858,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
98589858

98599859
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
98609860
const value = await parseBody(errorBody, context);
9861-
value.message = value.message ?? value.Message;
9861+
if (value.Error) {
9862+
value.Error.message = value.Error.message ?? value.Error.Message;
9863+
}
98629864
return value;
98639865
};
98649866

clients/client-cloudformation/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10268,7 +10268,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1026810268

1026910269
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1027010270
const value = await parseBody(errorBody, context);
10271-
value.message = value.message ?? value.Message;
10271+
if (value.Error) {
10272+
value.Error.message = value.Error.message ?? value.Error.Message;
10273+
}
1027210274
return value;
1027310275
};
1027410276

clients/client-cloudfront/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17290,7 +17290,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1729017290

1729117291
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1729217292
const value = await parseBody(errorBody, context);
17293-
value.message = value.message ?? value.Message;
17293+
if (value.Error) {
17294+
value.Error.message = value.Error.message ?? value.Error.Message;
17295+
}
1729417296
return value;
1729517297
};
1729617298

clients/client-cloudsearch/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4206,7 +4206,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
42064206

42074207
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
42084208
const value = await parseBody(errorBody, context);
4209-
value.message = value.message ?? value.Message;
4209+
if (value.Error) {
4210+
value.Error.message = value.Error.message ?? value.Error.Message;
4211+
}
42104212
return value;
42114213
};
42124214

clients/client-cloudwatch/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6209,7 +6209,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
62096209

62106210
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
62116211
const value = await parseBody(errorBody, context);
6212-
value.message = value.message ?? value.Message;
6212+
if (value.Error) {
6213+
value.Error.message = value.Error.message ?? value.Error.Message;
6214+
}
62136215
return value;
62146216
};
62156217

clients/client-docdb/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9102,7 +9102,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
91029102

91039103
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
91049104
const value = await parseBody(errorBody, context);
9105-
value.message = value.message ?? value.Message;
9105+
if (value.Error) {
9106+
value.Error.message = value.Error.message ?? value.Error.Message;
9107+
}
91069108
return value;
91079109
};
91089110

clients/client-ec2/src/protocols/Aws_ec2.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80348,7 +80348,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
8034880348

8034980349
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
8035080350
const value = await parseBody(errorBody, context);
80351-
value.message = value.message ?? value.Message;
80351+
if (value.Error) {
80352+
value.Error.message = value.Error.message ?? value.Error.Message;
80353+
}
8035280354
return value;
8035380355
};
8035480356

clients/client-elastic-beanstalk/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7299,7 +7299,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
72997299

73007300
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
73017301
const value = await parseBody(errorBody, context);
7302-
value.message = value.message ?? value.Message;
7302+
if (value.Error) {
7303+
value.Error.message = value.Error.message ?? value.Error.Message;
7304+
}
73037305
return value;
73047306
};
73057307

clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6723,7 +6723,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
67236723

67246724
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
67256725
const value = await parseBody(errorBody, context);
6726-
value.message = value.message ?? value.Message;
6726+
if (value.Error) {
6727+
value.Error.message = value.Error.message ?? value.Error.Message;
6728+
}
67276729
return value;
67286730
};
67296731

clients/client-elastic-load-balancing/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4677,7 +4677,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
46774677

46784678
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
46794679
const value = await parseBody(errorBody, context);
4680-
value.message = value.message ?? value.Message;
4680+
if (value.Error) {
4681+
value.Error.message = value.Error.message ?? value.Error.Message;
4682+
}
46814683
return value;
46824684
};
46834685

clients/client-elasticache/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12518,7 +12518,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1251812518

1251912519
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1252012520
const value = await parseBody(errorBody, context);
12521-
value.message = value.message ?? value.Message;
12521+
if (value.Error) {
12522+
value.Error.message = value.Error.message ?? value.Error.Message;
12523+
}
1252212524
return value;
1252312525
};
1252412526

clients/client-iam/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17395,7 +17395,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1739517395

1739617396
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1739717397
const value = await parseBody(errorBody, context);
17398-
value.message = value.message ?? value.Message;
17398+
if (value.Error) {
17399+
value.Error.message = value.Error.message ?? value.Error.Message;
17400+
}
1739917401
return value;
1740017402
};
1740117403

clients/client-neptune/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12071,7 +12071,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1207112071

1207212072
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1207312073
const value = await parseBody(errorBody, context);
12074-
value.message = value.message ?? value.Message;
12074+
if (value.Error) {
12075+
value.Error.message = value.Error.message ?? value.Error.Message;
12076+
}
1207512077
return value;
1207612078
};
1207712079

clients/client-rds/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24122,7 +24122,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
2412224122

2412324123
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
2412424124
const value = await parseBody(errorBody, context);
24125-
value.message = value.message ?? value.Message;
24125+
if (value.Error) {
24126+
value.Error.message = value.Error.message ?? value.Error.Message;
24127+
}
2412624128
return value;
2412724129
};
2412824130

clients/client-redshift/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19415,7 +19415,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1941519415

1941619416
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1941719417
const value = await parseBody(errorBody, context);
19418-
value.message = value.message ?? value.Message;
19418+
if (value.Error) {
19419+
value.Error.message = value.Error.message ?? value.Error.Message;
19420+
}
1941919421
return value;
1942019422
};
1942119423

clients/client-route-53/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8970,7 +8970,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
89708970

89718971
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
89728972
const value = await parseBody(errorBody, context);
8973-
value.message = value.message ?? value.Message;
8973+
if (value.Error) {
8974+
value.Error.message = value.Error.message ?? value.Error.Message;
8975+
}
89748976
return value;
89758977
};
89768978

clients/client-s3-control/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8613,7 +8613,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
86138613

86148614
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
86158615
const value = await parseBody(errorBody, context);
8616-
value.message = value.message ?? value.Message;
8616+
if (value.Error) {
8617+
value.Error.message = value.Error.message ?? value.Error.Message;
8618+
}
86178619
return value;
86188620
};
86198621

clients/client-s3/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12063,7 +12063,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
1206312063

1206412064
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
1206512065
const value = await parseBody(errorBody, context);
12066-
value.message = value.message ?? value.Message;
12066+
if (value.Error) {
12067+
value.Error.message = value.Error.message ?? value.Error.Message;
12068+
}
1206712069
return value;
1206812070
};
1206912071

clients/client-ses/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9018,7 +9018,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
90189018

90199019
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
90209020
const value = await parseBody(errorBody, context);
9021-
value.message = value.message ?? value.Message;
9021+
if (value.Error) {
9022+
value.Error.message = value.Error.message ?? value.Error.Message;
9023+
}
90229024
return value;
90239025
};
90249026

clients/client-sns/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5595,7 +5595,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
55955595

55965596
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
55975597
const value = await parseBody(errorBody, context);
5598-
value.message = value.message ?? value.Message;
5598+
if (value.Error) {
5599+
value.Error.message = value.Error.message ?? value.Error.Message;
5600+
}
55995601
return value;
56005602
};
56015603

clients/client-sqs/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2761,7 +2761,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
27612761

27622762
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
27632763
const value = await parseBody(errorBody, context);
2764-
value.message = value.message ?? value.Message;
2764+
if (value.Error) {
2765+
value.Error.message = value.Error.message ?? value.Error.Message;
2766+
}
27652767
return value;
27662768
};
27672769

clients/client-sts/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1306,7 +1306,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
13061306

13071307
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
13081308
const value = await parseBody(errorBody, context);
1309-
value.message = value.message ?? value.Message;
1309+
if (value.Error) {
1310+
value.Error.message = value.Error.message ?? value.Error.Message;
1311+
}
13101312
return value;
13111313
};
13121314

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEc2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context,
8585
public void generateSharedComponents(GenerationContext context) {
8686
super.generateSharedComponents(context);
8787
AwsProtocolUtils.generateXmlParseBody(context);
88-
AwsProtocolUtils.generateParseErrorBody(context);
88+
AwsProtocolUtils.generateXmlParseErrorBody(context);
8989
AwsProtocolUtils.generateBuildFormUrlencodedString(context);
9090
AwsProtocolUtils.addItempotencyAutofillImport(context);
9191

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsProtocolUtils.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ static void generateJsonParseBody(GenerationContext context) {
118118
}
119119

120120
/**
121-
* Writes a response body parser function for errors. This
121+
* Writes a response body parser function for JSON errors. This
122122
* will populate message field in parsed object, if it's not present.
123123
*
124124
* @param context The generation context.
125125
*/
126-
static void generateParseErrorBody(GenerationContext context) {
126+
static void generateJsonParseErrorBody(GenerationContext context) {
127127
TypeScriptWriter writer = context.getWriter();
128128

129129
// Include a JSON body parser used to deserialize documents from HTTP responses.
@@ -175,6 +175,29 @@ static void generateXmlParseBody(GenerationContext context) {
175175
writer.write("");
176176
}
177177

178+
/**
179+
* Writes a response body parser function for XML errors. This
180+
* will populate message field in parsed object, if it's not present.
181+
*
182+
* @param context The generation context.
183+
*/
184+
static void generateXmlParseErrorBody(GenerationContext context) {
185+
TypeScriptWriter writer = context.getWriter();
186+
187+
// Include a JSON body parser used to deserialize documents from HTTP responses.
188+
writer.addImport("SerdeContext", "__SerdeContext", "@aws-sdk/types");
189+
writer.openBlock("const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {",
190+
"}", () -> {
191+
writer.write("const value = await parseBody(errorBody, context);");
192+
writer.openBlock("if (value.Error) {", "}", () -> {
193+
writer.write("value.Error.message = value.Error.message ?? value.Error.Message;");
194+
});
195+
writer.write("return value;");
196+
});
197+
198+
writer.write("");
199+
}
200+
178201
/**
179202
* Writes a form urlencoded string builder function for query based protocols.
180203
* This will escape the keys and values, combine those with an '=', and combine

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context,
8585
public void generateSharedComponents(GenerationContext context) {
8686
super.generateSharedComponents(context);
8787
AwsProtocolUtils.generateXmlParseBody(context);
88-
AwsProtocolUtils.generateParseErrorBody(context);
88+
AwsProtocolUtils.generateXmlParseErrorBody(context);
8989
AwsProtocolUtils.generateBuildFormUrlencodedString(context);
9090
AwsProtocolUtils.addItempotencyAutofillImport(context);
9191

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context,
101101
public void generateSharedComponents(GenerationContext context) {
102102
super.generateSharedComponents(context);
103103
AwsProtocolUtils.generateXmlParseBody(context);
104-
AwsProtocolUtils.generateParseErrorBody(context);
104+
AwsProtocolUtils.generateXmlParseErrorBody(context);
105105
AwsProtocolUtils.addItempotencyAutofillImport(context);
106106

107107
TypeScriptWriter writer = context.getWriter();

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonRpcProtocolGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context,
8080
public void generateSharedComponents(GenerationContext context) {
8181
super.generateSharedComponents(context);
8282
AwsProtocolUtils.generateJsonParseBody(context);
83-
AwsProtocolUtils.generateParseErrorBody(context);
83+
AwsProtocolUtils.generateJsonParseErrorBody(context);
8484
AwsProtocolUtils.addItempotencyAutofillImport(context);
8585

8686
TypeScriptWriter writer = context.getWriter();

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ protected void generateDocumentBodyShapeDeserializers(GenerationContext context,
7979
public void generateSharedComponents(GenerationContext context) {
8080
super.generateSharedComponents(context);
8181
AwsProtocolUtils.generateJsonParseBody(context);
82-
AwsProtocolUtils.generateParseErrorBody(context);
82+
AwsProtocolUtils.generateJsonParseErrorBody(context);
8383
AwsProtocolUtils.addItempotencyAutofillImport(context);
8484

8585
TypeScriptWriter writer = context.getWriter();

private/aws-protocoltests-ec2/src/protocols/Aws_ec2.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1963,7 +1963,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
19631963

19641964
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
19651965
const value = await parseBody(errorBody, context);
1966-
value.message = value.message ?? value.Message;
1966+
if (value.Error) {
1967+
value.Error.message = value.Error.message ?? value.Error.Message;
1968+
}
19671969
return value;
19681970
};
19691971

private/aws-protocoltests-query/src/protocols/Aws_query.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2699,7 +2699,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
26992699

27002700
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
27012701
const value = await parseBody(errorBody, context);
2702-
value.message = value.message ?? value.Message;
2702+
if (value.Error) {
2703+
value.Error.message = value.Error.message ?? value.Error.Message;
2704+
}
27032705
return value;
27042706
};
27052707

private/aws-protocoltests-restxml/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5302,7 +5302,9 @@ const parseBody = (streamBody: any, context: __SerdeContext): any =>
53025302

53035303
const parseErrorBody = async (errorBody: any, context: __SerdeContext) => {
53045304
const value = await parseBody(errorBody, context);
5305-
value.message = value.message ?? value.Message;
5305+
if (value.Error) {
5306+
value.Error.message = value.Error.message ?? value.Error.Message;
5307+
}
53065308
return value;
53075309
};
53085310

0 commit comments

Comments
 (0)