<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="area120tables_v1alpha1.html">Area120 Tables API</a> . <a href="area120tables_v1alpha1.tables.html">tables</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="area120tables_v1alpha1.tables.rows.html">rows()</a></code>
</p>
<p class="firstline">Returns the rows Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a table. Returns NOT_FOUND if the table does not exist.</p>
<p class="toc_element">
  <code><a href="#list">list(pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists tables for the user.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets a table. Returns NOT_FOUND if the table does not exist.

Args:
  name: string, Required. The name of the table to retrieve. Format: tables/{table} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A single table.
  &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
    { # Details on a column in the table.
      &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
      &quot;id&quot;: &quot;A String&quot;, # Internal id for a column.
      &quot;labels&quot;: [ # Optional. Range of labeled values for the column. Some columns like tags and drop-downs limit the values to a set of possible values. We return the range of values in such cases to help clients implement better user data validation.
        { # A single item in a labeled column.
          &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the item.
          &quot;name&quot;: &quot;A String&quot;, # Display string as entered by user.
        },
      ],
      &quot;lookupDetails&quot;: { # Details about a lookup column whose value comes from the associated relationship. # Optional. Indicates that this is a lookup column whose value is derived from the relationship column specified in the details. Lookup columns can not be updated directly. To change the value you must update the associated relationship column.
        &quot;relationshipColumn&quot;: &quot;A String&quot;, # The name of the relationship column associated with the lookup.
        &quot;relationshipColumnId&quot;: &quot;A String&quot;, # The id of the relationship column.
      },
      &quot;name&quot;: &quot;A String&quot;, # column name
      &quot;relationshipDetails&quot;: { # Details about a relationship column. # Optional. Additional details about a relationship column. Specified when data_type is relationship.
        &quot;linkedTable&quot;: &quot;A String&quot;, # The name of the table this relationship is linked to.
      },
    },
  ],
  &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
  &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists tables for the user.

Args:
  pageSize: integer, The maximum number of tables to return. The service may return fewer than this value. If unspecified, at most 20 tables are returned. The maximum value is 100; values above 100 are coerced to 100.
  pageToken: string, A page token, received from a previous `ListTables` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTables` must match the call that provided the page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for TablesService.ListTables.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.
  &quot;tables&quot;: [ # The list of tables.
    { # A single table.
      &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
        { # Details on a column in the table.
          &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
          &quot;id&quot;: &quot;A String&quot;, # Internal id for a column.
          &quot;labels&quot;: [ # Optional. Range of labeled values for the column. Some columns like tags and drop-downs limit the values to a set of possible values. We return the range of values in such cases to help clients implement better user data validation.
            { # A single item in a labeled column.
              &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the item.
              &quot;name&quot;: &quot;A String&quot;, # Display string as entered by user.
            },
          ],
          &quot;lookupDetails&quot;: { # Details about a lookup column whose value comes from the associated relationship. # Optional. Indicates that this is a lookup column whose value is derived from the relationship column specified in the details. Lookup columns can not be updated directly. To change the value you must update the associated relationship column.
            &quot;relationshipColumn&quot;: &quot;A String&quot;, # The name of the relationship column associated with the lookup.
            &quot;relationshipColumnId&quot;: &quot;A String&quot;, # The id of the relationship column.
          },
          &quot;name&quot;: &quot;A String&quot;, # column name
          &quot;relationshipDetails&quot;: { # Details about a relationship column. # Optional. Additional details about a relationship column. Specified when data_type is relationship.
            &quot;linkedTable&quot;: &quot;A String&quot;, # The name of the table this relationship is linked to.
          },
        },
      ],
      &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
      &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>