> ## 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.

# Zero Copy Clone

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={["Snowflake"]} unsupportedWarehouses={["Databricks", "Amazon Redshift", "BigQuery"]} componentType="Test" connectionInputs="One" connectionOutputs="Unlimited" />

The **Zero Copy Clone** test component creates a clone of a specified Snowflake object using Snowflake's zero-copy cloning feature. A zero-copy clone creates an instant copy of a source object without duplicating the underlying data. Additional storage is only consumed if the cloned object is modified.

<Note>
  This component is only available in [Tests](/docs/components/test-pipelines).
</Note>

***

## Properties

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

    {/* <!-- param-start:[cloneObjectType] | warehouses: [snowflake] --> */}

    <ResponseField name="Clone object type" type="drop-down" required>
      The type of Snowflake object to clone. Supports **Schema** and **Table**.
    </ResponseField>

    {/* <!-- param-start:[sourceDatabase] | warehouses: [snowflake] --> */}

    <ResponseField name="Source database" type="drop-down" required>
      The Snowflake database that contains the object to clone. The special value `[Environment Default]` uses the database defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.
    </ResponseField>

    {/* <!-- param-start:[sourceSchema] | warehouses: [snowflake] --> */}

    <ResponseField name="Source schema" type="drop-down" required>
      The Snowflake schema to clone. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.
    </ResponseField>

    {/* <!-- param-start:[sourceTable] | warehouses: [snowflake] --> */}

    <ResponseField name="Source table" type="drop-down" required>
      The Snowflake table to clone.

      Available when `Clone object type` is set to **Table**.
    </ResponseField>

    {/* <!-- param-start:[targetDatabase] | warehouses: [snowflake] --> */}

    <ResponseField name="Target database" type="drop-down" required>
      The Snowflake database where the cloned object will be created. The special value `[Environment Default]` uses the database defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.
    </ResponseField>

    {/* <!-- param-start:[targetSchemaName] | warehouses: [snowflake] --> */}

    <ResponseField name="Target schema name" type="string" required>
      The name of the new cloned schema.

      Available when `Clone object type` is set to **Schema**.
    </ResponseField>

    {/* <!-- param-start:[targetSchema] | warehouses: [snowflake] --> */}

    <ResponseField name="Target schema" type="drop-down" required>
      The Snowflake schema where the cloned object will be created. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database) to learn more.

      Available when `Clone object type` is set to **Table**.
    </ResponseField>

    {/* <!-- param-start:[targetTableName] | warehouses: [snowflake] --> */}

    <ResponseField name="Target table name" type="string" required>
      The name for the new cloned table.

      Available when `Clone object type` is set to **Table**.
    </ResponseField>

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

    <ResponseField name="Create Method" type="drop-down" required>
      Choose how to create a target object.

      Select one of the following options:

      * **Create:** This is the default option. It creates a new schema, and will cause an error if a schema with the same name already exists. Existing data will not be affected.
      * **Create If Not Exists:** This option creates a new schema when a schema of the same name does not already exist. This option will not destroy existing data.
      * **Replace:** If a schema with the name you specify in the `Target schema name` property already exists, the existing schema is replaced by a new schema when the pipeline finishes. Any data from the existing schema (to be replaced) will be lost.
    </ResponseField>
  </Tab>
</Tabs>
