docs: private <T> Single<PollingState<T>> pollPostOrDeleteSingleAsync(final PollingState<T> pollingState, final Type resourceType) {
          pollingState.withResourceType(resourceType);
          pollingState.withSerializerAdapter(restClient().serializerAdapter());
          if (pollingState.isStatusTerminal()) {
              if (pollingState.resourcePending()) {
                  return updateStateFromLocationHeaderOnPostOrDeleteAsync(pollingState).toSingle();
              }
              return Single.just(pollingState);
          }
          return postOrDeletePollingDispatcher(pollingState)
                  .map(new Func1<PollingState<T>, PollingState<T>>() {
                      @Override
                      public PollingState<T> call(PollingState<T> tPollingState) {
                          tPollingState.throwCloudExceptionIfInFailedState();
                          return tPollingState;
                      }
                  })
                  .flatMap(new Func1<PollingState<T>, Observable<PollingState<T>>>() {
                      @Override
                      public Observable<PollingState<T>> call(PollingState<T> tPollingState) {
                          if (pollingState.resourcePending()) {
                              return updateStateFromLocationHeaderOnPostOrDeleteAsync(pollingState);
                          }
                          return Observable.just(pollingState);
                      }
                  })
                  .toSingle();
      }