code: public <T, THeader> ServiceResponseWithHeaders<T, THeader> getPostOrDeleteResultWithHeaders(Observable<Response<ResponseBody>> observable, Type resourceType, Class<THeader> headerType) throws CloudException, InterruptedException, IOException {
          ServiceResponse<T> bodyResponse = getPostOrDeleteResult(observable, resourceType);
          return new ServiceResponseWithHeaders<>(
                  bodyResponse.body(),
                  restClient().serializerAdapter().<THeader>deserialize(restClient().serializerAdapter().serialize(bodyResponse.response().headers()), headerType),
                  bodyResponse.response()
          );
      }
docs: Handles an initial response from a POST or DELETE operation response by polling
  the status of the operation until the long running operation terminates.
  
  @param observable  the initial observable from the POST or DELETE operation.
  @param resourceType the java.lang.reflect.Type of the resource.
  @param headerType the type of the response header
  @param <T>       the return type of the caller
  @param <THeader> the type of the response header
  @return          the terminal response for the operation.
  @throws CloudException REST exception
  @throws InterruptedException interrupted exception
  @throws IOException thrown by deserialization