docs: protected Collection<Asset> getFilteredAssets(Collection<ResourceType> types, Collection<String> productIds, Visibility visibility, Collection<String> productVersions,
                                                    boolean unboundedMaxVersion) throws IOException, RequestFailureException {
          Map<FilterableAttribute, Collection<String>> filters = new HashMap<FilterableAttribute, Collection<String>>();
          if (types != null && !types.isEmpty()) {
              Collection<String> typeValues = new HashSet<String>();
              for (ResourceType type : types) {
                  typeValues.add(type.getValue());
              }
              filters.put(FilterableAttribute.TYPE, typeValues);
          }
          filters.put(FilterableAttribute.PRODUCT_ID, productIds);
          if (visibility != null) {
              filters.put(FilterableAttribute.VISIBILITY, Collections.singleton(visibility.toString()));
          }
          filters.put(FilterableAttribute.PRODUCT_MIN_VERSION, productVersions);
  
          if (unboundedMaxVersion) {
              filters.put(FilterableAttribute.PRODUCT_HAS_MAX_VERSION, Collections.singleton(Boolean.FALSE.toString()));
          }
          return getFilteredAssets(filters);
      }