private boolean endpointConflicts(Model model, OperationShape operation, OperationShape otherOperation) {
        // If neither operation has the endpoint trait, then their endpoints do conflict.
        if (!operation.hasTrait(EndpointTrait.ID) && !otherOperation.hasTrait(EndpointTrait.ID)) {
            return true;
        }

        // If one, but not both, operations have the endpoint trait, then their endpoints can't conflict.
        if (operation.hasTrait(EndpointTrait.ID) ^ otherOperation.hasTrait(EndpointTrait.ID)) {
            return false;
        }

        // At this point we know both operations have the endpoint trait, so we need to check if
        // they conflict.
        SmithyPattern prefix = operation.getTrait(EndpointTrait.class).get().getHostPrefix();
        SmithyPattern otherPrefix = otherOperation.getTrait(EndpointTrait.class).get().getHostPrefix();
        boolean allowable = !isAllowableConflict(
                model,
                prefix,
                operation,
                otherPrefix,
                otherOperation,
                this::getHostLabelPatterns);
        return allowable;
    }
Validates that no two URIs in a service conflict with each other.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/HttpUriConflictValidator.java