code: public Observable<ServiceResponseWithHeaders<Page<CloudPool>, PoolListHeaders>> listWithServiceResponseAsync(final PoolListOptions poolListOptions) {
          return listSinglePageAsync(poolListOptions)
              .concatMap(new Func1<ServiceResponseWithHeaders<Page<CloudPool>, PoolListHeaders>, Observable<ServiceResponseWithHeaders<Page<CloudPool>, PoolListHeaders>>>() {
                  @Override
                  public Observable<ServiceResponseWithHeaders<Page<CloudPool>, PoolListHeaders>> call(ServiceResponseWithHeaders<Page<CloudPool>, PoolListHeaders> page) {
                      String nextPageLink = page.body().nextPageLink();
                      if (nextPageLink == null) {
                          return Observable.just(page);
                      }
                      PoolListNextOptions poolListNextOptions = null;
                      if (poolListOptions != null) {
                          poolListNextOptions = new PoolListNextOptions();
                          poolListNextOptions.withClientRequestId(poolListOptions.clientRequestId());
                          poolListNextOptions.withReturnClientRequestId(poolListOptions.returnClientRequestId());
                          poolListNextOptions.withOcpDate(poolListOptions.ocpDate());
                      }
                      return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink, poolListNextOptions));
                  }
              });
      }
docs: Lists all of the pools in the specified account.
  
  @param poolListOptions Additional parameters for the operation
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the PagedList&lt;CloudPool&gt; object