code: public Observable<ServiceResponse<Void>> getLongRunningOperationStatusWithServiceResponseAsync(String operationStatusLink) {
          if (operationStatusLink == null) {
              throw new IllegalArgumentException("Parameter operationStatusLink is required and cannot be null.");
          }
          return service.getLongRunningOperationStatus(operationStatusLink, this.client.acceptLanguage(), this.client.userAgent())
              .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<Void>>>() {
                  @Override
                  public Observable<ServiceResponse<Void>> call(Response<ResponseBody> response) {
                      try {
                          ServiceResponse<Void> clientResponse = getLongRunningOperationStatusDelegate(response);
                          return Observable.just(clientResponse);
                      } catch (Throwable t) {
                          return Observable.error(t);
                      }
                  }
              });
      }
docs: The Get Operation Status operation returns the status of the specified operation. After calling an asynchronous operation, you can call Get Operation Status to determine whether the operation has succeeded, failed, or is still in progress.
  
  @param operationStatusLink Location value returned by the Begin operation.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceResponse} object if successful.