protected static Collection getOptionsToInclude()

in aws-rds-optiongroup/src/main/java/software/amazon/rds/optiongroup/UpdateHandler.java [113:146]


    protected static Collection<OptionConfiguration> getOptionsToInclude(
            final Collection<OptionConfiguration> previousOptions,
            final Collection<OptionConfiguration> desiredOptions
    ) {
        final Optional<OptionConfiguration> previousApexOption = findApexOptionConfiguration(previousOptions);
        final Optional<OptionConfiguration> desiredApexOption = findApexOptionConfiguration(desiredOptions);

        Set<OptionConfiguration> optionsToInclude = new HashSet<>(desiredOptions);

        if (previousApexOption.isPresent() && desiredApexOption.isPresent()) {
            if (isOptionVersionDowngrade(previousApexOption.get(), desiredApexOption.get())) {
                optionsToInclude = optionsToInclude
                        .stream()
                        .filter(Objects::nonNull)
                        .map(option -> {
                            if (isApexOptionConfiguration(option)) {
                                return OptionConfiguration.builder()
                                        .dBSecurityGroupMemberships(option.getDBSecurityGroupMemberships())
                                        .optionName(option.getOptionName())
                                        .optionSettings(option.getOptionSettings())
                                        .optionVersion(previousApexOption.get().getOptionVersion())
                                        .port(option.getPort())
                                        .vpcSecurityGroupMemberships(option.getVpcSecurityGroupMemberships())
                                        .build();
                            }
                            return option;
                        })
                        .collect(Collectors.toSet());
            }
        }
        optionsToInclude.removeAll(previousOptions);

        return optionsToInclude;
    }