code: public SearchResponse getSearch(List<String> categories, String search, String acceptLanguage, String datasource,
              String ifNoneMatch, String language, Boolean strict) throws ApiException {
          ApiResponse<SearchResponse> resp = getSearchWithHttpInfo(categories, search, acceptLanguage, datasource,
                  ifNoneMatch, language, strict);
          return resp.getData();
      }
docs: Search on a string Search for entities that match a given sub-string. ---
  This route is cached for up to 3600 seconds SSO Scope:
  esi-search.search_structures.v1
  
  @param categories
  Type of entities to search for (required)
  @param search
  The string to search on (required)
  @param acceptLanguage
  Language to use in the response (optional, default to en-us)
  @param datasource
  The server name you would like data from (optional, default to
  tranquility)
  @param ifNoneMatch
  ETag from a previous request. A 304 will be returned if this
  matches the current ETag (optional)
  @param language
  Language to use in the response, takes precedence over
  Accept-Language (optional, default to en-us)
  @param strict
  Whether the search should be a strict match (optional, default
  to false)
  @return SearchResponse
  @throws ApiException
  If fail to call the API, e.g. server error or cannot
  deserialize the response body