@@ -134,10 +134,10 @@ public void run() {
134
134
() -> {
135
135
// Section for adding custom command properties.
136
136
writer .pushState (COMMAND_PROPERTIES_SECTION );
137
- writer .openBlock ("protected readonly $L = [ " , "] ;" , COMMAND_INPUT_KEYNODES , () -> {
137
+ writer .openBlock ("protected readonly $L = { " , "} ;" , COMMAND_INPUT_KEYNODES , () -> {
138
138
writeKeyNodes (inputMembersWithAttr );
139
139
});
140
- writer .openBlock ("protected readonly $L = [ " , "] ;" , COMMAND_OUTPUT_KEYNODES , () -> {
140
+ writer .openBlock ("protected readonly $L = { " , "} ;" , COMMAND_OUTPUT_KEYNODES , () -> {
141
141
writeKeyNodes (outputMembersWithAttr );
142
142
});
143
143
writer .popState ();
@@ -220,7 +220,7 @@ private void generateCommandMiddlewareResolver(String configType) {
220
220
221
221
private void writeKeyNodes (List <MemberShape > membersWithAttr ) {
222
222
for (MemberShape member : membersWithAttr ) {
223
- writer .openBlock ("{key: '$L', " , "} ," , symbolProvider .toMemberName (member ), () -> {
223
+ writer .openBlock ("'$L': " , "," , symbolProvider .toMemberName (member ), () -> {
224
224
writeKeyNode (member );
225
225
});
226
226
}
@@ -230,9 +230,21 @@ private void writeKeyNode(MemberShape member) {
230
230
Shape memberTarget = model .expectShape (member .getTarget ());
231
231
if (memberTarget instanceof CollectionShape ) {
232
232
MemberShape collectionMember = ((CollectionShape ) memberTarget ).getMember ();
233
- writeKeyNode (collectionMember );
233
+ Shape collectionMemberTarget = model .expectShape (collectionMember .getTarget ());
234
+ if (collectionMemberTarget .isUnionShape ()
235
+ && symbolProvider .toSymbol (collectionMemberTarget ).getName ().equals ("AttributeValue" )) {
236
+ writer .addImport ("ALL_MEMBERS" , null , "../src/commands/utils" );
237
+ writer .write ("ALL_MEMBERS // set/list of AttributeValue" );
238
+ return ;
239
+ }
240
+ writer .openBlock ("{" , "}" , () -> {
241
+ writer .write ("'*':" );
242
+ writeKeyNode (collectionMember );
243
+ });
234
244
} else if (memberTarget .isUnionShape ()) {
235
245
if (symbolProvider .toSymbol (memberTarget ).getName ().equals ("AttributeValue" )) {
246
+ writer .addImport ("SELF" , null , "../src/commands/utils" );
247
+ writer .write ("SELF" );
236
248
return ;
237
249
} else {
238
250
// An AttributeValue inside Union is not present as of Q1 2021, and is less
@@ -241,29 +253,30 @@ private void writeKeyNode(MemberShape member) {
241
253
"AttributeValue inside Union is not supported, attempted for %s" , memberTarget .getType ()
242
254
));
243
255
}
244
- } else {
245
- if (memberTarget .isMapShape ()) {
246
- MemberShape mapMember = ((MapShape ) memberTarget ).getValue ();
247
- Shape mapMemberTarget = model .expectShape (mapMember .getTarget ());
248
- if (mapMemberTarget .isUnionShape ()
249
- && symbolProvider .toSymbol (mapMemberTarget ).getName ().equals ("AttributeValue" )) {
250
- return ;
251
- } else {
252
- writer .openBlock ("children: {" , "}," , () -> {
253
- writeKeyNode (mapMember );
254
- });
255
- }
256
- } else if (memberTarget .isStructureShape ()) {
257
- writeStructureKeyNode ((StructureShape ) memberTarget );
256
+ } else if (memberTarget .isMapShape ()) {
257
+ MemberShape mapMember = ((MapShape ) memberTarget ).getValue ();
258
+ Shape mapMemberTarget = model .expectShape (mapMember .getTarget ());
259
+ if (mapMemberTarget .isUnionShape ()
260
+ && symbolProvider .toSymbol (mapMemberTarget ).getName ().equals ("AttributeValue" )) {
261
+ writer .addImport ("ALL_VALUES" , null , "../src/commands/utils" );
262
+ writer .write ("ALL_VALUES // map with AttributeValue" );
263
+ return ;
264
+ } else {
265
+ writer .openBlock ("{" , "}" , () -> {
266
+ writer .write ("'*':" );
267
+ writeKeyNode (mapMember );
268
+ });
258
269
}
270
+ } else if (memberTarget .isStructureShape ()) {
271
+ writeStructureKeyNode ((StructureShape ) memberTarget );
259
272
}
260
273
}
261
274
262
275
private void writeStructureKeyNode (StructureShape structureTarget ) {
263
276
List <MemberShape > membersWithAttr = getStructureMembersWithAttr (Optional .of (structureTarget ));
264
- writer .openBlock ("children: [ " , "], " , () -> {
277
+ writer .openBlock ("{ " , "} " , () -> {
265
278
for (MemberShape member : membersWithAttr ) {
266
- writer .openBlock ("{key: '$L', " , "} ," , symbolProvider .toMemberName (member ), () -> {
279
+ writer .openBlock ("'$L': " , "," , symbolProvider .toMemberName (member ), () -> {
267
280
writeKeyNode (member );
268
281
});
269
282
}
0 commit comments