code: public <T> Single<PollingState<T>> pollSingleAsync(final PollingState<T> pollingState, final Type resourceType) {
          if (pollingState.initialHttpMethod().equalsIgnoreCase("PUT")
                  || pollingState.initialHttpMethod().equalsIgnoreCase("PATCH")) {
              return this.pollPutOrPatchSingleAsync(pollingState, resourceType);
          }
          if (pollingState.initialHttpMethod().equalsIgnoreCase("POST")
                  || pollingState.initialHttpMethod().equalsIgnoreCase("DELETE")) {
              return this.pollPostOrDeleteSingleAsync(pollingState, resourceType);
          }
          throw new IllegalArgumentException("PollingState contains unsupported http method:" + pollingState.initialHttpMethod());
      }
docs: Given a polling state representing state of a LRO operation, this method returns {@link Single} object,
  when subscribed to it, a single poll will be performed and emits the latest polling state. A poll will be
  performed only if the current polling state is not in terminal state.
  
  Note: this method does not implicitly introduce concurrency, by default the deferred action will be executed
  in scheduler (if any) set for the provided observable.
  
  @param pollingState the current polling state
  @param <T> the type of the resource
  @param resourceType the java.lang.reflect.Type of the resource.
  @return the observable of which a subscription will lead single polling action.