docs: @Override
      public List<Asset> findAssets(String searchString, Collection<ResourceType> types) throws IOException, RequestFailureException {
  
          String encodedSearchString = URLEncoder.encode(searchString, "UTF-8");
  
          StringBuffer url = new StringBuffer("/assets?q=" + encodedSearchString);
          if (types != null && !types.isEmpty()) {
              Collection<String> typeValues = new HashSet<String>();
              for (ResourceType type : types) {
                  typeValues.add(type.getValue());
              }
              url.append("&" + createListFilter(FilterableAttribute.TYPE, typeValues));
          }
  
          // Call massive to run the query
          HttpURLConnection connection = createHttpURLConnectionToMassive(url.toString());
          connection.setRequestMethod("GET");
          testResponseCode(connection);
          InputStream is = connection.getInputStream();
  
          // take the returned input stream and convert it to assets
          List<Asset> assets = JSONAssetConverter.readValues(is);
          return assets;
      }