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

# Create Stream

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="Orchestration" connectionInputs="One" connectionOutputs="Unlimited" />

Creates a new [Snowflake Stream](https://docs.snowflake.com/en/user-guide/streams) in the specified schema and table. This component can optionally replace an existing stream of the same name.

<Warning>
  Depending on the chosen settings, this component is potentially destructive. Take care when running this component as it may remove existing data.
</Warning>

***

## Properties

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

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

<ResponseField name="Create/Replace" type="drop-down" required>
  Select the method of creating or replacing the stream:

  * **Create:** The default option, creates a new stream. This will generate an error if a stream with the same name already exists.
  * **Create if not exists:** This will only create a new stream if a stream of the same name does not already exist.
  * **Replace:** This destroys any existing stream of the same name, and then creates a new stream.
</ResponseField>

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

<ResponseField name="Database" type="drop-down" required>
  The Snowflake database that the stream is in. 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.html) to learn more.
</ResponseField>

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

<ResponseField name="Schema" type="drop-down" required>
  The Snowflake schema that the stream is in. 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.html) to learn more.
</ResponseField>

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

<ResponseField name="Stream Name" type="string" required>
  The name of the stream. If this is a new stream, it must be a unique name. If you are replacing an existing stream, use the exact name of the stream you are replacing.
</ResponseField>

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

<ResponseField name="Table Database" type="drop-down" required>
  The Snowflake database that will hold the source schema and source table. 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.html) to learn more.
</ResponseField>

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

<ResponseField name="Table Schema" type="drop-down" required>
  The Snowflake schema that will hold the source table. 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.html) to learn more.
</ResponseField>

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

<ResponseField name="Table" type="drop-down" required>
  The table to create the stream for (the source table).
</ResponseField>

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

<ResponseField name="Append Only" type="drop-down" required>
  By default, a standard stream records all inserts, updates, and deletes. An append-only stream tracks row inserts only; updates and deletes are not recorded. Using an append-only stream will give improved performance over a standard stream, and therefore is recommended if you only need to track appends.

  To set the stream to be append only, select True. Otherwise, leave this property set to False (the default).
</ResponseField>
