Weld ELT Syncs API

The ELT Syncs API from Weld — 8 operation(s) for elt syncs.

OpenAPI Specification

weld-elt-syncs-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Weld REST Connection Bridge ELT Syncs API
  description: With the Weld REST API you can programmatically control your syncs
  version: '0.1'
  contact: {}
servers:
- url: https://connect.weld.app
security:
- api_key: []
tags:
- name: ELT Syncs
paths:
  /elt_syncs/{id}/enable:
    post:
      description: Enables scheduling for the specified ELT Sync. It will be executed periodically based on its sync interval.
      operationId: EltSyncsOpenApiController_enableEltSync
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT Sync to enable.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '204':
          description: The ELT Sync has been successfully enabled.
      summary: Enable ELT Sync
      tags:
      - ELT Syncs
  /elt_syncs/{id}/disable:
    post:
      description: Disables scheduling for the specified ELT Sync. It will no longer be executed periodically.
      operationId: EltSyncsOpenApiController_disableEltSync
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT Sync to disable.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '204':
          description: The ELT Sync has been successfully disabled.
      summary: Disable ELT Sync
      tags:
      - ELT Syncs
  /elt_syncs:
    get:
      description: List all ELT Syncs in pages sorted by their creation date.
      operationId: EltSyncsOpenApiController_getEltSyncs
      parameters:
      - name: starting_after
        required: false
        in: query
        description: The cursor to use in pagination. Use the value of the `next_cursor` field from the response of a previous list request.
        schema:
          example: ewK8sDoLNI4CFR
          type: string
      - name: limit
        required: false
        in: query
        description: The number of items to return in a single page.
        schema:
          minimum: 1
          maximum: 100
          default: 10
          type: integer
      - name: connection_id
        required: false
        in: query
        description: Filter ELT Syncs by the associated Source Connection ID.
        schema:
          example: SrcCon_12345
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedEltSyncDto'
      summary: List ELT Syncs
      tags:
      - ELT Syncs
    post:
      operationId: EltSyncsOpenApiController_createEltSync
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EltSyncCreateRequestDto'
      responses:
        '201':
          description: The ELT Sync has been successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncDto'
        '409':
          description: The connection reached the maximum number of allowed syncs.
      summary: Create a new ELT Sync
      tags:
      - ELT Syncs
  /elt_syncs/{id}:
    post:
      operationId: EltSyncsOpenApiController_updateEltSync
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EltSyncUpdateRequestDto'
      responses:
        '200':
          description: The ELT Sync has been successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncDto'
      summary: Update an existing ELT Sync
      tags:
      - ELT Syncs
    get:
      description: Get data of a specific ELT sync.
      operationId: EltSyncsOpenApiController_getEltSync
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncDto'
        '404':
          description: ''
      summary: Get ELT Sync
      tags:
      - ELT Syncs
    delete:
      description: Delete a specific ELT sync. This will also delete all associated source streams.
      operationId: EltSyncsOpenApiController_deleteEltSync
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      - name: removeDataReferences
        required: false
        in: query
        description: If set to true, all tables created in the destination by this ELT sync will also be removed. Default is false.
        schema:
          example: 'true'
          type: string
      responses:
        '204':
          description: The ELT Sync has been successfully deleted.
      summary: Delete ELT sync
      tags:
      - ELT Syncs
  /elt_syncs/{id}/orchestration:
    post:
      description: Attaches this ELT sync to an Orchestration Workflow, so it runs as part of that workflow's runs instead of on its own schedule.
      operationId: EltSyncsOpenApiController_attachOrchestration
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EltSyncAttachOrchestrationRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncDto'
        '404':
          description: ELT sync or Orchestration Workflow not found.
      summary: Attach ELT sync to an orchestration
      tags:
      - ELT Syncs
    delete:
      description: Detaches this ELT sync from its Orchestration Workflow. Streams with their own sync_interval will resume running on it; streams without one will fall back to the sync_interval on the sync (defaulting to daily if none is set).
      operationId: EltSyncsOpenApiController_detachOrchestration
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncDto'
        '404':
          description: ELT sync not found.
      summary: Detach ELT sync from its orchestration
      tags:
      - ELT Syncs
  /elt_syncs/{id}/available_source_streams:
    get:
      description: List all streams that can be created for the given ELT sync.
      operationId: EltSyncsOpenApiController_getSourceStreams
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedAvailableEltStreamDto'
      summary: Get available streams for ELT sync
      tags:
      - ELT Syncs
  /elt_syncs/{id}/source_streams:
    post:
      description: Add source streams to the given ELT sync and return the newly created streams. This method will only add new streams and update existing streams
      operationId: EltSyncsOpenApiController_addSourceStreams
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EltSyncAddSourceStreamsRequestDto'
      responses:
        '201':
          description: The source streams have been successfully added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncAddSourceStreamsResponseDto'
        '400':
          description: ''
      summary: Add source streams to ELT sync
      tags:
      - ELT Syncs
  /elt_syncs/{id}/status:
    get:
      description: Get the current status of an ELT sync, including active and latest sync states for each source stream.
      operationId: EltSyncsOpenApiController_getEltSyncStatus
      parameters:
      - name: id
        required: true
        in: path
        description: The ID of the ELT sync.
        schema:
          example: X4ughggABSd3UY
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EltSyncStatusDto'
      summary: Get ELT Sync Status
      tags:
      - ELT Syncs
components:
  schemas:
    EltSyncAddSourceStreamsResponseDto:
      type: object
      properties:
        source_streams:
          description: The updated list of source streams for the ELT sync.
          type: array
          items:
            $ref: '#/components/schemas/EltStreamDto'
      required:
      - source_streams
    SourceStreamSnapshotStatesDto:
      type: object
      properties:
        name:
          type: string
          description: Name of the source stream
          example: users
        active_sync:
          description: Currently active sync if any
          allOf:
          - $ref: '#/components/schemas/SourceStreamSnapshotDto'
        latest_sync:
          description: Latest completed sync if any
          allOf:
          - $ref: '#/components/schemas/SourceStreamSnapshotDto'
      required:
      - name
    RetirementDetails:
      type: object
      properties:
        in_favor_of:
          type: string
          description: In favor of another stream that should be used instead
        removal_date:
          type: string
          description: Due date when stream will stop syncing
          format: ISO 8601 date string
        details:
          type: string
          description: Optional details of the retirement
        link:
          type: string
          description: Optional link to official documentation that describes the retirement and migration details
    EltSyncCreateRequestDto:
      type: object
      properties:
        connection_id:
          type: string
          description: The connection id.
        destination_schema_name:
          type: string
          description: The name of the destination schema that will contain the synced tables.
        elt_settings:
          type: object
          description: The ELT settings for a sync.
        sync_interval:
          type: string
          description: Cron expression for the elt sync schedule.
          example: 0 0 * * *
        start_date:
          type: string
          description: The earliest date from which data will be synced. Defaults to a predefined date if not set. Support varies by integration; see the supports_start_date field in the Integrations endpoint.
          format: YYYY-MM-DD
          example: '2020-01-01'
      required:
      - connection_id
      - destination_schema_name
      - sync_interval
    SourceStreamDto:
      type: object
      properties:
        name:
          type: string
          description: The name of the source stream.
        incremental_pointer_id:
          type: string
          description: Incremental pointer ID for the source stream.
        excluded_columns:
          description: Columns to exclude from the sync.
          type: array
          items:
            type: string
        hashed_columns:
          description: Columns to hash during the sync.
          type: array
          items:
            type: string
        full_sync_always:
          type: boolean
          description: Whether to always perform a full sync.
        full_sync_at_midnight:
          type: boolean
          description: Whether to perform a full sync at midnight.
        protected_from_full_sync:
          type: boolean
          description: Whether the stream is protected from full sync.
        excluded_substreams:
          description: Excluded substreams from syncing.
          example:
          - substream1
          - substream2
          type: array
          items:
            type: string
        enabled_history_table:
          type: boolean
          description: Whether history table(s) are enabled for this stream
          default: false
      required:
      - name
    EltSyncDto:
      type: object
      properties:
        account_id:
          type: string
          description: The Id of the Account.
          example: acc_789
        config:
          type: object
          description: The configuration for the ELT sync.
          example:
            sourceSettings: {}
        created_at:
          format: date-time
          type: string
          description: The datetime when the ELT Sync was created.
          example: '2020-01-01T00:00:00.000Z'
        destination_connection_id:
          type: string
          description: The Id of the Destination Connection.
          example: conn_456
        destination_integration_id:
          type: string
          description: The Id of the Destination Integration.
          example: bigquery
        destination_schema_name:
          type: string
          description: The name of the destination schema.
          example: my_schema
        enabled:
          type: boolean
          description: Whether the ELT sync is enabled and running on its schedule.
          example: true
        id:
          type: string
          description: The Id of the ELT Sync.
          example: OoORhGXUVjsqFG
        orchestration_workflow_id:
          type: string
          description: The Id of the Orchestration Workflow that the sync is attached to.
          example: 3LIw2FdxoByya9
        source_connection_id:
          type: string
          description: The Id of the Source Connection.
          example: conn_123
        source_integration_id:
          type: string
          description: The Id of the Source Integration.
          example: excel
        source_streams:
          description: The source streams that belong to this ELT sync.
          type: array
          items:
            $ref: '#/components/schemas/EltStreamDto'
        start_date:
          format: date-time
          type: string
          description: The date from when the sync should synchronize the data.
          example: '2020-01-01T00:00:00.000Z'
        status:
          type: string
          description: The status of the sync.
          example: RUNNING
          enum:
          - NOT_STARTED
          - RUNNING
          - FAILED
          - PAUSED
        sync_interval:
          type: string
          description: The cron expression when the sync should run. Provided if sync is not attached to an Orchestration.
          format: cron expression
          example: 0 0 * * *
        updated_at:
          format: date-time
          type: string
          description: The datetime when the ELT Sync was last updated.
          example: '2020-01-01T00:00:00.000Z'
      required:
      - account_id
      - created_at
      - destination_connection_id
      - destination_integration_id
      - enabled
      - id
      - source_connection_id
      - source_integration_id
      - status
      - updated_at
    EltSyncAddSourceStreamsRequestDto:
      type: object
      properties:
        source_streams:
          description: The source streams for the elt sync.
          type: array
          items:
            $ref: '#/components/schemas/SourceStreamDto'
    EltSyncAttachOrchestrationRequestDto:
      type: object
      properties:
        orchestration_workflow_id:
          type: string
          description: The ID of the Orchestration Workflow to attach this ELT sync to.
          example: 3LIw2FdxoByya9
      required:
      - orchestration_workflow_id
    SourceStreamSnapshotDto:
      type: object
      properties:
        bytes_synced:
          type: number
          description: Number of bytes synced
          example: 1024
        error_message:
          type: string
          description: Error message if any
          example: Connection timeout
        estimated_total_count:
          type: number
          description: Estimated total count of records
          example: 1000
        finished_at:
          type: string
          description: When the sync finished
          example: '2024-03-20T10:00:00Z'
        full_sync_trigger:
          enum:
          - ALWAYS_FULL
          - ERROR
          - INITIAL_SYNC
          - LOOKBACK
          - MIDNIGHT
          - MIGRATION
          - NONE
          - SCHEMA_CHANGE
          - USER
          type: string
          description: Full sync trigger type
        operation_mode:
          enum:
          - APPEND
          - FULL
          - INCREMENTAL
          type: string
          description: Operation mode
        records_synced:
          type: number
          description: Number of records synced
          example: 500
        retry_attempt:
          type: number
          description: Retry attempt number
          example: 0
        started_at:
          type: string
          description: When the sync started
          example: '2024-03-20T09:00:00Z'
        status:
          enum:
          - COMPLETED
          - DELAYED
          - FAILED
          - RETRYING
          - RUNNING
          - SCHEDULED
          type: string
          description: Sync status
        details:
          type: string
          description: Additional details
          example: Processing chunk 1/5
      required:
      - bytes_synced
    EltStreamDto:
      type: object
      properties:
        id:
          type: string
          description: The Id of the ELT Stream.
          example: SCTVdLAcyDTgNx
        elt_sync_id:
          type: string
          description: The Id of the ELT Sync that the ELT Stream belongs to.
          example: 3LIw2FdxoByya9
        name:
          type: string
          description: The name of the ELT Stream
          example: users
        incremental_primary_key_name:
          description: The name of the primary key field used for incremental sync. Most commonly used for database incremental syncs.
          example:
          - id
          type: array
          items:
            type: string
        incremental_pointer_id:
          type: string
          description: The name of the field used for incremental sync cursor.
          example: updated_at
        full_sync_at_midnight:
          type: boolean
          description: Indicates whether the full sync should be performed at midnight.
          example: false
        full_sync_always:
          type: boolean
          description: Indicates whether the full sync should always be performed.
          example: false
        protected_from_full_sync:
          type: boolean
          description: Indicates whether the stream is protected from full sync.
          example: false
        created_at:
          format: date-time
          type: string
          description: The datetime when the ELT Stream was created.
          example: '2020-01-01T00:00:00.000Z'
        updated_at:
          format: date-time
          type: string
          description: The datetime when the ELT Stream was last updated.
          example: '2020-01-01T00:00:00.000Z'
        excluded_substreams:
          description: Excluded substreams from syncing.
          example:
          - substream1
          - substream2
          type: array
          items:
            type: string
        enabled_history_table:
          type: boolean
          description: Whether history table(s) are enabled for this stream
          example: false
      required:
      - id
      - elt_sync_id
      - name
      - full_sync_at_midnight
      - full_sync_always
      - protected_from_full_sync
      - created_at
      - updated_at
      - excluded_substreams
      - enabled_history_table
    EltSyncUpdateRequestDto:
      type: object
      properties:
        elt_settings:
          type: object
          description: The elt settings for a sync.
        sync_interval:
          type: string
          description: Cron expression for the elt sync schedule.
          example: 0 0 * * *
    PagedEltSyncDto:
      type: object
      properties:
        has_more:
          type: boolean
          description: Indicates whether there are more items to be fetched in the subsequent pages.
          example: true
        next_cursor:
          type: string
          description: The cursor to use in pagination. Use this value as `starting_after` to get the next page.
          example: VeN1GjhVIq1D9h
        data:
          description: List of ELT Syncs
          type: array
          items:
            $ref: '#/components/schemas/EltSyncDto'
      required:
      - has_more
      - data
    PagedAvailableEltStreamDto:
      type: object
      properties:
        has_more:
          type: boolean
          description: Indicates whether there are more items to be fetched in the subsequent pages.
          example: true
        next_cursor:
          type: string
          description: The cursor to use in pagination. Use this value as `starting_after` to get the next page.
          example: VeN1GjhVIq1D9h
        data:
          description: List of the available streams for the integration
          type: array
          items:
            $ref: '#/components/schemas/AvailableStreamDto'
      required:
      - has_more
      - data
    AvailableStreamDto:
      type: object
      properties:
        name:
          type: string
          description: The name of the stream
          example: users
        is_selectable:
          type: boolean
          description: Whether it is possible to select it. It is false for not used source streams
        preselect:
          type: boolean
          description: Whether the source stream should be pre-selected by default
        sub_streams:
          description: An array of the substreams
          example:
          - user_address
          type: array
          items:
            type: string
        retired:
          type: boolean
          description: If the stream is retired and should not be used anymore
          example: false
        retirement_details:
          description: Details for the retired stream
          allOf:
          - $ref: '#/components/schemas/RetirementDetails'
      required:
      - name
      - retired
    EltSyncStatusDto:
      type: object
      properties:
        elt_sync_id:
          type: string
          description: Sync ID
          example: X4ughggABSd3UY
        source_streams:
          description: List of source stream states
          type: array
          items:
            $ref: '#/components/schemas/SourceStreamSnapshotStatesDto'
      required:
      - elt_sync_id
      - source_streams
  securitySchemes:
    api_key:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key from Settings -> API Keys