class PrivateIdProvider {

    public Long getFirstValidPrivateId(Set<InstanceGroup> instanceGroups) {
        LOGGER.debug("Get first valid PrivateId of instanceGroups");
        long id = instanceGroups.stream()
                .flatMap(ig -> ig.getAllInstanceMetaData().stream())
                .filter(im -> im.getPrivateId() != null)
                .map(InstanceMetaData::getPrivateId)
                .map(i -> i + 1)
                .max(Long::compare)
                .orElse(0L);
        LOGGER.debug("First valid privateId: {}", id);
        return id;
    }

}