private Map<String, String> computeBindings(ResourceShape resource, StructureShape shape) {
        Map<String, String> bindings = new HashMap<>();
        for (MemberShape member : shape.getAllMembers().values()) {
            if (member.hasTrait(ResourceIdentifierTrait.ID)) {
                // Mark as a binding if the member has an explicit @resourceIdentifier trait.
                String bindingName = member.expectTrait(ResourceIdentifierTrait.class).getValue();
                // Override any implicit bindings with explicit trait bindings.
                bindings.put(bindingName, member.getMemberName());
            } else if (isImplicitIdentifierBinding(member, resource)) {
                // Mark as a binding if the member is an implicit identifier binding.
                // Only utilize implicit bindings when an explicit binding wasn't found.
                bindings.putIfAbsent(member.getMemberName(), member.getMemberName());
            }
        }
        return bindings;
    }
Gets a map of identifier names to input member names that provide a
value for that identifier.

@param resource Shape ID of a resource.
@param operation Shape ID of an operation.
@return Returns the identifier bindings map or an empty map if the
 binding is invalid or cannot be found.

@deprecated Use {@link #getOperationInputBindings} instead.
smithy-model/src/main/java/software/amazon/smithy/model/knowledge/IdentifierBindingIndex.java