code: public Observable<ServiceResponse<Page<CertificateItem>>> getCertificateVersionsWithServiceResponseAsync(final String vaultBaseUrl, final String certificateName) {
          return getCertificateVersionsSinglePageAsync(vaultBaseUrl, certificateName)
              .concatMap(new Func1<ServiceResponse<Page<CertificateItem>>, Observable<ServiceResponse<Page<CertificateItem>>>>() {
                  @Override
                  public Observable<ServiceResponse<Page<CertificateItem>>> call(ServiceResponse<Page<CertificateItem>> page) {
                      String nextPageLink = page.body().nextPageLink();
                      if (nextPageLink == null) {
                          return Observable.just(page);
                      }
                      return Observable.just(page).concatWith(getCertificateVersionsNextWithServiceResponseAsync(nextPageLink));
                  }
              });
      }
docs: List the versions of a certificate.
  The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.
  
  @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.
  @param certificateName The name of the certificate.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the PagedList&lt;CertificateItem&gt; object