protected final void handleUnknown(Mapping config, ConfigurationContext context) throws ConfiguratorException {
        if (!config.isEmpty()) {
            final String invalid = StringUtils.join(config.keySet(), ',');
            List<String> validAttributes =
                    getAttributes().stream().map(Attribute::getName).collect(Collectors.toList());
            String baseErrorMessage = "Invalid configuration elements for type: ";
            final String message = baseErrorMessage + getTarget() + " : " + invalid + ".\n"
                    + "Available attributes : "
                    + StringUtils.join(validAttributes, ", ");
            context.warning(config, message);
            switch (context.getUnknown()) {
                case reject:
                    throw new UnknownAttributesException(this, baseErrorMessage, message, invalid, validAttributes);

                case warn:
                    LOGGER.warning(message);
                    break;
                default: // All cases in the ENUM is covered
            }
        }
    }
Run configuration process on the target instance
@param config configuration to apply. Can be partial if {@link #instance(Mapping, ConfigurationContext)} did already used some entries
@param instance target instance to configure
@param dryrun only check configuration is valid regarding target component. Don't actually apply changes to jenkins controller instance
@param context Fully configured Jenkins object used as the starting point for this configuration.
@throws ConfiguratorException something went wrong...
plugin/src/main/java/io/jenkins/plugins/casc/BaseConfigurator.java