public Observable<ServiceResponse<MatchResponse>> matchUrlInputWithServiceResponseAsync(String contentType, BodyModelModel imageUrl, String listId, Boolean cacheImage) {
        if (this.client.baseUrl() == null) {
            throw new IllegalArgumentException("Parameter this.client.baseUrl() is required and cannot be null.");
        }
        if (contentType == null) {
            throw new IllegalArgumentException("Parameter contentType is required and cannot be null.");
        }
        if (imageUrl == null) {
            throw new IllegalArgumentException("Parameter imageUrl is required and cannot be null.");
        }
        Validator.validate(imageUrl);
        String parameterizedHost = Joiner.on(", ").join("{baseUrl}", this.client.baseUrl());
        return service.matchUrlInput(listId, cacheImage, contentType, imageUrl, this.client.acceptLanguage(), parameterizedHost, this.client.userAgent())
            .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<MatchResponse>>>() {
                @Override
                public Observable<ServiceResponse<MatchResponse>> call(Response<ResponseBody> response) {
                    try {
                        ServiceResponse<MatchResponse> clientResponse = matchUrlInputDelegate(response);
                        return Observable.just(clientResponse);
                    } catch (Throwable t) {
                        return Observable.error(t);
                    }
                }
            });
    }
public Observable < ServiceResponse < MatchResponse > > matchUrlInputWithServiceResponseAsync ( String contentType , BodyModelModel imageUrl , String listId , Boolean cacheImage ) { if ( this . client . baseUrl ( ) == null ) { throw new IllegalArgumentException ( "Parameter this.client.baseUrl() is required and cannot be null." ) ; } if ( contentType == null ) { throw new IllegalArgumentException ( "Parameter contentType is required and cannot be null." ) ; } if ( imageUrl == null ) { throw new IllegalArgumentException ( "Parameter imageUrl is required and cannot be null." ) ; } Validator . validate ( imageUrl ) ; String parameterizedHost = Joiner . on ( ", " ) . join ( "{baseUrl}" , this . client . baseUrl ( ) ) ; return service . matchUrlInput ( listId , cacheImage , contentType , imageUrl , this . client . acceptLanguage ( ) , parameterizedHost , this . client . userAgent ( ) ) . flatMap ( new Func1 < Response < ResponseBody > , Observable < ServiceResponse < MatchResponse > > > ( ) { @ Override public Observable < ServiceResponse < MatchResponse > > call ( Response < ResponseBody > response ) { try { ServiceResponse < MatchResponse > clientResponse = matchUrlInputDelegate ( response ) ; return Observable . just ( clientResponse ) ; } catch ( Throwable t ) { return Observable . error ( t ) ; } } } ) ; }
Fuzzily match an image against one of your custom Image Lists. You can create and manage your custom image lists using &lt;a href="/docs/services/578ff44d2703741568569ab9/operations/578ff7b12703741568569abe"&gt;this&lt;/a&gt; API.
Returns ID and tags of matching image.&lt;br/&gt;
&lt;br/&gt;
Note: Refresh Index must be run on the corresponding Image List before additions and removals are reflected in the response.

@param contentType The content type.
@param imageUrl The image url.
@param listId The list Id.
@param cacheImage Whether to retain the submitted image for future use; defaults to false if omitted.
@throws IllegalArgumentException thrown if parameters fail the validation
@return the observable to the MatchResponse object