code: public ServiceFuture<List<PoolNodeCounts>> listPoolNodeCountsAsync(final AccountListPoolNodeCountsOptions accountListPoolNodeCountsOptions, final ListOperationCallback<PoolNodeCounts> serviceCallback) {
          return AzureServiceFuture.fromHeaderPageResponse(
              listPoolNodeCountsSinglePageAsync(accountListPoolNodeCountsOptions),
              new Func1<String, Observable<ServiceResponseWithHeaders<Page<PoolNodeCounts>, AccountListPoolNodeCountsHeaders>>>() {
                  @Override
                  public Observable<ServiceResponseWithHeaders<Page<PoolNodeCounts>, AccountListPoolNodeCountsHeaders>> call(String nextPageLink) {
                      AccountListPoolNodeCountsNextOptions accountListPoolNodeCountsNextOptions = null;
                      if (accountListPoolNodeCountsOptions != null) {
                          accountListPoolNodeCountsNextOptions = new AccountListPoolNodeCountsNextOptions();
                          accountListPoolNodeCountsNextOptions.withClientRequestId(accountListPoolNodeCountsOptions.clientRequestId());
                          accountListPoolNodeCountsNextOptions.withReturnClientRequestId(accountListPoolNodeCountsOptions.returnClientRequestId());
                          accountListPoolNodeCountsNextOptions.withOcpDate(accountListPoolNodeCountsOptions.ocpDate());
                      }
                      return listPoolNodeCountsNextSinglePageAsync(nextPageLink, accountListPoolNodeCountsNextOptions);
                  }
              },
              serviceCallback);
      }
docs: Gets the number of nodes in each state, grouped by pool.
  
  @param accountListPoolNodeCountsOptions Additional parameters for the operation
  @param serviceCallback the async ServiceCallback to handle successful and failed responses.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceFuture} object