code: public ServiceFuture<List<KeyItem>> getKeyVersionsAsync(final String vaultBaseUrl, final String keyName, final ListOperationCallback<KeyItem> serviceCallback) {
          return AzureServiceFuture.fromPageResponse(
              getKeyVersionsSinglePageAsync(vaultBaseUrl, keyName),
              new Func1<String, Observable<ServiceResponse<Page<KeyItem>>>>() {
                  @Override
                  public Observable<ServiceResponse<Page<KeyItem>>> call(String nextPageLink) {
                      return getKeyVersionsNextSinglePageAsync(nextPageLink);
                  }
              },
              serviceCallback);
      }
docs: Retrieves a list of individual key versions with the same key name.
  The full key identifier, attributes, and tags are provided in the response. This operation requires the keys/list permission.
  
  @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.
  @param keyName The name of the key.
  @param serviceCallback the async ServiceCallback to handle successful and failed responses.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceFuture} object