> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Drive Table

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

<ComponentMetadata warehouses={["Google BigQuery"]} componentType="Connectors, Orchestration" connectionInputs="One" connectionOutputs="Unlimited" />

Google Drive Table is an orchestration component that creates a table that references data stored in Google Drive. The component supports Google Sheets, CSV, and newline-delimited JSON formats.

Your instance must have access to the Google Drive data, meaning the Google Cloud credentials used must be from an account that has the right to at least view the data. New to Google Drive? Read [Introduction to the Google Drive API](https://developers.google.com/drive/api/guides/about-sdk).

<Warning>
  Your Google Cloud credentials must have the Google Drive API enabled.
</Warning>

***

## Properties

<ResponseField name="Name" type="string" required>
  A human-readable name for the component.
</ResponseField>

{/* <!-- param-start:[createMethod] | warehouses: [bigquery] --> */}

<ResponseField name="Create method" type="drop-down" required>
  Select one of:

  * **Create:** (default). Creates a new table.
  * **Create If Not Exists:** Only creates a new table if a table of the same name does **not** already exist.
  * **Replace:** Drops any existing table of the same name, and then creates a new table.
</ResponseField>

{/* <!-- param-start:[gcpProjectId] | warehouses: [bigquery] --> */}

<ResponseField name="GCP project ID" type="drop-down" required>
  The Google Cloud project that owns the BigQuery dataset. The special value `[Environment Default]` uses the Google Cloud project defined in the environment. For more information, read [Creating projects](https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects).
</ResponseField>

{/* <!-- param-start:[dataset] | warehouses: [bigquery] --> */}

<ResponseField name="Dataset" type="drop-down" required>
  The Google BigQuery dataset where the table will be created or updated. The special value `[Environment Default]` uses the dataset defined in the environment.
</ResponseField>

{/* <!-- param-start:[table] | warehouses: [bigquery] --> */}

<ResponseField name="Table" type="string" required>
  A name for the table.
</ResponseField>

{/* <!-- param-start:[driveUrl] | warehouses: [bigquery] --> */}

<ResponseField name="Drive URL" type="string" required>
  The URL of the Google Drive file. The accepted URL formats are as follows:

  * `https://docs.google.com/spreadsheets/d/FILE_ID`
  * `https://drive.google.com/open?id=FILE_ID`

  For more information, read [Retrieve Drive URIs](https://docs.cloud.google.com/bigquery/docs/external-data-drive#drive-uri).
</ResponseField>

{/* <!-- param-start:[columns] | warehouses: [bigquery] --> */}

<ResponseField name="Columns" type="column editor" required>
  * **Name:** The name of the new column.
  * **Data type:** The [Google BigQuery data type](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types) for the column.
  * **Mode:** The field mode. Can be **NULLABLE**, **REQUIRED**, or **REPEATED**. The default is **NULLABLE**.
  * **Comment:** Enter a comment to store against the column.

  Toggle **Text mode** on at the bottom of the dialog to open a multi-line editor that lets you add items in a single block. For more information, read [Text mode](/docs/guides/components-overview#text-mode).

  To use grid variables, toggle **Use Grid Variable** on. For more information, read [Grid variables](/docs/guides/grid-variables).
</ResponseField>

{/* <!-- param-start:[fileFormat] | warehouses: [bigquery] --> */}

<ResponseField name="File format" type="drop-down" required>
  Select the format of the source file:

  * **CSV**
  * **JSON (New line delimited)**
  * **Google Sheets**
</ResponseField>

The following properties depend on the **File format** you select.

<Tabs>
  <Tab title="CSV">
    <ResponseField name="Compression" type="drop-down" required>
      Whether the input file is compressed in gzip format or not compressed at all. Select **NONE** or **GZIP**. The default is set to **NONE**.
    </ResponseField>

    {/* <!-- param-start:[maxErrors] | warehouses: [bigquery] --> */}

    <ResponseField name="Maximum errors" type="integer" required>
      The maximum number of individual parsing errors that cause the whole load to fail. The default is **0**.
    </ResponseField>

    {/* <!-- param-start:[ignoreUnknownValues] | warehouses: [bigquery] --> */}

    <ResponseField name="Ignore unknown values" type="boolean" required>
      * **Yes:** Accept rows that contain values that do not match the schema.
      * **No:** Omit any rows with invalid values.
    </ResponseField>

    {/* <!-- param-start:[delimiter] | warehouses: [bigquery] --> */}

    <ResponseField name="Delimiter" type="string" required>
      The delimiter that separates columns. The default is a comma `,`.
    </ResponseField>

    {/* <!-- param-start:[csvQuoter] | warehouses: [bigquery] --> */}

    <ResponseField name="CSV quoter" type="string">
      The character to be used as the quote character when using the CSV option.
    </ResponseField>

    {/* <!-- param-start:[encoding] | warehouses: [bigquery] --> */}

    <ResponseField name="Encoding" type="drop-down" required>
      The encoding the data is in. This defaults to UTF-8.
    </ResponseField>

    {/* <!-- param-start:[skipLeadingRows] | warehouses: [bigquery] --> */}

    <ResponseField name="Skip leading rows" type="integer" required>
      The number of rows at the top of the file to ignore. The default is **0**.
    </ResponseField>

    {/* <!-- param-start:[quotedNewlines] | warehouses: [bigquery] --> */}

    <ResponseField name="Allow quote new lines" type="boolean" required>
      * **Yes:** Allow a CSV value to contain a newline character.
      * **No:** A newline character is always considered a new row.
    </ResponseField>

    {/* <!-- param-start:[jaggedRows] | warehouses: [bigquery] --> */}

    <ResponseField name="Allow jagged rows" type="boolean" required>
      * **Yes:** Missing values are treated as NULL but accepted.
      * **No:** Rows with missing data are treated as bad records.
    </ResponseField>
  </Tab>

  <Tab title="JSON (New line delimited)">
    <ResponseField name="Compression" type="drop-down" required>
      Whether the input file is compressed in gzip format or not compressed at all. Select **NONE** or **GZIP**. The default is set to **NONE**.
    </ResponseField>

    {/* <!-- param-start:[maxErrors] | warehouses: [bigquery] --> */}

    <ResponseField name="Maximum errors" type="integer" required>
      The maximum number of individual parsing errors that cause the whole load to fail. The default is **0**.
    </ResponseField>

    {/* <!-- param-start:[ignoreUnknownValues] | warehouses: [bigquery] --> */}

    <ResponseField name="Ignore unknown values" type="boolean" required>
      * **Yes:** Accept rows that contain values that do not match the schema.
      * **No:** Omit any rows with invalid values.
    </ResponseField>
  </Tab>

  <Tab title="Google Sheets">
    <ResponseField name="Maximum errors" type="integer" required>
      The maximum number of individual parsing errors that cause the whole load to fail. The default is **0**.
    </ResponseField>

    {/* <!-- param-start:[ignoreUnknownValues] | warehouses: [bigquery] --> */}

    <ResponseField name="Ignore unknown values" type="boolean" required>
      * **Yes:** Accept rows that contain values that do not match the schema.
      * **No:** Omit any rows with invalid values.
    </ResponseField>

    {/* <!-- param-start:[skipLeadingRows] | warehouses: [bigquery] --> */}

    <ResponseField name="Skip leading rows" type="integer" required>
      The number of rows at the top of the file to ignore. The default is **0**.
    </ResponseField>
  </Tab>
</Tabs>
