code: public Observable<ServiceResponse<ImageKnowledge>> visualSearchWithServiceResponseAsync(VisualSearchOptionalParameter visualSearchOptionalParameter) {
          final String acceptLanguage = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.acceptLanguage() : null;
          final String contentType = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.contentType() : null;
          final String userAgent = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.userAgent() : this.client.userAgent();
          final String clientId = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.clientId() : null;
          final String clientIp = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.clientIp() : null;
          final String location = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.location() : null;
          final String knowledgeRequest = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.knowledgeRequest() : null;
          final byte[] image = visualSearchOptionalParameter != null ? visualSearchOptionalParameter.image() : new byte[0];
  
          return visualSearchWithServiceResponseAsync(acceptLanguage, contentType, userAgent, clientId, clientIp, location, knowledgeRequest, image);
      }
docs: Visual Search API lets you discover insights about an image such as visually similar images, shopping sources, and related searches. The API can also perform text recognition, identify entities (people, places, things), return other topical content for the user to explore, and more. For more information, see [Visual Search Overview](https://docs.microsoft.com/azure/cognitive-services/bing-visual-search/overview).
  
  @param visualSearchOptionalParameter 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 ImageKnowledge object