private static boolean hasResourceArnInput(Map<String, MemberShape> inputMembers, Model model) {
        for (Map.Entry<String, MemberShape> memberEntry : inputMembers.entrySet()) {
            if (isArnMemberDesiredName(memberEntry.getKey())
                    && model.expectShape(memberEntry.getValue().getTarget()).isStringShape()) {
                return true;
            }
        }
        return false;
    }
Logic for validating that a shape looks like a tag.
smithy-aws-traits/src/main/java/software/amazon/smithy/aws/traits/tagging/TaggingShapeUtils.java