code: public CorsRule withAllowedHeaders(String... allowedHeaders) {
          if (this.allowedHeaders == null) {
              setAllowedHeaders(new java.util.ArrayList<String>(allowedHeaders.length));
          }
          for (String ele : allowedHeaders) {
              this.allowedHeaders.add(ele);
          }
          return this;
      }
docs: <p>
  Specifies which headers are allowed in a preflight <code>OPTIONS</code> request through the
  <code>Access-Control-Request-Headers</code> header. Each header name that is specified in
  <code>Access-Control-Request-Headers</code> must have a corresponding entry in the rule. Only the headers that
  were requested are sent back.
  </p>
  <p>
  This element can contain only one wildcard character (*).
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setAllowedHeaders(java.util.Collection)} or {@link #withAllowedHeaders(java.util.Collection)} if you want
  to override the existing values.
  </p>
  
  @param allowedHeaders
  Specifies which headers are allowed in a preflight <code>OPTIONS</code> request through the
  <code>Access-Control-Request-Headers</code> header. Each header name that is specified in
  <code>Access-Control-Request-Headers</code> must have a corresponding entry in the rule. Only the headers
  that were requested are sent back. </p>
  <p>
  This element can contain only one wildcard character (*).
  @return Returns a reference to this object so that method calls can be chained together.