code: public TableDescription withAttributeDefinitions(AttributeDefinition... attributeDefinitions) {
          if (this.attributeDefinitions == null) {
              setAttributeDefinitions(new java.util.ArrayList<AttributeDefinition>(attributeDefinitions.length));
          }
          for (AttributeDefinition ele : attributeDefinitions) {
              this.attributeDefinitions.add(ele);
          }
          return this;
      }
docs: <p>
  An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table
  and index key schema.
  </p>
  <p>
  Each <code>AttributeDefinition</code> object in this array is composed of:
  </p>
  <ul>
  <li>
  <p>
  <code>AttributeName</code> - The name of the attribute.
  </p>
  </li>
  <li>
  <p>
  <code>AttributeType</code> - The data type for the attribute.
  </p>
  </li>
  </ul>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setAttributeDefinitions(java.util.Collection)} or {@link #withAttributeDefinitions(java.util.Collection)}
  if you want to override the existing values.
  </p>
  
  @param attributeDefinitions
  An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the
  table and index key schema.</p>
  <p>
  Each <code>AttributeDefinition</code> object in this array is composed of:
  </p>
  <ul>
  <li>
  <p>
  <code>AttributeName</code> - The name of the attribute.
  </p>
  </li>
  <li>
  <p>
  <code>AttributeType</code> - The data type for the attribute.
  </p>
  </li>
  @return Returns a reference to this object so that method calls can be chained together.