in codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/DocumentClientUtils.java [87:131]
static boolean containsAttributeValue(
Model model,
SymbolProvider symbolProvider,
MemberShape member,
Set<String> parents
) {
Shape memberTarget = model.expectShape(member.getTarget());
if (memberTarget.isStructureShape()) {
if (!parents.contains(symbolProvider.toMemberName(member))) {
parents.add(symbolProvider.toMemberName(member));
Collection<MemberShape> structureMemberList = ((StructureShape) memberTarget).getAllMembers().values();
for (MemberShape structureMember : structureMemberList) {
if (!parents.contains(symbolProvider.toMemberName(structureMember))
&& containsAttributeValue(model, symbolProvider, structureMember, parents)) {
return true;
}
}
}
} else if (memberTarget.isUnionShape()) {
if (symbolProvider.toSymbol(memberTarget).getName().equals("AttributeValue")) {
return true;
} else if (!parents.contains(symbolProvider.toMemberName(member))) {
parents.add(symbolProvider.toMemberName(member));
Collection<MemberShape> unionMemberList = ((UnionShape) memberTarget).getAllMembers().values();
for (MemberShape unionMember : unionMemberList) {
if (!parents.contains(symbolProvider.toMemberName(unionMember))
&& containsAttributeValue(model, symbolProvider, unionMember, parents)) {
return true;
}
}
}
} else if (memberTarget.isMapShape()) {
MemberShape mapMember = ((MapShape) memberTarget).getValue();
if (containsAttributeValue(model, symbolProvider, mapMember, parents)) {
return true;
}
} else if (memberTarget instanceof CollectionShape) {
MemberShape collectionMember = ((CollectionShape) memberTarget).getMember();
if (containsAttributeValue(model, symbolProvider, collectionMember, parents)) {
return true;
}
}
return false;
}