code: public Observable<ServiceResponse<CertificateBundle>> mergeCertificateWithServiceResponseAsync(String vaultBaseUrl, String certificateName, List<byte[]> x509Certificates) {
          if (vaultBaseUrl == null) {
              throw new IllegalArgumentException("Parameter vaultBaseUrl is required and cannot be null.");
          }
          if (certificateName == null) {
              throw new IllegalArgumentException("Parameter certificateName is required and cannot be null.");
          }
          if (this.apiVersion() == null) {
              throw new IllegalArgumentException("Parameter this.apiVersion() is required and cannot be null.");
          }
          if (x509Certificates == null) {
              throw new IllegalArgumentException("Parameter x509Certificates is required and cannot be null.");
          }
          Validator.validate(x509Certificates);
          final CertificateAttributes certificateAttributes = null;
          final Map<String, String> tags = null;
          CertificateMergeParameters parameters = new CertificateMergeParameters();
          parameters.withX509Certificates(x509Certificates);
          parameters.withCertificateAttributes(null);
          parameters.withTags(null);
          String parameterizedHost = Joiner.on(", ").join("{vaultBaseUrl}", vaultBaseUrl);
          return service.mergeCertificate(certificateName, this.apiVersion(), this.acceptLanguage(), parameters, parameterizedHost, this.userAgent())
              .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<CertificateBundle>>>() {
                  @Override
                  public Observable<ServiceResponse<CertificateBundle>> call(Response<ResponseBody> response) {
                      try {
                          ServiceResponse<CertificateBundle> clientResponse = mergeCertificateDelegate(response);
                          return Observable.just(clientResponse);
                      } catch (Throwable t) {
                          return Observable.error(t);
                      }
                  }
              });
      }
docs: Merges a certificate or a certificate chain with a key pair existing on the server.
  The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.
  
  @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.
  @param certificateName The name of the certificate.
  @param x509Certificates The certificate or the certificate chain to merge.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the CertificateBundle object