code: public ServiceFuture<List<PoolUsageMetrics>> listUsageMetricsAsync(final PoolListUsageMetricsOptions poolListUsageMetricsOptions, final ListOperationCallback<PoolUsageMetrics> serviceCallback) {
          return AzureServiceFuture.fromHeaderPageResponse(
              listUsageMetricsSinglePageAsync(poolListUsageMetricsOptions),
              new Func1<String, Observable<ServiceResponseWithHeaders<Page<PoolUsageMetrics>, PoolListUsageMetricsHeaders>>>() {
                  @Override
                  public Observable<ServiceResponseWithHeaders<Page<PoolUsageMetrics>, PoolListUsageMetricsHeaders>> call(String nextPageLink) {
                      PoolListUsageMetricsNextOptions poolListUsageMetricsNextOptions = null;
                      if (poolListUsageMetricsOptions != null) {
                          poolListUsageMetricsNextOptions = new PoolListUsageMetricsNextOptions();
                          poolListUsageMetricsNextOptions.withClientRequestId(poolListUsageMetricsOptions.clientRequestId());
                          poolListUsageMetricsNextOptions.withReturnClientRequestId(poolListUsageMetricsOptions.returnClientRequestId());
                          poolListUsageMetricsNextOptions.withOcpDate(poolListUsageMetricsOptions.ocpDate());
                      }
                      return listUsageMetricsNextSinglePageAsync(nextPageLink, poolListUsageMetricsNextOptions);
                  }
              },
              serviceCallback);
      }
docs: Lists the usage metrics, aggregated by pool across individual time intervals, for the specified account.
  If you do not specify a $filter clause including a poolId, the response includes all pools that existed in the account in the time range of the returned aggregation intervals. If you do not specify a $filter clause including a startTime or endTime these filters default to the start and end times of the last aggregation interval currently available; that is, only the last aggregation interval is returned.
  
  @param poolListUsageMetricsOptions 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