Qlik Sense data project deployment API

The data project deployment API from Qlik Sense — 5 operation(s) for data project deployment.

Operations 6

POST /api/v1/di-projects/{projectId}/actions/export Export a project #
POST /api/v1/di-projects/{projectId}/actions/import Import a project (JSON zip) #
POST /api/v1/di-projects/{projectId}/actions/import-async Import a project asynchronously #
GET /api/v1/di-projects/{projectId}/bindings Get project export variables #
PUT /api/v1/di-projects/{projectId}/bindings Update project export variables #
POST /api/v1/di-projects/utils/actions/validate-project-definitions Validate project definitions #

Documentation

📖
Documentation
https://qlik.dev/apis/rest/analytics/apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/change-stores/
📖
APIReference
https://qlik.dev/apis/rest/analytics/change-stores/
📖
Documentation
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
APIReference
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-links/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-links/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
Documentation
https://qlik.dev/apis/rest/api-keys/
📖
APIReference
https://qlik.dev/apis/rest/api-keys/
📖
Documentation
https://qlik.dev/apis/rest/apps/
📖
APIReference
https://qlik.dev/apis/rest/apps/
📖
Documentation
https://qlik.dev/apis/rest/assistants/
📖
APIReference
https://qlik.dev/apis/rest/assistants/
📖
Documentation
https://qlik.dev/apis/rest/audits/
📖
APIReference
https://qlik.dev/apis/rest/audits/
📖
Documentation
https://qlik.dev/apis/rest/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/automations/
📖
APIReference
https://qlik.dev/apis/rest/automations/
📖
Documentation
https://qlik.dev/apis/rest/automl-deployments/
📖
APIReference
https://qlik.dev/apis/rest/automl-deployments/
📖
Documentation
https://qlik.dev/apis/rest/automl-predictions/
📖
APIReference
https://qlik.dev/apis/rest/automl-predictions/
📖
Documentation
https://qlik.dev/apis/rest/banners/
📖
APIReference
https://qlik.dev/apis/rest/banners/
📖
Documentation
https://qlik.dev/apis/rest/brands/
📖
APIReference
https://qlik.dev/apis/rest/brands/
📖
Documentation
https://qlik.dev/apis/rest/collections/
📖
APIReference
https://qlik.dev/apis/rest/collections/
📖
Documentation
https://qlik.dev/apis/rest/conditions/
📖
APIReference
https://qlik.dev/apis/rest/conditions/
📖
Documentation
https://qlik.dev/apis/rest/consumption/
📖
APIReference
https://qlik.dev/apis/rest/consumption/
📖
Documentation
https://qlik.dev/apis/rest/core/auth-settings/
📖
APIReference
https://qlik.dev/apis/rest/core/auth-settings/
📖
Documentation
https://qlik.dev/apis/rest/core/ip-policies/
📖
APIReference
https://qlik.dev/apis/rest/core/ip-policies/
📖
Documentation
https://qlik.dev/apis/rest/csp-origins/
📖
APIReference
https://qlik.dev/apis/rest/csp-origins/
📖
Documentation
https://qlik.dev/apis/rest/csrf-token/
📖
APIReference
https://qlik.dev/apis/rest/csrf-token/
📖
Documentation
https://qlik.dev/apis/rest/data-alerts/
📖
APIReference
https://qlik.dev/apis/rest/data-alerts/
📖
Documentation
https://qlik.dev/apis/rest/data-assets/
📖
APIReference
https://qlik.dev/apis/rest/data-assets/
📖
Documentation
https://qlik.dev/apis/rest/data-connections/
📖
APIReference
https://qlik.dev/apis/rest/data-connections/
📖
Documentation
https://qlik.dev/apis/rest/data-credentials/
📖
APIReference
https://qlik.dev/apis/rest/data-credentials/
📖
Documentation
https://qlik.dev/apis/rest/data-files/
📖
APIReference
https://qlik.dev/apis/rest/data-files/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-products/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-products/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
Documentation
https://qlik.dev/apis/rest/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-sets/
📖
APIReference
https://qlik.dev/apis/rest/data-sets/
📖
Documentation
https://qlik.dev/apis/rest/data-sources/
📖
APIReference
https://qlik.dev/apis/rest/data-sources/
📖
Documentation
https://qlik.dev/apis/rest/data-stores/
📖
APIReference
https://qlik.dev/apis/rest/data-stores/
📖
Documentation
https://qlik.dev/apis/rest/di-projects/
📖
APIReference
https://qlik.dev/apis/rest/di-projects/
📖
Documentation
https://qlik.dev/apis/rest/direct-access-agents/
📖
APIReference
https://qlik.dev/apis/rest/direct-access-agents/
📖
Documentation
https://qlik.dev/apis/rest/encryption/
📖
APIReference
https://qlik.dev/apis/rest/encryption/
📖
Documentation
https://qlik.dev/apis/rest/extensions/
📖
APIReference
https://qlik.dev/apis/rest/extensions/
📖
Documentation
https://qlik.dev/apis/rest/glossaries/
📖
APIReference
https://qlik.dev/apis/rest/glossaries/
📖
Documentation
https://qlik.dev/apis/rest/groups/
📖
APIReference
https://qlik.dev/apis/rest/groups/
📖
Documentation
https://qlik.dev/apis/rest/identity-providers/
📖
APIReference
https://qlik.dev/apis/rest/identity-providers/
📖
Documentation
https://qlik.dev/apis/rest/items/
📖
APIReference
https://qlik.dev/apis/rest/items/
📖
Documentation
https://qlik.dev/apis/rest/knowledgebases/
📖
APIReference
https://qlik.dev/apis/rest/knowledgebases/
📖
Documentation
https://qlik.dev/apis/rest/licenses/
📖
APIReference
https://qlik.dev/apis/rest/licenses/
📖
Documentation
https://qlik.dev/apis/rest/lineage-graphs/
📖
APIReference
https://qlik.dev/apis/rest/lineage-graphs/
📖
Documentation
https://qlik.dev/apis/rest/login/
📖
APIReference
https://qlik.dev/apis/rest/login/
📖
Documentation
https://qlik.dev/apis/rest/ml/
📖
APIReference
https://qlik.dev/apis/rest/ml/
📖
Documentation
https://qlik.dev/apis/rest/notes/
📖
APIReference
https://qlik.dev/apis/rest/notes/
📖
Documentation
https://qlik.dev/apis/rest/notifications/
📖
APIReference
https://qlik.dev/apis/rest/notifications/
📖
Documentation
https://qlik.dev/apis/rest/oauth-clients/
📖
APIReference
https://qlik.dev/apis/rest/oauth-clients/
📖
Documentation
https://qlik.dev/apis/rest/oauth-tokens/
📖
APIReference
https://qlik.dev/apis/rest/oauth-tokens/
📖
Documentation
https://qlik.dev/apis/rest/questions/
📖
APIReference
https://qlik.dev/apis/rest/questions/
📖
Documentation
https://qlik.dev/apis/rest/quotas/
📖
APIReference
https://qlik.dev/apis/rest/quotas/
📖
Documentation
https://qlik.dev/apis/rest/reload-tasks/
📖
APIReference
https://qlik.dev/apis/rest/reload-tasks/
📖
Documentation
https://qlik.dev/apis/rest/reloads/
📖
APIReference
https://qlik.dev/apis/rest/reloads/
📖
Documentation
https://qlik.dev/apis/rest/report-templates/
📖
APIReference
https://qlik.dev/apis/rest/report-templates/
📖
Documentation
https://qlik.dev/apis/rest/reports/
📖
APIReference
https://qlik.dev/apis/rest/reports/
📖
Documentation
https://qlik.dev/apis/rest/roles/
📖
APIReference
https://qlik.dev/apis/rest/roles/
📖
Documentation
https://qlik.dev/apis/rest/scheduling/tasks/
📖
APIReference
https://qlik.dev/apis/rest/scheduling/tasks/
📖
Documentation
https://qlik.dev/apis/rest/sharing-tasks/
📖
APIReference
https://qlik.dev/apis/rest/sharing-tasks/
📖
Documentation
https://qlik.dev/apis/rest/spaces/
📖
APIReference
https://qlik.dev/apis/rest/spaces/
📖
Documentation
https://qlik.dev/apis/rest/tasks/
📖
APIReference
https://qlik.dev/apis/rest/tasks/
📖
Documentation
https://qlik.dev/apis/rest/temp-contents/
📖
APIReference
https://qlik.dev/apis/rest/temp-contents/
📖
Documentation
https://qlik.dev/apis/rest/tenant-settings/
📖
APIReference
https://qlik.dev/apis/rest/tenant-settings/
📖
Documentation
https://qlik.dev/apis/rest/tenants/
📖
APIReference
https://qlik.dev/apis/rest/tenants/
📖
Documentation
https://qlik.dev/apis/rest/themes/
📖
APIReference
https://qlik.dev/apis/rest/themes/
📖
Documentation
https://qlik.dev/apis/rest/transports/
📖
APIReference
https://qlik.dev/apis/rest/transports/
📖
Documentation
https://qlik.dev/apis/rest/ui-config/
📖
APIReference
https://qlik.dev/apis/rest/ui-config/
📖
Documentation
https://qlik.dev/apis/rest/users/
📖
APIReference
https://qlik.dev/apis/rest/users/
📖
Documentation
https://qlik.dev/apis/rest/web-integrations/
📖
APIReference
https://qlik.dev/apis/rest/web-integrations/
📖
Documentation
https://qlik.dev/apis/rest/web-notifications/
📖
APIReference
https://qlik.dev/apis/rest/web-notifications/
📖
Documentation
https://qlik.dev/apis/rest/webhooks/
📖
APIReference
https://qlik.dev/apis/rest/webhooks/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automations/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automations/
📖
Documentation
https://qlik.dev/apis/rest
📖
Authentication
https://qlik.dev/authenticate

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qliksense-data-project-deployment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qliksense-data-project-deployment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: di-projects data project deployment API
  version: ''
servers:
- url: https://{tenant}.{region}.qlikcloud.com
  variables:
    region:
      default: us
      description: The region the tenant is hosted in
    tenant:
      default: your-tenant
      description: Name of the tenant that will be called
tags:
- name: data project deployment
paths:
  /api/v1/di-projects/{projectId}/actions/export:
    post:
      tags:
      - data project deployment
      summary: Export a project
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Internal Server Error
      parameters:
      - in: path
        name: projectId
        schema:
          type: string
        examples:
          example:
            value: 65424a71c11367914c1e659b
        required: true
        description: Identifier of the data project.
      - in: header
        name: Accept
        schema:
          enum:
          - application/octet-stream
          type: string
        required: false
        description: Optional; only 'application/octet-stream' is supported.
      description: Exports the specified data integration project.
      operationId: export_project
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportDiProjectReq'
        description: Options for the export process
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/di-projects/{projectId}/actions/import:
    post:
      tags:
      - data project deployment
      summary: Import a project (JSON zip)
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportDiProjectRsp'
          description: OK — the JSON-based project was imported successfully.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request — for example, if a YAML-based zip is submitted to this endpoint.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Internal Server Error
      parameters:
      - in: path
        name: projectId
        schema:
          type: string
        examples:
          example:
            value: 65424a71c11367914c1e659b
        required: true
        description: Identifier of the data project.
      description: 'Imports a data integration project synchronously from a legacy JSON-based `.zip` file.

        This endpoint only accepts zips that contain JSON project files (the legacy format). The import is processed synchronously and completes before the response is returned.

        Submitting a YAML-based zip to this endpoint returns `400`. To import a YAML-based zip, use `POST /di-projects/{projectId}/actions/import-async` instead.'
      operationId: import_project
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                zip:
                  type: string
                  format: binary
        required: true
        description: The ZIP file containing the JSON-based project to import.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/di-projects/{projectId}/actions/import-async:
    post:
      tags:
      - data project deployment
      summary: Import a project asynchronously
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncActionRsp'
          headers:
            Location:
              $ref: '#/components/headers/AsyncActionLocation'
          description: The project import has started. Poll the returned `actionId` using `GET /di-projects/actions/{actionId}` to track progress.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Internal Server Error
      parameters:
      - in: path
        name: projectId
        schema:
          type: string
        examples:
          example:
            value: 65424a71c11367914c1e659b
        required: true
        description: Identifier of the data project.
      description: Imports a data integration project from a `.zip` file and returns an action identifier for tracking the background import operation. Accepts both JSON-based (legacy) and YAML-based project formats, making it the recommended endpoint for deploying YAML-defined pipeline definitions programmatically. Poll the import status using `GET /di-projects/actions/{actionId}`.
      operationId: import_project_async
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                zip:
                  type: string
                  format: binary
        required: true
        description: A `.zip` file containing the project to import. Accepts both JSON-based (legacy) and YAML-based formats.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/di-projects/{projectId}/bindings:
    get:
      tags:
      - data project deployment
      summary: Get project export variables
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDiExportProjectVariablesRsp'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
      parameters:
      - in: path
        name: projectId
        schema:
          type: string
        examples:
          example:
            value: 65424a71c11367914c1e659b
        required: true
        description: Identifier of the data project.
      - in: query
        name: recalculate
        schema:
          type: boolean
          default: true
        examples:
          example:
            value: true
        required: false
        description: Recalculate the bindings if true, otherwise saved bindings are returned.
      description: Retrieves the export variables for a specific data integration project.
      operationId: get_project_export_variables
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '1'
        limit: 1000
    put:
      tags:
      - data project deployment
      summary: Update project export variables
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateDiExportProjectVariablesRsp'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Internal Server Error
      parameters:
      - in: path
        name: projectId
        schema:
          type: string
        examples:
          example:
            value: 65424a71c11367914c1e659b
        required: true
        description: Identifier of the data project.
      description: Updates the export variables for a specific data integration project.
      operationId: update_project_export_variables
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDiExportProjectVariablesReq'
        required: true
        description: The details of the export variables to update
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/di-projects/utils/actions/validate-project-definitions:
    post:
      tags:
      - data project deployment
      summary: Validate project definitions
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateProjectDefinitionsRsp'
          description: Validation completed. The response contains a report of warnings and errors found in the project definitions.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
          description: Internal Server Error
      description: Validates the project definition files in a `.zip` and returns a structured report of warnings and errors. The validation runs synchronously and completes before the response is returned. Use this operation before importing with `POST /di-projects/{projectId}/actions/import-async` to confirm that YAML-based pipeline definitions are correct.
      operationId: validate_project_definitions
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                zip:
                  type: string
                  format: binary
        required: true
        description: A `.zip` file containing the project definition files to validate.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
components:
  schemas:
    ErrorSource:
      type: object
      properties:
        pointer:
          type: string
          description: JSON Pointer (RFC 6901) to the field in the request body that caused the error.
        parameter:
          type: string
          description: Name of the query parameter or path parameter that caused the error.
      description: Identifies the location of the error in the request.
    ValidateProjectDefinitionsReport:
      type: object
      properties:
        path:
          type: string
          description: Path to the field or file in the project definition where the issue was found.
        level:
          $ref: '#/components/schemas/ValidateProjectDefinitionsReportLevel'
        reason:
          type: string
          description: Human-readable description of the validation finding.
      description: A single validation finding, including its severity, a human-readable description of the issue, and the location in the project definition where it was found.
    Error:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code for programmatic handling.
        title:
          type: string
          description: Brief human-readable summary of the error.
        detail:
          type: string
          description: Detailed explanation of the error and suggested remediation steps.
        source:
          $ref: '#/components/schemas/ErrorSource'
        status:
          type: integer
          format: int32
          description: HTTP status code associated with the error.
      description: Represents a single error condition with details about what went wrong.
    GetDiExportProjectVariablesRsp:
      type: object
      properties:
        variables:
          type: object
          additionalProperties:
            type: string
            example: value
            description: The value of the variable
        nameToIdMap:
          type: object
          additionalProperties:
            type: string
            example: value
            description: The calculated ID of the variable value, when relevant.
    ImportDiProjectRsp:
      type: object
    DiExportMode:
      enum:
      - MINIMAL
      - ALL
      - LEGACY
      type: string
      description: 'Defines the export format for the project files.

        - ''LEGACY'': Exports a ZIP of the previous JSON files. Deprecated and will be removed in a future release.

        - ''MINIMAL'': Exports a ZIP of the new YAML files, including only non-default attribute values.

        - ''ALL'': Exports a ZIP of the new YAML files, including all attributes.

        '
    Errors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: Array of error objects describing what went wrong.
        traceId:
          type: string
          description: Unique identifier for this error response, useful for tracking and support inquiries.
      description: Standard error response wrapper containing one or more error details and a trace ID for diagnostics.
    AsyncActionRsp:
      type: object
      required:
      - actionId
      properties:
        actionId:
          type: string
          example: action-123456
          description: Identifier for tracking the action
    UpdateDiExportProjectVariablesRsp:
      type: object
    ExportDiProjectReq:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/DiExportMode'
        includeBindings:
          type: boolean
          default: false
          description: Include bindings in the exported zip file. If not specified, defaults to `false`.
    UpdateDiExportProjectVariablesReq:
      type: object
      properties:
        variables:
          type: object
          additionalProperties:
            type: string
            example: value
            description: The value of the variable
    ValidateProjectDefinitionsRsp:
      type: object
      properties:
        reports:
          type: array
          items:
            $ref: '#/components/schemas/ValidateProjectDefinitionsReport'
          description: List of validation findings. An empty array indicates no issues were found.
    ValidateProjectDefinitionsReportLevel:
      enum:
      - WARNING
      - ERROR
      type: string
      description: Severity of the validation finding. `WARNING` indicates a potential issue that does not block import; `ERROR` indicates a critical issue that must be resolved before importing.
  headers:
    AsyncActionLocation:
      schema:
        type: string
      examples:
        example:
          value: /api/v1/di-projects/actions/action-123456
      description: URL to check the status of the async action