docs: @TimedResource
      @GET
      @Path("/availableAddons")
      @Produces(APPLICATION_JSON)
      @ApiOperation(value = "Retrieve available add-ons for a given product", response = PlanDetailJson.class, responseContainer = "List")
      @ApiResponses(value = {})
      public Response getAvailableAddons(@QueryParam("baseProductName") final String baseProductName,
                                         @Nullable @QueryParam("priceListName") final String priceListName,
                                         @QueryParam(QUERY_ACCOUNT_ID) final UUID accountId,
                                         @javax.ws.rs.core.Context final HttpServletRequest request) throws CatalogApiException {
  
          final TenantContext tenantContext = accountId != null ?
                                              context.createTenantContextWithAccountId(accountId, request) :
                                              context.createTenantContextNoAccountId(request);
  
          final StaticCatalog catalog = catalogUserApi.getCurrentCatalog(catalogName, tenantContext);
          final List<Listing> listings = catalog.getAvailableAddOnListings(baseProductName, priceListName);
          final List<PlanDetailJson> details = new ArrayList<PlanDetailJson>();
          for (final Listing listing : listings) {
              details.add(new PlanDetailJson(listing));
          }
          return Response.status(Status.OK).entity(details).build();
      }