static boolean verifyListTagsOperation(
            Model model,
            OperationShape listTagsResourceOperation,
            OperationIndex operationIndex
    ) {
        Map<String, MemberShape> inputMembers = operationIndex.getInputMembers(listTagsResourceOperation);
        Map<String, MemberShape> outputMembers = operationIndex.getOutputMembers(listTagsResourceOperation);
        int taglistMemberCount = 0;
        for (Map.Entry<String, MemberShape> memberEntry : outputMembers.entrySet()) {
            if (isTagDesiredName(memberEntry.getKey())
                    && verifyTagsShape(model, model.expectShape(memberEntry.getValue().getTarget()))) {
                ++taglistMemberCount;
            }
        }
        return taglistMemberCount == 1 && hasResourceArnInput(inputMembers, model);
    }
Returns true if and only if a provided shape meets criteria that appears to
represent a list or map of tag key value pairs.

@param model Model to retrieve target shapes from when examining
             targets.
@param tagShape shape to examine if it appears to be tags.
@return true if and only if shape meets the criteria for being a TagList
smithy-aws-traits/src/main/java/software/amazon/smithy/aws/traits/tagging/TaggingShapeUtils.java