code: public Observable<ImagesModel> searchAsync(String query, SearchOptionalParameter searchOptionalParameter) {
          return searchWithServiceResponseAsync(query, searchOptionalParameter).map(new Func1<ServiceResponse<ImagesModel>, ImagesModel>() {
              @Override
              public ImagesModel call(ServiceResponse<ImagesModel> response) {
                  return response.body();
              }
          });
      }
docs: The Image Search API lets you send a search query to Bing and get back a list of relevant images. This section provides technical details about the query parameters and headers that you use to request images and the JSON response objects that contain them. For examples that show how to make requests, see [Searching the Web for Images](https://docs.microsoft.com/azure/cognitive-services/bing-image-search/search-the-web).
  
  @param query The user's search query term. The term cannot be empty. The term may contain [Bing Advanced Operators](http://msdn.microsoft.com/library/ff795620.aspx). For example, to limit images to a specific domain, use the [site:](http://msdn.microsoft.com/library/ff795613.aspx) operator. To help improve relevance of an insights query (see [insightsToken](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#insightstoken)), you should always include the user's query term. Use this parameter only with the Image Search API.Do not specify this parameter when calling the Trending Images API.
  @param searchOptionalParameter the object representing the optional parameters to be set before calling this API
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the ImagesModel object