code: @Override
      public Stream<GroupMetadata> findLazy(GroupFilter groupCriteria) {
          checkNotNull(groupCriteria, "Criteria must be not null");
  
          return
              groupCriteria.applyFindLazy(criteria -> {
                  if (isAlwaysTruePredicate(criteria.getPredicate()) &&
                      isAlwaysTruePredicate(criteria.getDataCenterFilter().getPredicate()) &&
                      criteria.getIds().size() > 0) {
                      return
                          criteria.getIds().stream()
                              .map(nullable(curId -> client.getGroup(curId, true)))
                              .filter(notNull());
                  } else {
                      Stream<DataCenterMetadata> dataCenters =
                          dataCenterService
                              .findLazy(criteria.getDataCenterFilter());
  
                      return
                          dataCenters
                              .map(d -> client.getGroup(d.getGroup().getId(), true))
                              .flatMap(g -> g.getAllGroups().stream())
                              .filter(criteria.getPredicate())
                              .filter((criteria.getIds().size() > 0) ?
                                      combine(GroupMetadata::getId, in(criteria.getIds())) : alwaysTrue()
                              );
                  }
              });
      }
docs: {@inheritDoc}