@Override
    protected Model transformWithConfig(TransformContext context, Config config) {
        if (!config.getEventIdAllowList().isEmpty() && !config.getEventIdDenyList().isEmpty()) {
            throw new SmithyBuildException(getName() + ": cannot set both eventIdAllowList values and "
                    + "eventIdDenyList values at the same time");
        }

        if (!config.getNamespaceAllowList().isEmpty() && !config.getNamespaceDenyList().isEmpty()) {
            throw new SmithyBuildException(getName() + ": cannot set both namespaceAllowList values and "
                    + "namespaceDenyList values at the same time");
        }

        Model model = context.getModel();
        Set<String> removedValidators = getRemovedValidators(context, config);
        List<ValidationEvent> suppressedEvents = context.getOriginalModelValidationEvents()
                .stream()
                .filter(event -> event.getSeverity() == Severity.SUPPRESSED)
                .filter(event -> !removedValidators.contains(event.getId()))
                .collect(Collectors.toList());
        model = filterSuppressionTraits(model, config, suppressedEvents, context.getTransformer());
        model = filterMetadata(model, config, suppressedEvents, removedValidators);
        return model;
    }
Sets a list of namespaces that cannot be referred to in metadata suppressions.

<p>Metadata suppressions that refer to namespaces in this list,
including "*", will be removed.

<p>This setting cannot be used in tandem with {@code namespaceAllowList}.

@param namespaceDenyList Namespaces to deny.
smithy-build/src/main/java/software/amazon/smithy/build/transforms/FilterSuppressions.java