---
title: "Update a streaming pipeline definition"
method: PUT
path: "/v1/projects/{projectId}/streaming-pipelines/{streamingPipelineId}"
tags: ["Streaming Pipelines"]
---

# Update a streaming pipeline definition

`PUT /v1/projects/{projectId}/streaming-pipelines/{streamingPipelineId}`

Updates an existing streaming pipeline definition in the account and project

## Path parameters

- `projectId` string, uuid, required
- `streamingPipelineId` string, uuid, required

## Request body

- StreamingPipelineDefinitionUpdateRequest
  - `advancedProperties` object — Any additional properties for the streaming pipeline
  - `agentId` string, uuid, required — The ID of the agent that will run the streaming pipeline
  - `name` string, required — The name of the streaming pipeline
  - `streamingSource` union, required — The details of the streaming source
    - StreamingDb2IbmISource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingDb2IbmIConnection, required
        - `host` string, required — The host address of the DB2 IBMi database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the DB2 IBMi database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the DB2 IBMi database
        - `username` string, required — The username of the account used to connect to the DB2 IBMi database
      - `tables` StreamingTable[], required — The list of tables to be captured from the DB2 IBMi database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingMySqlSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingMySqlConnection, required
        - `host` string, required — The host address of the MySQL database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the MySQL database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the MySQL database
        - `username` string, required — The username of the account used to connect to the MySQL database
      - `tables` StreamingTable[], required — The list of tables to be captured from the MySQL database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingOracleSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingOracleConnection, required
        - `database` string, required — The name of the Oracle database
        - `host` string, required — The host address of the Oracle database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Oracle database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `pdb` string — The name of the Oracle pluggable database
        - `port` integer, required — The port number of the Oracle database
        - `username` string, required — The username of the account used to connect to the Oracle database
      - `tables` StreamingTable[], required — The list of tables to be captured from the Oracle database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingPostgresSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingPostgresConnection, required
        - `database` string, required — The name of the Postgres database
        - `host` string, required — The host address of the Postgres database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Postgres database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the Postgres database
        - `username` string, required — The username of the account used to connect to the Postgres database
      - `tables` StreamingTable[], required — The list of tables to be captured from the Postgres database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingSqlServerSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingSqlServerConnection, required
        - `database` string, required — The name of the SQL Server database
        - `host` string, required — The host address of the SQL Server database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the SQL Server database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the SQL Server database
        - `username` string, required — The username of the account used to connect to the SQL Server database
      - `tables` StreamingTable[], required — The list of tables to be captured from the SQL Server database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
  - `streamingTarget` union, required — The details of the streaming target
    - StreamingAbsTarget
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `accountKey` StreamingSecretReference, required
        - `secretKey` string — The key of the secret
        - `secretLocation` string — The location of the secret
        - `secretName` string, required — The name of the secret
        - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
      - `accountName` string, required — The ABS account name to store the Avro data files
      - `container` string, required — The name of the ABS container to store the Avro data files
      - `decimalMapping` 'LEGACY' | 'LOGICAL' — Determines the way decimal data is written in the Avro data files. If you are using the Redshift pre-built pipeline, you MUST use LOGICAL
      - `prefix` string — The name of the prefix to use when storing the Avro data files
    - StreamingS3Target
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `bucket` string, required — The name of the S3 bucket to store the Avro data files
      - `decimalMapping` 'LEGACY' | 'LOGICAL' — Determines the way decimal data is written in the Avro data files. If you are using the Redshift pre-built pipeline, you MUST use LOGICAL
      - `prefix` string — The name of the prefix to use when storing the Avro data files
    - StreamingSnowflakeTarget
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `connection` StreamingSnowflakeConnection, required
        - `accountName` string, required — The account name for the Snowflake connection
        - `authentication` union, required — The authentication details for the Snowflake connection
          - StreamingKeyPairAuthentication
            - `type` string, required
            - `passphrase` StreamingSecretReference
              - …
            - `privateKey` StreamingSecretReference, required
              - …
          - StreamingPasswordAuthentication
            - `type` string, required
            - `password` StreamingSecretReference, required
              - …
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Snowflake database
        - `username` string, required — The username for the Snowflake connection
      - `database` string, required — The database to use when connecting to the Snowflake instance
      - `role` string, required — The role to use when connecting to the Snowflake database
      - `stageName` string, required — The name of the stage to use to store the Avro data files in the Snowflake database
      - `stagePrefix` string — The prefix of the stage to use to store the Avro data files in the Snowflake database
      - `stageSchema` string, required — The schema that contains the stage to use to store the Avro data files in the Snowflake database
      - `tablePrefixType` 'SOURCE_DATABASE_AND_SCHEMA' | 'PREFIX' | 'NONE', required — Determines the naming convention of the tables created in the target database
      - `tableSchema` string, required — The schema in which to create the tables that will store the streamed data in the Snowflake database
      - `temporalMapping` 'NATIVE' | 'EPOCH' — Determines the way that datetime data is written into the target database
      - `transformationType` 'COPY_TABLE' | 'COPY_TABLE_SOFT_DELETE' | 'CHANGE_LOG', required — Determines the way the data is transformed into the target database
      - `warehouse` string, required — The warehouse to use when connecting to the Snowflake database

## Response `200`

Successfully updated the streaming pipeline definition

- StreamingPipelineDefinition
  - `advancedProperties` object — Any additional properties for the streaming pipeline
  - `agentId` string, uuid — The ID of the agent that will run the streaming pipeline
  - `name` string — The name of the streaming pipeline
  - `projectId` string, uuid — The ID of the project that contains the streaming pipeline definition
  - `streamingPipelineId` string, uuid — The ID of the streaming pipeline definition
  - `streamingSource` union — The details of the streaming source
    - StreamingDb2IbmISource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingDb2IbmIConnection, required
        - `host` string, required — The host address of the DB2 IBMi database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the DB2 IBMi database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the DB2 IBMi database
        - `username` string, required — The username of the account used to connect to the DB2 IBMi database
      - `tables` StreamingTable[], required — The list of tables to be captured from the DB2 IBMi database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingMySqlSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingMySqlConnection, required
        - `host` string, required — The host address of the MySQL database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the MySQL database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the MySQL database
        - `username` string, required — The username of the account used to connect to the MySQL database
      - `tables` StreamingTable[], required — The list of tables to be captured from the MySQL database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingOracleSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingOracleConnection, required
        - `database` string, required — The name of the Oracle database
        - `host` string, required — The host address of the Oracle database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Oracle database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `pdb` string — The name of the Oracle pluggable database
        - `port` integer, required — The port number of the Oracle database
        - `username` string, required — The username of the account used to connect to the Oracle database
      - `tables` StreamingTable[], required — The list of tables to be captured from the Oracle database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingPostgresSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingPostgresConnection, required
        - `database` string, required — The name of the Postgres database
        - `host` string, required — The host address of the Postgres database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Postgres database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the Postgres database
        - `username` string, required — The username of the account used to connect to the Postgres database
      - `tables` StreamingTable[], required — The list of tables to be captured from the Postgres database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
    - StreamingSqlServerSource
      - `type` 'db2ibmi' | 'mysql' | 'oracle' | 'postgres' | 'sqlserver' — The type of source for the streaming pipeline
      - `connection` StreamingSqlServerConnection, required
        - `database` string, required — The name of the SQL Server database
        - `host` string, required — The host address of the SQL Server database server
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the SQL Server database
        - `password` StreamingSecretReference, required
          - `secretKey` string — The key of the secret
          - `secretLocation` string — The location of the secret
          - `secretName` string, required — The name of the secret
          - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
        - `port` integer, required — The port number of the SQL Server database
        - `username` string, required — The username of the account used to connect to the SQL Server database
      - `tables` StreamingTable[], required — The list of tables to be captured from the SQL Server database
        - `schema` string, required — The name of the database schema
        - `table` string, required — The name of the database table
  - `streamingTarget` union — The details of the streaming target
    - StreamingAbsTarget
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `accountKey` StreamingSecretReference, required
        - `secretKey` string — The key of the secret
        - `secretLocation` string — The location of the secret
        - `secretName` string, required — The name of the secret
        - `secretType` 'AWS_SECRETS_MANAGER' | 'AZURE_KEY_VAULT' | 'GOOGLE_SECRET_MANAGER', required — The cloud service that hosts the secret
      - `accountName` string, required — The ABS account name to store the Avro data files
      - `container` string, required — The name of the ABS container to store the Avro data files
      - `decimalMapping` 'LEGACY' | 'LOGICAL' — Determines the way decimal data is written in the Avro data files. If you are using the Redshift pre-built pipeline, you MUST use LOGICAL
      - `prefix` string — The name of the prefix to use when storing the Avro data files
    - StreamingS3Target
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `bucket` string, required — The name of the S3 bucket to store the Avro data files
      - `decimalMapping` 'LEGACY' | 'LOGICAL' — Determines the way decimal data is written in the Avro data files. If you are using the Redshift pre-built pipeline, you MUST use LOGICAL
      - `prefix` string — The name of the prefix to use when storing the Avro data files
    - StreamingSnowflakeTarget
      - `type` 'abs' | 's3' | 'snowflake' — The type of target for the streaming pipeline
      - `connection` StreamingSnowflakeConnection, required
        - `accountName` string, required — The account name for the Snowflake connection
        - `authentication` union, required — The authentication details for the Snowflake connection
          - StreamingKeyPairAuthentication
            - `type` string, required
            - `passphrase` StreamingSecretReference
              - …
            - `privateKey` StreamingSecretReference, required
              - …
          - StreamingPasswordAuthentication
            - `type` string, required
            - `password` StreamingSecretReference, required
              - …
        - `jdbcProperties` object — Any JDBC connection properties to be used when connecting to the Snowflake database
        - `username` string, required — The username for the Snowflake connection
      - `database` string, required — The database to use when connecting to the Snowflake instance
      - `role` string, required — The role to use when connecting to the Snowflake database
      - `stageName` string, required — The name of the stage to use to store the Avro data files in the Snowflake database
      - `stagePrefix` string — The prefix of the stage to use to store the Avro data files in the Snowflake database
      - `stageSchema` string, required — The schema that contains the stage to use to store the Avro data files in the Snowflake database
      - `tablePrefixType` 'SOURCE_DATABASE_AND_SCHEMA' | 'PREFIX' | 'NONE', required — Determines the naming convention of the tables created in the target database
      - `tableSchema` string, required — The schema in which to create the tables that will store the streamed data in the Snowflake database
      - `temporalMapping` 'NATIVE' | 'EPOCH' — Determines the way that datetime data is written into the target database
      - `transformationType` 'COPY_TABLE' | 'COPY_TABLE_SOFT_DELETE' | 'CHANGE_LOG', required — Determines the way the data is transformed into the target database
      - `warehouse` string, required — The warehouse to use when connecting to the Snowflake database

## Other responses

- `400` — Bad Request
- `403` — Unauthorized
- `409` — Invalid streaming pipeline definition
- `500` — Unexpected error occurred

---

[API](https://skmtc.net/maia/apis/maia-public-rest-api.md) · [All operations](https://skmtc.net/maia/apis/maia-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia/maia-public-rest-api/versions/6239825f68eb/schema)
