docs: public <T> Single<PollingState<T>> beginPutOrPatchAsync(Observable<Response<ResponseBody>> observable, final Type resourceType) {
          return observable.map(new Func1<Response<ResponseBody>, PollingState<T>>() {
              @Override
              public PollingState<T> call(Response<ResponseBody> response) {
                  RuntimeException exception = createExceptionFromResponse(response, 200, 201, 202);
                  if (exception != null) {
                      throw  exception;
                  }
                  try {
                      final PollingState<T> pollingState = PollingState.create(response, LongRunningOperationOptions.DEFAULT, longRunningOperationRetryTimeout(), resourceType, restClient().serializerAdapter());
                      pollingState.withPollingUrlFromResponse(response);
                      pollingState.withPollingRetryTimeoutFromResponse(response);
                      pollingState.withPutOrPatchResourceUri(response.raw().request().url().toString());
                      return pollingState;
                  } catch (IOException ioException) {
                      throw Exceptions.propagate(ioException);
                  }
              }
          }).toSingle();
      }