code: public Root withPolicyTypes(PolicyTypeSummary... policyTypes) {
          if (this.policyTypes == null) {
              setPolicyTypes(new java.util.ArrayList<PolicyTypeSummary>(policyTypes.length));
          }
          for (PolicyTypeSummary ele : policyTypes) {
              this.policyTypes.add(ele);
          }
          return this;
      }
docs: <p>
  The types of policies that are currently enabled for the root and therefore can be attached to the root or to its
  OUs or accounts.
  </p>
  <note>
  <p>
  Even if a policy type is shown as available in the organization, you can separately enable and disable them at
  the root level by using <a>EnablePolicyType</a> and <a>DisablePolicyType</a>. Use <a>DescribeOrganization</a> to
  see the availability of the policy types in that organization.
  </p>
  </note>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setPolicyTypes(java.util.Collection)} or {@link #withPolicyTypes(java.util.Collection)} if you want to
  override the existing values.
  </p>
  
  @param policyTypes
  The types of policies that are currently enabled for the root and therefore can be attached to the root or
  to its OUs or accounts.</p> <note>
  <p>
  Even if a policy type is shown as available in the organization, you can separately enable and disable
  them at the root level by using <a>EnablePolicyType</a> and <a>DisablePolicyType</a>. Use
  <a>DescribeOrganization</a> to see the availability of the policy types in that organization.
  </p>
  @return Returns a reference to this object so that method calls can be chained together.