Coveo Pipelines API

The Pipelines API from Coveo — 8 operation(s) for pipelines.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-passagev3-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetrequest-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetresultvalue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupby-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupbyresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupbyvalue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-resthighlightresponse-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restquerycorrection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryfunction-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryparameters-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryparentresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryresponse-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restrankingfunction-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-retrievepassagesrequestv3-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-retrievepassagesresponsev3-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-passagev3-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetrequest-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetresultvalue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupby-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupbyresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupbyvalue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-resthighlightresponse-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restquerycorrection-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryfunction-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryparameters-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryparentresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryresponse-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restrankingfunction-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-retrievepassagesrequestv3-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-retrievepassagesresponsev3-structure.json

Other Resources

OpenAPI Specification

coveo-pipelines-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Coveo Activity Activities Pipelines API
  description: API for Coveo Platform
  termsOfService: https://www.coveo.com/en/support/terms-agreements
  contact:
    name: Coveo
    url: https://connect.coveo.com/s/discussions
  version: 1.0.0
servers:
- url: https://platform.cloud.coveo.com
  description: Coveo public API endpoint
security:
- oauth2:
  - full
tags:
- name: Pipelines
  x-displayName: Pipelines
paths:
  /rest/search/v1/admin/pipelines:
    get:
      tags:
      - Pipelines
      summary: List Query Pipelines
      description: 'Gets a sorted page of query pipelines matching certain criteria.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: listQueryPipelinesV1
      parameters:
      - $ref: '#/components/parameters/IsOrderAscending'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/ExcludeAbTestTargets'
      - name: perPage
        in: query
        description: The number of results to include per page.
        schema:
          type: integer
          format: int32
          minimum: 0
          maximum: 200
          default: 20
      - $ref: '#/components/parameters/OrganizationIdQuery'
      - name: enablePagination
        in: query
        description: Whether to receive the pipelines in a paginated format.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingPipelines'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Pipelines
      summary: Create Query Pipeline
      description: 'Creates a new query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"CREATE","targetId":"*"}

        ```

        </details>'
      operationId: createQueryPipelineV1
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The query pipeline information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingPipeline'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingPipeline'
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/{pipelineId}:
    get:
      tags:
      - Pipelines
      summary: Get Query Pipeline
      description: 'Gets a single query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: getQueryPipelineV1
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingPipelineDetailed'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Pipelines
      summary: Update Query Pipeline
      description: 'Modifies a single query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: updateQueryPipeline
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The updated query pipeline information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingPipeline'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingPipeline'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Pipelines
      summary: Delete Query Pipeline
      description: 'Deletes a single query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: deleteQueryPipeline
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/{pipelineId}/duplicate:
    post:
      tags:
      - Pipelines
      summary: Copy Query Pipeline
      description: 'Duplicates a single query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"CREATE","targetId":"*"}

        ```

        </details>'
      operationId: v1CopyQueryPipeline
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The permissions to set on the duplicated pipeline
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingDuplicatePipelinePermissions'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingPipeline'
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/{pipelineId}/swap:
    post:
      tags:
      - Pipelines
      summary: Swap Query Pipeline Names
      description: 'Swaps the names of two query pipelines. Doing so will affect the routing of incoming queries whose `pipeline` parameter is defined as the `name` value of one of the swapped query pipelines.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: swapQueryPipelineNames
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - name: other
        in: query
        description: The unique identifier of the query pipeline to swap names with.
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/bulkGet:
    post:
      tags:
      - Pipelines
      summary: List Query Pipelines
      description: 'Gets a sorted page of query pipelines matching certain criteria.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: bulkGetPipelines
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      - $ref: '#/components/parameters/IsOrderAscending'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/Page'
      - name: perPage
        in: query
        description: The number of results to include per page.
        schema:
          type: integer
          format: int32
          minimum: 0
          maximum: 200
          default: 20
      requestBody:
        description: A set of parameters to customize the results.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestBulkGetRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingBulkGetPipelines'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/validate:
    post:
      tags:
      - Pipelines
      summary: Validate a Single Pipeline Operation.
      description: 'Validate that a specific operation would be accepted by our API and executed.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: validatePipelineOperation
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: An object that describes the operation to validate, the resource to target, and the model payload to use.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestSingleOperationValidationRequestIncomingPipeline'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSingleOperationValidationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/validate/batch:
    post:
      tags:
      - Pipelines
      summary: Validate Batch of Pipeline Operations.
      description: "\r\n Validate that a list of operations would be accepted by our API and executed.\r\n A maximum of 15 can be processed per request.\n<details>\n<summary>Privilege(s) required</summary>\n\n```json\n{\"level\":\"NORMAL\",\"owner\":\"SEARCH_API\",\"targetDomain\":\"QUERY_PIPELINE\",\"type\":\"VIEW\",\"targetId\":\"*\"}\n```\n</details>"
      operationId: validatePipelineOperations
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: An object that contains the list of operations to validate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestBatchOperationValidationRequestIncomingPipeline'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestBatchOperationValidationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - oauth2:
        - full
  /rest/search/v1/admin/pipelines/{pipelineId}/statements/import:
    post:
      tags:
      - Pipelines
      summary: Import Query Pipeline Statements
      description: 'Import the definition, condition, and description of statements from a CSV file to a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: importQueryPipelineStatements
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/Feature'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - fileName
              properties:
                fileName:
                  type: string
                  format: binary
      responses:
        '204':
          description: Imported
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
components:
  parameters:
    SortBy:
      name: sortBy
      in: query
      description: 'The sort criteria to apply on the results.


        **Allowed values:** `definition`, `description`, and `position`.


        **Default:** `position`'
      schema:
        type: string
    Page:
      name: page
      in: query
      description: The 0-based number of the page of results to get.
      schema:
        type: integer
        format: int32
        default: 0
        minimum: 0
    IsOrderAscending:
      name: isOrderAscending
      in: query
      description: Whether to sort the results in ascending order.
      schema:
        type: boolean
        default: true
    Filter:
      name: filter
      in: query
      description: 'The query filter to match.


        This allows you to search within query pipeline statement definitions and descriptions.


        By default, results are not required to match a specific query filter.'
      schema:
        type: string
    OrganizationIdQuery:
      name: organizationId
      in: query
      description: 'The unique identifier of the target Coveo Cloud organization.


        Specifying a value for this parameter is only necessary when you are authenticating the API call with an OAuth2 token.'
      example: mycoveocloudv2organization
      schema:
        type: string
    ExcludeAbTestTargets:
      name: excludeAbTestTargets
      in: query
      description: Whether to exclude the A/B test targets from the result.
      schema:
        type: boolean
        default: false
    Feature:
      name: feature
      in: query
      description: 'The query pipeline feature to match.


        **Allowed values:** `when`, `filter`, `trigger`, `stop`, `thesaurus`, `topClicks`, `querySuggest`, `rankingweight`, `recommendation`, and `queryParamOverride`.


        By default, results are not required to match a specific query pipeline feature.'
      schema:
        type: string
    PipelineIdPath:
      name: pipelineId
      in: path
      description: The unique identifier of the target query pipeline.
      required: true
      schema:
        type: string
  schemas:
    RestBatchOperationValidationResponse:
      required:
      - results
      type: object
      properties:
        results:
          type: array
          description: The list of operation validation results.
          items:
            $ref: '#/components/schemas/RestOperationValidationResponse'
    OutgoingBulkGetPipelines:
      required:
      - pipelines
      - totalEntries
      type: object
      properties:
        pipelines:
          type: array
          description: Sorted page of query pipelines matching certain criteria.
          items:
            $ref: '#/components/schemas/OutgoingPipeline'
        totalEntries:
          type: integer
          format: int32
          description: The total number of pipelines matching the listing parameters.
    RestBulkGetRequest:
      type: object
      properties:
        ids:
          type: array
          description: A list of resource identifiers to get. A maximum of **1000** can be sent.
          items:
            type: string
            maxItems: 1000
    IncomingDuplicatePipelinePermissions:
      type: object
      properties:
        groupsThatCanEdit:
          type: array
          items:
            $ref: '#/components/schemas/IdentifiedResource'
        apiKeysThatCanEdit:
          type: array
          items:
            $ref: '#/components/schemas/IdentifiedResource'
    OutgoingPipelineDetailed:
      allOf:
      - $ref: '#/components/schemas/OutgoingPipeline'
      - $ref: '#/components/schemas/OutgoingPipelineDetailedBase'
    IncomingConditionReference:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of this condition.
          example: 45a7892e-a63f-4c8e-8795-ab38c8c18d7e
    ConditionDetailed:
      type: object
      required:
      - condition
      properties:
        condition:
          $ref: '#/components/schemas/BooleanExpression'
    OutgoingConditionBase:
      required:
      - childrenCount
      - definition
      - detailed
      - feature
      - id
      - position
      - ready
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of this statement.
          example: 45a7892e-a63f-4c8e-8795-ab38c8c18d7e
        description:
          type: string
          description: The intended purpose of this statement in an actual implementation.
          example: If the query originates from the community site...
        definition:
          type: string
          description: The query pipeline language expression that defines this statement (see [Query Pipeline Language (QPL)](https://docs.coveo.com/en/1449/)).
          example: when $searchhub is "community"
        detailed:
          $ref: '#/components/schemas/ConditionDetailed'
        modifiedBy:
          type: string
          description: The identifier of the Coveo Cloud platform user who last modified this.
          example: bjones@example.com
        modifiedAt:
          type: string
          format: date-time
          description: The last time this was modified.
          example: '2021-02-16T15:15:17Z'
        childrenCount:
          type: integer
          description: '> This property is exposed for backward compatibility reasons.'
          format: int32
          deprecated: true
        feature:
          $ref: '#/components/schemas/OutgoingConditionFeature'
        parent:
          type: string
          description: '> This property is exposed for backward compatibility reasons.'
          deprecated: true
        condition:
          type: string
          description: '> This property is exposed for backward compatibility reasons.'
          deprecated: true
        position:
          type: integer
          description: '> This property is exposed for backward compatibility reasons.'
          format: int32
          deprecated: true
        ready:
          type: boolean
          description: '> This property is exposed for backward compatibility reasons.'
          deprecated: true
    OutgoingConditionFeature:
      type: string
      description: '> This property is exposed for backward compatibility reasons.'
      deprecated: true
      enum:
      - when
    BooleanExpression:
      oneOf:
      - $ref: '#/components/schemas/CompoundBooleanExpression'
      - $ref: '#/components/schemas/OperatorExpression'
      - $ref: '#/components/schemas/IsBetweenOperator'
      - type: boolean
    RestSingleOperationValidationResponse:
      required:
      - result
      type: object
      properties:
        result:
          $ref: '#/components/schemas/RestOperationValidationResponse'
    ErrorMessage:
      type: object
      additionalProperties: true
      properties:
        statusCode:
          type: number
          example: 404
        errorCode:
          type: string
          example: ORGANIZATION_DOES_NOT_EXIST
        message:
          type: string
          example: The organization does not exist in the search api.
    CompoundBooleanExpression:
      type: object
      required:
      - operator
      - left
      properties:
        operator:
          type: string
        left:
          $ref: '#/components/schemas/BooleanExpression'
        right:
          $ref: '#/components/schemas/BooleanExpression'
    OperatorRightHandSide:
      oneOf:
      - type: string
      - type: number
      - type: integer
        format: int32
      - type: boolean
    RestSingleOperationValidationRequestIncomingPipeline:
      required:
      - operation
      type: object
      properties:
        operation:
          $ref: '#/components/schemas/RestOperationValidationRequestIncomingPipeline'
    RestOperationValidationResponse:
      required:
      - operationType
      - operationValid
      type: object
      properties:
        operationType:
          type: string
          description: The type of operation that has been validated.
          example: CREATE
        operationValid:
          type: boolean
          description: Whether the operation to validate was successful or not.
          example: true
        resourceId:
          type: string
          description: 'The identifier of the resource. '
          example: id
        validationErrors:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/RestOperationValidationError'
          description: If the operation failed, the `validationError` will contains the error message.
          example: Access Denied. You don't have the required privileges to perform  this operation.
    OutgoingPipelineDetailedBase:
      type: object
      required:
      - statementComposition
      properties:
        splitTestOriginalPipeline:
          type: string
          description: 'The unique identifier of query pipeline A in the A/B test.


            See also the `splitTestName`, `splitTestRatio`, and `splitTestEnabled` properties.'
        statementComposition:
          type: object
          required:
          - totalCount
          properties:
            totalCount:
              type: integer
              format: int32
              description: 'The total count of statement rules in this pipeline.

                '
    OperatorExpression:
      type: object
      required:
      - operator
      - left
      properties:
        operator:
          type: string
        left:
          $ref: '#/components/schemas/OperatorLeftHandSide'
        right:
          $ref: '#/components/schemas/OperatorRightHandSide'
    IdentifiedResource:
      required:
      - id
      type: object
      properties:
        id:
          type: string
    RestOperationValidationError:
      required:
      - message
      type: object
      properties:
        message:
          type: string
    PipelineInterfaceUrl:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          maxLength: 255
          description: 'Url of the pages affected by this query pipeline.

            '
          example: www.acme.com
    IncomingPipeline:
      required:
      - name
      type: object
      properties:
        name:
          type: string
          description: The name of this query pipeline.
          example: Community
        description:
          type: string
          description: The intended purpose of this query pipeline.
          example: Provide contextually relevant query recommendations/results to Community site users.
        isDefault:
          type: boolean
          description: 'Whether this query pipeline is the default query pipeline.


            **Note:** There must be one and only one default query pipeline in a Coveo Cloud organization. Therefore, setting `isDefault` to `true` on this query pipeline will automatically set it to `false` in the current default query pipeline as a side effect (assuming, of course, that this query pipeline is not the current default query pipeline).'
          example: false
        splitTestName:
          type: string
          description: 'A name which summarizes the intended purpose of the A/B test.


            See also the `splitTestTarget`, `splitTestRatio`, and `splitTestEnabled` properties.'
          example: Community VS default
        splitTestTarget:
          type: string
          description: 'The unique identifier of query pipeline B in the A/B test.


            See also the `splitTestName`, `splitTestRatio`, and `splitTestEnabled` properties.'
          example: 22a3860e-fa6f-4e64-a9f1-ef738af0786e
        splitTestRatio:
          maximum: 1
          minimum: 0
          type: number
          description: 'The percentage of queries to route through query pipeline B if the A/B test is enabled. Remaining queries will be routed through this query pipeline.


            See also the `splitTestName`, `splitTestTarget`, and `splitTestEnabled` properties.'
          format: double
          example: 0.5
        splitTestEnabled:
          type: boolean
          description: 'Whether to enable the A/B test.


            See also the `splitTestName`, `splitTestTarget`, and `splitTestRatio` properties.'
        condition:
          $ref: '#/components/schemas/IncomingConditionReference'
        groupsThatCanEdit:
          type: array
          items:
            $ref: '#/components/schemas/IdentifiedResource'
        apiKeysThatCanEdit:
          type: array
          items:
            $ref: '#/components/schemas/IdentifiedResource'
        useCase:
          type: string
          maxLength: 50
          description: 'The use case for which this query pipeline should apply. This option allows you to categorize your query pipeline and enables Coveo to provide better support and improve the tools we provide.

            '
          example: Service & Support
        interfaceUrls:
          $ref: '#/components/schemas/PipelineInterfaceUrls'
        aduiConfig:
          $ref: '#/components/schemas/PipelineAduiConfiguration'
    PipelineInterfaceUrls:
      type: array
      maxItems: 20
      description: 'This option helps better understand the pages where this query pipeline is intended to be used. It won''t affect query routing in any way but may be used by Coveo to help you manage your configuration properly.

        '
      items:
        $ref: '#/components/schemas/PipelineInterfaceUrl'
    OutgoingPipeline:
      required:
      - id
      - isDefault
      - name
      - position
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of this query pipeline.
          example: 120deecf-7822-4d7b-885f-53f184a3a76c
        name:
          type: string
          description: Community
          example: Community
        isDefault:
          type: boolean
          description: 'Whether this query pipeline is the default query pipeline.


            **Note:** There must be one and only one default query pipeline in a Coveo Cloud organization. Therefore, setting `isDefault` to `true` on this query pipeline will automatically set it to `false` in the current default query pipeline as a side effect (assuming, of course, that this query pipeline is not the current default query pipeline).'
          example: false
        description:
          type: string
          description: The intended purpose of this query pipeline.
          example: Provide contextually relevant query recommendations/results to Community site users.
        filter:
          type: string
          description: 'A constant query expression to add to all queries routed through this query pipeline.


            **Notes:**


            - The `filter` expression is added to the constant part of the query expression (`cq`) using an AND operator.

            - Avoid including dynamically evaluated values in the `filter` expression, otherwise you risk filling up the cache with useless data.'
          example: '@source==CommunityForum OR @source==CommunityDocumentation'
        splitTestName:
          type: string
          description: 'A name which summarizes the intended purpose of the A/B test.


            See also the `splitTestTarget`, `splitTestRatio`, and `splitTestEnabled` properties.'
          example: Community VS default
        splitTestTarget:
          type: string
          description: 'The unique identifier of query pipeline B in the A/B test.


            See also the `splitTestName`, `splitTestRatio`, and `splitTestEnabled` properties.'
          example: 22a3860e-fa6f-4e64-a9f1-ef738af0786e
        splitTestRatio:
          maximum: 1
          minimum: 0
          type: number
          description: 'The percentage of queries to route through query pipeline B if the A/B test is enabled. Remaining queries will be routed through this query pipeline.


            See also the `splitTestName`, `splitTestTarget`, and `splitTestEnabled` properties.'
          format: double
          example: 0.5
        splitTestEnabled:
          type: boolean
          description: 'Whether to enable the A/B test.


            See also the `splitTestName`, `splitTestTarget`, and `splitTestRatio` properties.'
        condition:
          $ref: '#/components/schemas/OutgoingCondition'
        position:
          type: integer
          description: 'The 0-based position of this query pipeline relative to other query pipelines in this Coveo Cloud organization.


            Upon query pipeline creation, a position corresponding to the current highest query pipeline position incremented by one is automatically assigned to the new query pipeline.


            You cannot change the position of an existing query pipeline, but you can duplicate/delete query pipelines to achieve a similar result. Note, however, that duplicated query pipelines have distinct `id` values.


            Unless a query enforces a specific query pipeline, query pipeline *with conditions* are evaluated sequentially, according to their respective position (from lowest to highest). The query is routed through the first query pipeline whose condition it satisfies. If the query satisfies the condition of no query pipeline, it is routed through the default query pipeline (bypassing its condition, if it has one).'
          format: int32
          example: 3
        last_modified_by:
          type: string
          description: The identifier of the Coveo Cloud platform user who last modified this query pipeline.
          example: bjones@example.com
        modifiedBy:
          type: string
          description: The identifier of the Coveo Cloud platform user who last modified this.
          example: bjones@example.com
        modifiedAt:
          type

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