code: public EndpointConfiguration withTypes(EndpointType... types) {
          java.util.ArrayList<String> typesCopy = new java.util.ArrayList<String>(types.length);
          for (EndpointType value : types) {
              typesCopy.add(value.toString());
          }
          if (getTypes() == null) {
              setTypes(typesCopy);
          } else {
              getTypes().addAll(typesCopy);
          }
          return this;
      }
docs: <p>
  A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an
  edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and
  its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is
  <code>PRIVATE</code>.
  </p>
  
  @param types
  A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an
  edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional
  API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the
  endpoint type is <code>PRIVATE</code>.
  @return Returns a reference to this object so that method calls can be chained together.
  @see EndpointType