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

# Set Input Output Topics



## OpenAPI

````yaml /openapi/openapi.json put /transforms/{transforms_id}/set-input-output-topics/{topic_pattern}/{java_replacement_pattern}
openapi: 3.1.0
info:
  title: Streamkap REST API
  description: >-
    The Streamkap REST API allows you to programmatically manage your CDC
    pipelines, sources, destinations, transforms, and more.


    Authenticate using a bearer token obtained from the [Access
    Token](/api-reference/auth/access-token) endpoint with your API client
    credentials.
  contact:
    name: Streamkap Support
    url: https://streamkap.com/
    email: support@streamkap.com
  license:
    name: Proprietary
  version: 2.0.0
servers:
  - url: https://api.streamkap.com
    description: Production
security: []
tags:
  - name: Alerts
    description: Manage alert subscribers, preferences, and notification credentials.
  - name: Authentication
    description: Obtain and refresh access tokens, manage client credentials and roles.
  - name: Billing
    description: Retrieve usage metrics, summaries, and export billing data.
  - name: Consumer Groups
    description: List, inspect, and reset Kafka consumer group offsets.
  - name: Dashboard
    description: Retrieve organisation-level statistics and overview data.
  - name: Destinations
    description: Create, configure, and manage data destinations and their lifecycle.
  - name: Kafka Access
    description: Manage Kafka users and their access permissions.
  - name: Logs
    description: Query and summarise system logs.
  - name: Pipelines
    description: Create, configure, and manage CDC pipelines and their lifecycle.
  - name: Project Keys
    description: Manage project keys that bundle API credentials and optional Kafka access.
  - name: Schema Registry
    description: Browse schema subjects, versions, and retrieve schema definitions.
  - name: Services
    description: View and switch service metadata.
  - name: Sources
    description: >-
      Create, configure, and manage data sources, snapshots, and their
      lifecycle.
  - name: Tags
    description: Create, update, and manage resource tags for organisation.
  - name: Topics
    description: Browse topic details, statistics, configurations, metrics, and messages.
  - name: Transforms
    description: >-
      Create, deploy, and manage data transforms, unit tests, and implementation
      details.
paths:
  /transforms/{transforms_id}/set-input-output-topics/{topic_pattern}/{java_replacement_pattern}:
    put:
      tags:
        - Transforms
      summary: Set Input Output Topics
      operationId: setTransformInputOutputTopics
      parameters:
        - name: transforms_id
          in: path
          required: true
          schema:
            type: string
            title: Transforms Id
        - name: topic_pattern
          in: path
          required: true
          schema:
            type: string
            title: Topic Pattern
        - name: java_replacement_pattern
          in: path
          required: true
          schema:
            type: string
            title: Java Replacement Pattern
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullTransformEntity'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - FronteggHTTPAuthentication: []
components:
  schemas:
    FullTransformEntity:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        sub_id:
          type: string
          title: Sub Id
        tenant_id:
          type: string
          title: Tenant Id
        service_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Service Id
        start_time:
          anyOf:
            - type: string
            - type: string
              format: date-time
            - type: 'null'
          title: Start Time
        job_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Name
        topic_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: string
            - type: 'null'
          title: Topic Ids
        transform_type:
          $ref: '#/components/schemas/TransformsLibraryEnum'
        config:
          anyOf:
            - $ref: '#/components/schemas/TransformConfig'
            - $ref: '#/components/schemas/TransformsEnrichAsyncConfig'
            - type: 'null'
          title: Config
        implementation:
          anyOf:
            - $ref: '#/components/schemas/TransformsMapFilterImplementation'
            - $ref: '#/components/schemas/TransformsEnrichImplementation'
            - $ref: '#/components/schemas/TransformsEnrichAsyncImplementation'
            - $ref: '#/components/schemas/TransformsJoinImplementation'
            - $ref: '#/components/schemas/TransformsRollupImplementation'
            - $ref: '#/components/schemas/TransformsTopicRouterImplementation'
            - type: 'null'
          title: Implementation
        metrics:
          anyOf:
            - $ref: '#/components/schemas/TransformMetric'
            - type: 'null'
        live_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Live Version
        preview_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Preview Version
        version:
          type: integer
          title: Version
          default: 1
        updated_timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated Timestamp
        implementation_updated_timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Implementation Updated Timestamp
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
          description: List of tag IDs assigned to this transform
        history_created_timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: History Created Timestamp
        history_updated_timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: History Updated Timestamp
      additionalProperties: true
      type: object
      required:
        - id
        - name
        - sub_id
        - tenant_id
        - transform_type
      title: FullTransformEntity
      description: Basic transform details.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    TransformsLibraryEnum:
      type: string
      enum:
        - fan_out
        - sql_join
        - enrich
        - enrich_async
        - map_filter
        - toast_handling
        - un_nesting
        - rollup
        - topic_router
      title: TransformsLibraryEnum
    TransformConfig:
      properties:
        transforms.name:
          type: string
          title: Transforms.Name
        transforms.language:
          anyOf:
            - type: string
            - type: 'null'
          title: Transforms.Language
        transforms.input.topic.pattern:
          type: string
          title: Transforms.Input.Topic.Pattern
        transforms.output.topic.pattern:
          type: string
          title: Transforms.Output.Topic.Pattern
        transforms.input.serialization.format:
          $ref: '#/components/schemas/TransformSerializationFormatEnum'
        transforms.output.serialization.format:
          $ref: '#/components/schemas/TransformSerializationFormatEnum'
        transforms.input.job.parallelism:
          type: integer
          title: Transforms.Input.Job.Parallelism
          default: 5
        transforms.topic.ttl:
          anyOf:
            - type: string
            - type: 'null'
          title: Transforms.Topic.Ttl
        kc.cluster.id:
          anyOf:
            - type: string
            - type: 'null'
          title: Kc.Cluster.Id
      additionalProperties: true
      type: object
      required:
        - transforms.name
        - transforms.input.topic.pattern
        - transforms.output.topic.pattern
        - transforms.input.serialization.format
        - transforms.output.serialization.format
      title: TransformConfig
    TransformsEnrichAsyncConfig:
      properties:
        transforms.name:
          type: string
          title: Transforms.Name
        transforms.language:
          anyOf:
            - type: string
            - type: 'null'
          title: Transforms.Language
        transforms.input.topic.pattern:
          type: string
          title: Transforms.Input.Topic.Pattern
        transforms.output.topic.pattern:
          type: string
          title: Transforms.Output.Topic.Pattern
        transforms.input.serialization.format:
          $ref: '#/components/schemas/TransformSerializationFormatEnum'
        transforms.output.serialization.format:
          $ref: '#/components/schemas/TransformSerializationFormatEnum'
        transforms.input.job.parallelism:
          type: integer
          title: Transforms.Input.Job.Parallelism
          default: 5
        transforms.topic.ttl:
          anyOf:
            - type: string
            - type: 'null'
          title: Transforms.Topic.Ttl
        kc.cluster.id:
          anyOf:
            - type: string
            - type: 'null'
          title: Kc.Cluster.Id
        transforms.async.timeout.ms:
          type: integer
          title: Transforms.Async.Timeout.Ms
          default: 1000
        transforms.async.capacity:
          type: integer
          title: Transforms.Async.Capacity
          default: 10
      additionalProperties: true
      type: object
      required:
        - transforms.name
        - transforms.input.topic.pattern
        - transforms.output.topic.pattern
        - transforms.input.serialization.format
        - transforms.output.serialization.format
      title: TransformsEnrichAsyncConfig
    TransformsMapFilterImplementation:
      properties:
        language:
          $ref: '#/components/schemas/TransformLanguageEnum'
        value_transform:
          type: string
          title: Value Transform
        key_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Transform
        topic_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Topic Transform
        common_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Common Transform
        value_schema_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Value Schema Transform
        key_schema_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Schema Transform
        unit_test:
          anyOf:
            - $ref: '#/components/schemas/TransformsUnitTest'
            - type: 'null'
      additionalProperties: false
      type: object
      required:
        - language
        - value_transform
      title: TransformsMapFilterImplementation
    TransformsEnrichImplementation:
      properties:
        mainTable:
          $ref: '#/components/schemas/TransformInputTable'
        lookupTable:
          $ref: '#/components/schemas/TransformInputTable'
        enrichSQL:
          type: string
          title: Enrichsql
      additionalProperties: false
      type: object
      required:
        - mainTable
        - lookupTable
        - enrichSQL
      title: TransformsEnrichImplementation
    TransformsEnrichAsyncImplementation:
      properties:
        language:
          $ref: '#/components/schemas/TransformLanguageEnum'
        value_transform:
          type: string
          title: Value Transform
        key_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Transform
        topic_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Topic Transform
        common_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Common Transform
        value_schema_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Value Schema Transform
        key_schema_transform:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Schema Transform
        unit_test:
          anyOf:
            - $ref: '#/components/schemas/TransformsUnitTest'
            - type: 'null'
        async_timeout_ms:
          type: integer
          title: Async Timeout Ms
          default: 2000
        async_capacity:
          type: integer
          title: Async Capacity
          default: 10
      additionalProperties: false
      type: object
      required:
        - language
        - value_transform
      title: TransformsEnrichAsyncImplementation
    TransformsJoinImplementation:
      properties:
        inputTables:
          items:
            $ref: '#/components/schemas/TransformInputTable'
          type: array
          title: Inputtables
        joinSQL:
          type: string
          title: Joinsql
        keyFields:
          items:
            type: string
          type: array
          title: Keyfields
        stateTtlMs:
          anyOf:
            - type: string
            - type: 'null'
          title: Statettlms
      additionalProperties: false
      type: object
      required:
        - joinSQL
      title: TransformsJoinImplementation
    TransformsRollupImplementation:
      properties:
        inputTables:
          items:
            $ref: '#/components/schemas/TransformInputTable'
          type: array
          title: Inputtables
        rollupSQL:
          type: string
          title: Rollupsql
        keyFields:
          items:
            type: string
          type: array
          title: Keyfields
        sourceIdleTimeoutMs:
          type: integer
          title: Sourceidletimeoutms
          default: 30000
        stateTTLMs:
          type: integer
          title: Statettlms
          default: 86400000
      additionalProperties: false
      type: object
      required:
        - rollupSQL
      title: TransformsRollupImplementation
    TransformsTopicRouterImplementation:
      properties:
        topic_prefix:
          type: string
          title: Topic Prefix
          description: Deprecated — kept for backwards compat with existing DB records
          default: ''
        kc_cluster_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Kc Cluster Id
          description: KC cluster to deploy the connector to
      additionalProperties: false
      type: object
      title: TransformsTopicRouterImplementation
      description: >-
        Topic router transform — deployed as KC Kafka destination connector with
        byte passthrough.


        No Flink job. Uses ByteArrayConverter + RegexRouter SMT to rewrite

        topic names without deserializing message values.

        Input/output patterns come from transform.config
        (transforms.input.topic.pattern / transforms.output.topic.pattern).
    TransformMetric:
      properties:
        tasks:
          anyOf:
            - type: integer
            - type: 'null'
          title: Tasks
        latency:
          anyOf:
            - type: integer
            - type: 'null'
          title: Latency
        status:
          anyOf:
            - type: string
            - type: 'null'
          title: Status
        duration:
          anyOf:
            - type: integer
            - type: 'null'
          title: Duration
        start_time:
          anyOf:
            - type: integer
            - type: string
            - type: string
              format: date-time
            - type: 'null'
          title: Start Time
        end_time:
          anyOf:
            - type: string
            - type: string
              format: date-time
            - type: 'null'
          title: End Time
        checkpoints:
          anyOf:
            - $ref: '#/components/schemas/TransformCheckpointsInfo'
            - type: 'null'
      additionalProperties: true
      type: object
      title: TransformMetric
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    TransformSerializationFormatEnum:
      type: string
      enum:
        - Any
        - Json
        - Avro
      title: TransformSerializationFormatEnum
    TransformLanguageEnum:
      type: string
      enum:
        - PYTHON
        - JAVASCRIPT
        - SQL
      title: TransformLanguageEnum
    TransformsUnitTest:
      properties:
        test_name:
          type: string
          title: Test Name
        input__json:
          items:
            $ref: '#/components/schemas/TransformsImplementationDetailsTestRecord'
          type: array
          title: Input  Json
        output__json:
          items:
            $ref: '#/components/schemas/TransformsImplementationDetailsTestRecord'
          type: array
          title: Output  Json
        result__json:
          anyOf:
            - items:
                $ref: '#/components/schemas/TransformsImplementationDetailsTestRecord'
              type: array
            - type: 'null'
          title: Result  Json
        is_success:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Success
        html_diff:
          anyOf:
            - type: string
            - type: 'null'
          title: Html Diff
        text_diff:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Diff
      type: object
      required:
        - test_name
        - input__json
        - output__json
      title: TransformsUnitTest
    TransformInputTable:
      properties:
        name:
          type: string
          title: Name
        topicMatcherRegex:
          type: string
          title: Topicmatcherregex
        createTableSQL:
          anyOf:
            - type: string
            - type: 'null'
          title: Createtablesql
      additionalProperties: true
      type: object
      required:
        - name
        - topicMatcherRegex
      title: TransformInputTable
    TransformCheckpointsInfo:
      properties:
        job_id:
          type: string
          title: Job Id
        counts:
          additionalProperties: true
          type: object
          title: Counts
        summary:
          additionalProperties: true
          type: object
          title: Summary
        latest:
          anyOf:
            - $ref: '#/components/schemas/TransformCheckpointHistory'
            - type: 'null'
        history:
          items:
            $ref: '#/components/schemas/TransformCheckpointHistory'
          type: array
          title: History
          default: []
        operator_breakdown:
          items:
            $ref: '#/components/schemas/TransformOperatorState'
          type: array
          title: Operator Breakdown
          default: []
      additionalProperties: true
      type: object
      required:
        - job_id
        - counts
        - summary
      title: TransformCheckpointsInfo
      description: Checkpoint statistics and latest checkpoint information for a transform.
    TransformsImplementationDetailsTestRecord:
      properties:
        topic:
          type: string
          title: Topic
        value:
          additionalProperties: true
          type: object
          title: Value
        key:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Key
        timestamp:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Timestamp
      type: object
      required:
        - topic
        - value
      title: TransformsImplementationDetailsTestRecord
    TransformCheckpointHistory:
      properties:
        id:
          type: integer
          title: Id
        status:
          type: string
          title: Status
        is_savepoint:
          type: boolean
          title: Is Savepoint
        trigger_timestamp:
          type: integer
          title: Trigger Timestamp
        latest_ack_timestamp:
          type: integer
          title: Latest Ack Timestamp
        state_size:
          type: integer
          title: State Size
        end_to_end_duration:
          type: integer
          title: End To End Duration
        alignment_buffered:
          type: integer
          title: Alignment Buffered
        num_subtasks:
          type: integer
          title: Num Subtasks
        num_acknowledged_subtasks:
          type: integer
          title: Num Acknowledged Subtasks
      additionalProperties: true
      type: object
      required:
        - id
        - status
        - is_savepoint
        - trigger_timestamp
        - latest_ack_timestamp
        - state_size
        - end_to_end_duration
        - alignment_buffered
        - num_subtasks
        - num_acknowledged_subtasks
      title: TransformCheckpointHistory
      description: Individual checkpoint history entry.
    TransformOperatorState:
      properties:
        operator_id:
          type: string
          title: Operator Id
        operator_name:
          type: string
          title: Operator Name
        state_size:
          type: integer
          title: State Size
        checkpointed_size:
          type: integer
          title: Checkpointed Size
        end_to_end_duration:
          type: integer
          title: End To End Duration
        parallelism:
          type: integer
          title: Parallelism
      additionalProperties: true
      type: object
      required:
        - operator_id
        - operator_name
        - state_size
        - checkpointed_size
        - end_to_end_duration
        - parallelism
      title: TransformOperatorState
      description: Per-operator state size breakdown.
  securitySchemes:
    FronteggHTTPAuthentication:
      type: http
      scheme: bearer

````