<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.workspaces.html">workspaces</a></h1>
<h2>Instance Methods</h2>
<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 workspace. Returns NOT_FOUND if the workspace does not exist.</p>
<p class="toc_element">
  <code><a href="#list">list(pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists workspaces 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 workspace. Returns NOT_FOUND if the workspace does not exist.

Args:
  name: string, Required. The name of the workspace to retrieve. Format: workspaces/{workspace} (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 workspace.
    &quot;tables&quot;: [ # The list of tables in the workspace.
      { # A single table.
        &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the 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;name&quot;: &quot;A String&quot;, # Display string as entered by user.
                &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the item.
              },
            ],
            &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;relationshipColumnId&quot;: &quot;A String&quot;, # The id of the relationship column.
              &quot;relationshipColumn&quot;: &quot;A String&quot;, # The name of the relationship column associated with the lookup.
            },
            &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;name&quot;: &quot;A String&quot;, # column name
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
      },
    ],
    &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the workspace.
    &quot;name&quot;: &quot;A String&quot;, # The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.
  }</pre>
</div>

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

Args:
  pageToken: string, A page token, received from a previous `ListWorkspaces` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkspaces` must match the call that provided the page token.
  pageSize: integer, The maximum number of workspaces to return. The service may return fewer than this value. If unspecified, at most 10 workspaces are returned. The maximum value is 25; values above 25 are coerced to 25.
  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.ListWorkspaces.
    &quot;workspaces&quot;: [ # The list of workspaces.
      { # A single workspace.
        &quot;tables&quot;: [ # The list of tables in the workspace.
          { # A single table.
            &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the 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;name&quot;: &quot;A String&quot;, # Display string as entered by user.
                    &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the item.
                  },
                ],
                &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;relationshipColumnId&quot;: &quot;A String&quot;, # The id of the relationship column.
                  &quot;relationshipColumn&quot;: &quot;A String&quot;, # The name of the relationship column associated with the lookup.
                },
                &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;name&quot;: &quot;A String&quot;, # column name
              },
            ],
            &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
          },
        ],
        &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the workspace.
        &quot;name&quot;: &quot;A String&quot;, # The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.
      },
    ],
    &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.
  }</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>