static boolean isTagPropertyInInput(
            Optional<ShapeId> operationId,
            Model model,
            ResourceShape resource
    ) {
        if (operationId.isPresent()) {
            PropertyBindingIndex propertyBindingIndex = PropertyBindingIndex.of(model);
            Optional<String> property = resource.expectTrait(TaggableTrait.class).getProperty();
            if (property.isPresent()) {
                OperationShape operation = model.expectShape(operationId.get()).asOperationShape().get();
                Shape inputShape = model.expectShape(operation.getInputShape());
                return isTagPropertyInShape(property.get(), inputShape, propertyBindingIndex);
            }
        }
        return false;
    }
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