CloudQuery syncs API

The syncs API from CloudQuery — 37 operation(s) for syncs.

OpenAPI Specification

cloudquery-syncs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@cloudquery.io
    name: CloudQuery Support Team
    url: https://cloudquery.io
  description: 'Welcome to the CloudQuery Platform API documentation! This API can be used to interact with the CloudQuery platform. As a user, the API allows you to search the CloudQuery asset inventory, run SQL queries against the data warehouse, save and load searches, and much more. As an administrator, it allows you to manage your teams, syncs, and other objects.

    ### Authentication

    The API is secured using bearer tokens. To get started, you can generate an API key for your Platform deployment from your platform dashboard. For a step-by-step guide, see: https://www.cloudquery.io/docs/cli/managing-cloudquery/deployments/generate-api-key.

    The base URL for the API depends on where your CloudQuery Platform is hosted. If running locally, this is usually http://localhost:3000/api. In a production deployment it should be an HTTPS URL. For purposes of illustration, we will assume the platform instance is available at https://cloudquery.mycompany.com. In this case, the base API endpoint will be https://cloudquery.mycompany.com/api.

    ### Example Request

    To test your connection to the API, we can use the `/plugins` endpoint. For example:

    `curl -v -H "Authorization: Bearer $CLOUDQUERY_API_KEY" \ https://cloudquery.mycompany.com/api/plugins`

    '
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://www.cloudquery.io/terms
  title: CloudQuery Platform OpenAPI Spec admin syncs API
  version: 1.0.0
security:
- bearerAuth: []
- cookieAuth: []
tags:
- name: syncs
paths:
  /sync-destination-test-connections:
    post:
      description: Create a test destination connection.
      operationId: PlatformCreateSyncDestinationTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncDestinationTestConnectionCreate'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}:
    get:
      description: Get a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a sync destination test connection.
      operationId: PlatformUpdateSyncTestConnectionForSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  $ref: '#/components/schemas/PlatformSyncTestConnectionStatus'
                failure_reason:
                  type: string
                  description: Reason for failure
                  example: password authentication failed for user "exampleuser"
                failure_code:
                  example: INVALID_CREDENTIALS
                  type: string
                  description: Code for failure
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/query:
    get:
      description: Get logs for a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnectionLogsQuery
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      - $ref: '#/components/parameters/platform_table_filters'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_download_file'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - data
                - metadata
                properties:
                  data:
                    $ref: '#/components/schemas/PlatformTableData'
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
            text/plain:
              schema:
                type: string
                description: Download file.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/live:
    get:
      description: Get live logs for a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnectionLogsLive
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            text/plain:
              schema:
                type: string
                description: Chunked response logs for a test connection that is in progress.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/promote:
    post:
      description: Promote a sync destination test connection to a sync destination.
      operationId: PlatformPromoteSyncDestinationTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformPromoteSyncDestinationTestConnection'
      responses:
        '200':
          description: Successful response indicating that an existing sync destination was replaced.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations:
    get:
      description: List all sync destination definitions.
      operationId: PlatformListSyncDestinations
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_sync_generic_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncDestination'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}:
    get:
      description: Get a single sync destination definition.
      operationId: PlatformGetSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a Sync Destination definition.
      operationId: PlatformUpdateSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncDestinationUpdate'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete a Sync Destination definition. Any syncs relying on this destination must be deleted first.
      operationId: PlatformDeleteSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      responses:
        '204':
          description: Deleted
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}/syncs:
    get:
      description: List all Syncs for a given sync destination.
      operationId: PlatformListSyncDestinationSyncs
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_migration_filter'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformListSync'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}/test-connections/{sync_test_connection_id}:
    get:
      description: Get test connection details for sync destination.
      operationId: PlatformGetTestConnectionForSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      - $ref: '#/components/parameters/platform_sync_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections:
    post:
      description: Create a test source connection.
      operationId: PlatformCreateSyncSourceTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncSourceTestConnectionCreate'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}:
    get:
      description: Get a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a sync source test connection.
      operationId: PlatformUpdateSyncTestConnectionForSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  $ref: '#/components/schemas/PlatformSyncTestConnectionStatus'
                failure_reason:
                  type: string
                  description: Reason for failure
                  example: password authentication failed for user "exampleuser"
                failure_code:
                  example: INVALID_CREDENTIALS
                  type: string
                  description: Code for failure
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/logs/query:
    get:
      description: Get logs for a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnectionLogsQuery
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      - $ref: '#/components/parameters/platform_table_filters'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_download_file'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - data
                - metadata
                properties:
                  data:
                    $ref: '#/components/schemas/PlatformTableData'
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
            text/plain:
              schema:
                type: string
                description: Download file.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/logs/live:
    get:
      description: Get live logs for a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnectionLogsLive
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            text/plain:
              schema:
                type: string
                description: Chunked response logs for a test connection that is in progress.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/promote:
    post:
      description: Promote a sync source test connection to a sync source.
      operationId: PlatformPromoteSyncSourceTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformPromoteSyncSourceTestConnection'
      responses:
        '200':
          description: Successful response indicating that an existing sync source was replaced.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '201':
          description: Successful response indicating that a new sync source was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integration-test-connections:
    post:
      description: Create an integration test connection.
      operationId: PlatformCreateV2SyncIntegrationTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationTestConnectionCreateV2'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationTestConnectionV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integrations:
    get:
      description: List sync integrations
      operationId: PlatformListV2SyncIntegrations
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncIntegrationExpandedV2'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    post:
      description: Create a new integration associated with a completed test connection
      operationId: PlatformCreateV2SyncIntegration
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationCreateV2'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integrations/{sync_name}:
    get:
      description: Get a sync integration by name
      operationId: PlatformGetV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationExpandedV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update attributes of an integration
      operationId: PlatformUpdateV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationUpdateV2'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete an integration
      operationId: PlatformDeleteV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      - name: delete_data
        description: If true, also delete data associated with this integration from the relevant destinations.
        in: query
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '405':
          $ref: '#/components/responses/PlatformMethodNotAllowed'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-sources:
    get:
      description: List all sync source definitions.
      operationId: PlatformListSyncSources
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_sync_generic_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncSource'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-sources/{sync_source_name}:
    get:
      description: Get a single sync source definition.
      operationId: PlatformGetSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a Sync Source definition.
      operationId: PlatformUpdateSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncSourceUpdate'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete a Sync Source definition. Any syncs relying on this source must be deleted first.
      operationId: PlatformDeleteSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_name'
      responses:
        '204':
          descript

# --- truncated at 32 KB (130 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloudquery/refs/heads/main/openapi/cloudquery-syncs-api-openapi.yml