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;
}