private void validateOperationBindings(Model model, List<ValidationEvent> events) {
        IdentifierBindingIndex bindingIndex = IdentifierBindingIndex.of(model);
        for (ResourceShape resource : model.getResourceShapes()) {
            validateResource(model, resource, bindingIndex, events);
            validateCollectionBindings(model, resource, bindingIndex, events);
            validateInstanceBindings(model, resource, bindingIndex, events);
        }
    }
Validates that operations bound to resource shapes have identifier
bindings for all the identifiers of the parent of the binding resource,
that operations bound to a resource with the {@code collection}
trait are bound using a collection binding, and operations bound with
no {@code collection} trait are bound using an instance binding.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/ResourceIdentifierBindingValidator.java