docs: @GET
      @Produces(MediaType.APPLICATION_JSON)
      public Response findInstallations(@PathParam("variantID") String variantId,
                                        @QueryParam("page") Integer page,
                                        @QueryParam("per_page") Integer pageSize,
                                        @QueryParam("search") String search,
                                        @Context UriInfo uri) {
          if (pageSize != null) {
              pageSize = Math.min(MAX_PAGE_SIZE, pageSize);
          } else {
              pageSize = DEFAULT_PAGE_SIZE;
          }
  
          if (page == null) {
              page = 0;
          }
  
          if (search == null || search.isEmpty()) {
              search = null;
          }
  
          //Find the variant using the variantID
          if (!searchManager.getSearchService().existsVariantIDForDeveloper(variantId)) {
              return Response.status(Response.Status.NOT_FOUND).entity("Could not find requested Variant").build();
          }
  
          //Find the installations using the variantID
          PageResult<Installation, Count> pageResult = searchManager.getSearchService().findAllInstallationsByVariantForDeveloper(variantId, page, pageSize, search);
  
          final long totalPages = pageResult.getAggregate().getCount() / pageSize;
          LinkHeader header = getLinkHeader(page, totalPages, uri);
  
          return Response.ok(pageResult.getResultList())
                  .header("Link", header.toString())
                  .header("total", pageResult.getAggregate().getCount())
                  .build();
      }