code: public CertificateDetail withKeyUsages(KeyUsage... keyUsages) {
          if (this.keyUsages == null) {
              setKeyUsages(new java.util.ArrayList<KeyUsage>(keyUsages.length));
          }
          for (KeyUsage ele : keyUsages) {
              this.keyUsages.add(ele);
          }
          return this;
      }
docs: <p>
  A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the
  public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT,
  NON_REPUDIATION, and more.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setKeyUsages(java.util.Collection)} or {@link #withKeyUsages(java.util.Collection)} if you want to
  override the existing values.
  </p>
  
  @param keyUsages
  A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose
  of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE,
  KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.
  @return Returns a reference to this object so that method calls can be chained together.