code: public StartDocumentAnalysisRequest withFeatureTypes(FeatureType... featureTypes) {
          java.util.ArrayList<String> featureTypesCopy = new java.util.ArrayList<String>(featureTypes.length);
          for (FeatureType value : featureTypes) {
              featureTypesCopy.add(value.toString());
          }
          if (getFeatureTypes() == null) {
              setFeatureTypes(featureTypesCopy);
          } else {
              getFeatureTypes().addAll(featureTypesCopy);
          }
          return this;
      }
docs: <p>
  A list of the types of analysis to perform. Add TABLES to the list to return information about the tables that
  are detected in the input document. Add FORMS to return detected fields and the associated text. To perform both
  types of analysis, add TABLES and FORMS to <code>FeatureTypes</code>. All selectable elements (
  <code>SELECTION_ELEMENT</code>) that are detected are returned, whatever the value of <code>FeatureTypes</code>.
  </p>
  
  @param featureTypes
  A list of the types of analysis to perform. Add TABLES to the list to return information about the tables
  that are detected in the input document. Add FORMS to return detected fields and the associated text. To
  perform both types of analysis, add TABLES and FORMS to <code>FeatureTypes</code>. All selectable elements
  (<code>SELECTION_ELEMENT</code>) that are detected are returned, whatever the value of
  <code>FeatureTypes</code>.
  @return Returns a reference to this object so that method calls can be chained together.
  @see FeatureType