openapi: 3.0.1
info:
title: Coveo Activity Activities Statement groups 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: Statement groups
x-displayName: Statement groups
paths:
/rest/search/v2/admin/pipelines/{pipelineId}/statementGroups:
get:
tags:
- Statement groups
summary: List Statement Groups of a Pipeline
description: 'List statement groups of a pipeline
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}
```
'
operationId: listStatementGroups
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/StatementGroupSortBy'
- $ref: '#/components/parameters/IsOrderAscending'
- $ref: '#/components/parameters/StatementGroupTypeParam'
- $ref: '#/components/parameters/StatementGroupStatusParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListStatementGroupsResponse'
'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
post:
tags:
- Statement groups
summary: Create a New Statement Group
description: 'Create a new statement group
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
operationId: createStatementGroup
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
requestBody:
description: The new statement group to create
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrUpdateStatementGroup'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStatementGroupResponse'
'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
/rest/search/v2/admin/pipelines/{pipelineId}/statementGroups/associations/dissociate:
post:
tags:
- Statement groups
summary: Dissociate Pipeline Rules Associated to Groups
operationId: statementGroupsAssociationsDissociate
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DissociateStatementGroupAssociationsRequest'
responses:
'200':
description: Successfully dissociated the items.
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'419':
$ref: '#/components/responses/AuthenticationTimeout'
'422':
$ref: '#/components/responses/UnprocessableStatementGroupAssociations422'
'429':
$ref: '#/components/responses/TooManyRequests'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- oauth2:
- full
description: '
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
/rest/search/v2/admin/pipelines/{pipelineId}/statementGroups/bulkGet:
post:
tags:
- Statement groups
summary: List Statement Groups of a Pipeline
description: 'List statement groups of a pipeline
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}
```
'
operationId: bulkGetStatementGroupsOperation
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PerPage'
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/ListStatementGroupsResponse'
'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
/rest/search/v2/admin/pipelines/{pipelineId}/statementGroups/validate:
post:
tags:
- Statement groups
summary: Validate a Single Statement Group Operation.
description: 'Validate that a specific operation would be accepted by our API and executed.
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}
```
'
operationId: validateStatementGroupOperation
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
requestBody:
description: An object that contains an operation to validate.
content:
application/json:
schema:
$ref: '#/components/schemas/RestSingleOperationValidationRequestCreateStatementGroupRequest'
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/v2/admin/pipelines/{pipelineId}/statementGroups/validate/batch:
post:
tags:
- Statement groups
summary: Validate a Batch of Statement Groups Operations.
description: '
Validate that a list of operations would be accepted by our API and executed.
A maximum of 15 can be processed per request.
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}
```
'
operationId: validateStatementGroupsOperations
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
requestBody:
description: An object that contains the list of operations to validate.
content:
application/json:
schema:
$ref: '#/components/schemas/RestBatchOperationValidationRequestCreateStatementGroupRequest'
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/admin/pipelines/featureActiveState:
get:
summary: Returns the List of All Pipeline Features and Whether They're Active or Not.
operationId: getFeatureActiveState
tags:
- Statement groups
parameters:
- $ref: '#/components/parameters/OrganizationIdQueryRequired'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListFeatureActiveStateResponse'
security:
- oauth2:
- full
description: '
Privilege(s) required
```json
```
'
/rest/search/v2/admin/pipelines/{pipelineId}/statementGroups/{statementGroupId}:
get:
tags:
- Statement groups
summary: Get a Statement Group of a Pipeline
description: 'Get a statement group of a pipeline
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}
```
'
operationId: Get a statement group of a pipeline
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/StatementGroupIdPath'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetStatementGroup'
'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'
'503':
$ref: '#/components/responses/ServiceUnavailable'
security:
- oauth2:
- full
delete:
tags:
- Statement groups
summary: Delete a Statement Group of a Pipeline
description: 'Delete a statement group of a pipeline
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
operationId: Delete a statement group of a pipeline
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/StatementGroupIdPath'
responses:
'204':
description: No response
content: {}
'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
put:
tags:
- Statement groups
summary: Update a Statement Group
description: 'Update a statement group
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
operationId: Update a statement group
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/StatementGroupIdPath'
requestBody:
description: The statement group to update
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrUpdateStatementGroup'
required: true
responses:
'204':
description: No Content
content: {}
'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
patch:
tags:
- Statement groups
summary: Toggle a Permanent Group
description: 'Toggle a permanent group
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
operationId: Toggle a permanent group
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/StatementGroupIdPath'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TogglePermanentGroupRequest'
required: true
responses:
'204':
description: No Content
content: {}
'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/v2/admin/pipelines/{pipelineId}/statementGroups/{statementGroupId}/associations:
put:
security:
- oauth2:
- full
tags:
- Statement groups
summary: Update the Rules Associated with a Statement Group
description: 'There are two operations which can update the rules associated with a statement group:
- **Addition** uses the `toAdd` parameter
- **Deletion** uses the `toRemove` parameter
Privilege(s) required
```json
{"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}
```
'
operationId: updateStatementGroupsAssociations
parameters:
- $ref: '#/components/parameters/OrganizationIdQuery'
- $ref: '#/components/parameters/PipelineIdPath'
- $ref: '#/components/parameters/StatementGroupIdPath'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStatementGroupAssociationsRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStatementGroupAssociationsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'419':
$ref: '#/components/responses/AuthenticationTimeout'
'422':
$ref: '#/components/responses/UnprocessableStatementGroupAssociations422'
'429':
$ref: '#/components/responses/TooManyRequests'
'503':
$ref: '#/components/responses/ServiceUnavailable'
components:
schemas:
RestSingleOperationValidationRequestCreateStatementGroupRequest:
required:
- operation
type: object
properties:
operation:
$ref: '#/components/schemas/RestOperationValidationRequestCreateStatementGroupRequest'
StatementGroupStatus:
type: string
description: The status of the campaign.
enum:
- active
- inactive
- expired
- notStarted
ProblemDetailResponse:
type: object
description: The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
minProperties: 1
properties:
status:
type: integer
minimum: 400
maximum: 599
description: The HTTP status code.
title:
type: string
description: A short, human-readable summary of the problem type. This **shouldn't** change from one occurrence of the problem to another, except for localization purposes.
type:
type: string
format: URI
description: A URI reference [[RFC3986](https://tools.ietf.org/html/rfc3986)] that identifies and provides human-readable documentation for the problem type. When this isn't present, its value is assumed to be "about:blank".
detail:
type: string
description: A human-readable explanation which is specific to this occurrence of the problem.
instance:
type: string
format: URI
description: A URI reference [[RFC3986](https://tools.ietf.org/html/rfc3986)] that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
RestBatchOperationValidationResponse:
required:
- results
type: object
properties:
results:
type: array
description: The list of operation validation results.
items:
$ref: '#/components/schemas/RestOperationValidationResponse'
CreateOrUpdateCampaignGroupBase:
type: object
required:
- campaignStart
- campaignEnd
properties:
campaignStart:
type: string
description: The start date of the campaign.
example: '2001-07-20T23:01:05-04:00'
campaignEnd:
type: string
description: The end date of the campaign.
example: '2002-09-07T10:07:20-04:00'
FeatureActiveState:
type: object
required:
- feature
- active
properties:
feature:
type: string
description: The name of the QueryPipeline feature
active:
type: boolean
description: Whether the feature is active or not.
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
CreateOrUpdateStatementGroup:
oneOf:
- $ref: '#/components/schemas/CreateOrUpdateCampaignGroup'
- $ref: '#/components/schemas/CreateOrUpdatePermanentGroup'
discriminator:
propertyName: type
mapping:
campaign: '#/components/schemas/CreateOrUpdateCampaignGroup'
permanent: '#/components/schemas/CreateOrUpdatePermanentGroup'
example:
name: Community
type: campaign
description: Provides contextually relevant query recommendations/results to Community site users.
campaignStart: '2001-07-20T23:01:05-04:00'
campaignEnd: '2002-09-07T10:07:20-04:00'
StatementGroupType:
type: string
description: The type name of the statement group.
enum:
- campaign
- permanent
TogglePermanentGroupRequest:
type: object
properties:
isActive:
type: boolean
description: Whether or not the group is active.
GetPermanentGroupBase:
type: object
required:
- isActive
properties:
isActive:
type: boolean
description: Whether or not the group is active.
status:
type: string
description: The status of the group.
enum:
- active
- inactive
CreateOrUpdatePermanentGroupBase:
type: object
required:
- isActive
properties:
isActive:
type: boolean
description: Whether or not the group is active.
StatementGroupComposition:
required:
- otherStatementCount
- resultRankingStatementCount
type: object
properties:
resultRankingStatementCount:
type: integer
description: The number of result ranking statements in this group.
format: int32
otherStatementCount:
type: integer
description: The number of other types of statements in this group.
format: int32
GetStatementGroupBase:
required:
- id
- type
- name
- statementComposition
- createdAt
- warnings
type: object
properties:
id:
type: string
description: The unique identifier of the statement group.
example: 679adb80-444e-11ea-b77f-2e728ce88125
name:
type: string
description: The name of the statement group.
example: Community
type:
$ref: '#/components/schemas/StatementGroupType'
description:
type: string
description: The intended purpose of this statement group.
example: Provide contextually relevant query recommendations/results to Community site users.
conditionId:
type: string
description: 'The condition that must be met by a query in order to route that query through this query pipeline.
Typically, each query pipeline except the default one should have a condition, and you should ensure that the conditions you set on query pipelines are mutually exclusive.
**Note:**
A query cannot be routed through a query pipeline that does not have a condition unless:
- That query pipeline is set as the default query pipeline (see the `isDefault` property), or
- That query pipeline is enforced through the `pipeline` parameter of the query itself, in which case the query pipeline condition is bypassed.'
conditionDefinition:
type: string
description: 'The condition that must be met by a query in order to route that query through this query pipeline.
Typically, each query pipeline except the default one should have a condition, and you should ensure that the conditions you set on query pipelines are mutually exclusive.
**Note:**
A query cannot be routed through a query pipeline that does not have a condition unless:
- That query pipeline is set as the default query pipeline (see the `isDefault` property), or
- That query pipeline is enforced through the `pipeline` parameter of the query itself, in which case the query pipeline condition is bypassed.'
conditionDetailed:
description: A structured representation of the condition.
createdAt:
type: string
createdBy:
type: string
statementComposition:
$ref: '#/components/schemas/StatementGroupComposition'
modifiedAt:
type: string
modifiedBy:
type: string
warnings:
type: array
items:
type: string
DissociateStatementGroupAssociationsRequest:
type: object
properties:
associations:
type: array
maxItems: 50
description: 'The rules that should be dissociated from their group, if any.
If a rule is not associated to a group, it won''t be updated.
**Note:**: Invalid rule IDs will cause the request to fail.'
items:
$ref: '#/components/schemas/StatementGroupAssociationItem'
ListStatementGroupsResponse:
required:
- groupComposition
- groups
- totalCount
type: object
properties:
groups:
type: array
items:
$ref: '#/components/schemas/GetStatementGroup'
totalCount:
type: integer
description: The total number of matching statements across all pages of results.
format: int32
example: 1
groupComposition:
$ref: '#/components/schemas/PipelineGroupsComposition'
CreateOrUpdateStatementGroupBase:
type: object
required:
- type
- name
properties:
name:
type: string
description: The name of the statement group.
example: Community
type:
$ref: '#/components/schemas/StatementGroupType'
description:
type: string
description: The intended purpose of this statement group.
example: Provide contextually relevant query recommendations/results to Community site users.
conditionId:
type: string
description: 'The condition that must be met by a query in order to route that query through this query pipeline.
Typically, each query pipeline except the default one should have a condition, and you should ensure that the conditions you set on query pipelines are mutually exclusive.
**Note:**
A query cannot be routed through a query pipeline that does not have a condition unless:
- That query pipeline is set as the default query pipeline (see the `isDefault` property), or
- That query pipeline is enforced through the `pipeline` parameter of the query itself, in which case the query pipeline condition is bypassed.'
CreateStatementGroupResponse:
required:
- id
- name
- type
type: object
properties:
id:
type: string
description: The unique identifier of the statement group.
example: 679adb80-444e-11ea-b77f-2e728ce88125
name:
type: string
description: The name of the statement group.
example: Community
type:
type: string
description: The type name of the statement group.
enum:
- campaign
- permanent
isActive:
type: boolean
description: The start date of the campaign.
example: false
campaignStart:
type: string
description: The start date of the campaign.
example: '2001-07-20T23:01:05'
campaignEnd:
type: string
description: The end date of the campaign.
example: '2002-09-07T10:07:20'
description:
type: string
description: The intended purpose of this statement group.
example: Provide contextually relevant query recommendations/results to Community site users.
conditionId:
type: string
description: 'The condition that must be met by a query in order to route that query through this query pipeline.
Typically, each query pipeline except the default one should have a condition, and you should ensure that the conditions you set on query pipelines are mutually exclusive.
**Note:**
A query cannot be routed through a query pipeline that does not have a condition unless:
- That query pipeline is set as the default query pipeline (see the `isDefault` property), or
- That query pipeline is enforced through the `pipeline` parameter of the query itself, in which case the query pipeline condition is bypassed.'
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.
GetCampaignGroup:
allOf:
- $ref: '#/components/schemas/GetStatementGroupBase'
- $ref: '#/components/schemas/GetCampaignGroupBase'
PipelineGroupsComposition:
required:
- campaignGroupCount
- permanentGroupCount
- activeGroupCount
- inactiveGroupCount
- expiredGroupCount
- notStartedGroupCount
type: object
properties:
activeGroupCount:
type: integer
description: The number of active groups in the pipeline.
format: int32
inactiveGroupCount:
type: integer
description: The number of inactive groups in the pipeline.
format: int32
expiredGroupCount:
type: integer
description: The number of expired groups in the pipeline.
format: int32
notStartedGroupCount:
type: integer
description: The number of groups not started in the pipeline.
format: int32
campaignGroupCount:
type: integer
description: The number of campaign groups in the pipeline.
format: int32
permanentGroupCount:
type: integer
description: The number of permanent groups in the pipeline.
format: int32
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.
GetPermanentGroup:
allOf:
- $ref: '#/components/schemas/GetStatementGroupBase'
- $ref: '#/components/schemas/GetPermanentGroupBase'
ListFeatureActiveStateResponse:
type: object
required:
- featureActiveState
properties:
featureActiveState:
type: array
items:
$ref: '#/components/schemas/FeatureActiveState'
GetStatementGroup:
oneOf:
- $ref: '#/components/schemas/GetCampaignGroup'
- $ref: '#/components/schemas/GetPermanentGroup'
discriminator:
propertyName: type
mapping:
campaign: '#/components/schemas/GetCampaignGroup'
permanent: '#/components/schemas/GetPermanentGroup'
RestOperationValidationRequestCreateStatementGroupRequest:
required:
- operationType
type: object
properties:
operationType:
type: string
description: 'The type of operation to validate. Each operation type has specific validation rules.
Additional request parameters are required based on the type of operation to validate:
- `CREATE`: You must provide a `model`.
- `UPDATE`: You must provide a `model` and a `resourceId`.
- `DELETE`: You must provide a `resourceId`.
'
example: CREATE
enum:
- CREATE
- UPDATE
- DELETE
model:
$ref: '#/components/schemas/CreateOrUpdateStatementGroup'
resourceId:
type: string
description: 'The identifier of the resource. '
example: id
UpdateStatementGroupAssociationsRequest:
type: object
properties:
toAdd:
type: array
maxItems: 50
description: 'The rules to add to this group.
If you specify a rule from another group, it will be removed from the original group and added to this one instead.
**Note:** Invalid rule IDs will cause the request to fail.'
items:
$ref: '#/components/schemas/StatementGroupAssociationItem'
toRemove:
type: array
maxItems: 50
description: 'The rules to remove from this group.
**Note:** Orphaned rules, rules that are associated with another group, and non-existent rules will be ignored.'
items:
$ref: '#/components/schemas/StatementGroupAssociationItem'
CreateOrUpdateCampaignGroup:
allOf:
- $ref: '#/components/schemas/CreateOrUpdateStatementGroupBase'
- $ref: '#/components/schemas/CreateOrUpdateCampaignGroupBase'
GetCampaignGroupBase:
type: object
properties:
campaignStart:
type: string
description: The start date of the campaign.
example: '2001-07-20T23:01:05-04:00'
campaignEnd:
type: string
description: The end date of the campaign.
example: '2002-09-07T10:07:20-04:00'
status:
$ref: '#/components/schemas/StatementGroupStatus'
RestOperationValidationError:
required:
- message
type: object
properties:
message:
type: string
CreateOrUpdatePermanentGroup:
allOf:
- $ref: '#/components/schemas/CreateOrUpdateStatementGroupBase'
- $ref: '#/components/schemas/CreateOrUpdatePermanentGroupBase'
RestBatchOperationValidationRequestCreateStatementGroupRequest:
required:
- operations
type: object
properties:
operations:
type: array
description: A list of operations to validate.
example:
- operationType: CREATE
model: {}
- operationType: UPDATE
model: {}
resourceId: resource-id
- operationType: DELETE
resourceId: resource-id
items:
$ref: '#/components/schemas/RestOperationValidationRequestCreateStatementGroupRequest'
StatementGroupAssociationItem:
type: object
description: An object representing a rule to associate to a group.
required:
- featureType
- ruleId
properties:
featureType:
type: string
enum:
- resultRankings
description: The query pipeline feature that's enabled by this rule.
ruleId:
type: string
description: The unique identifier of the rule.
example: 493e51a8-bc9b-462d-9534-08a0995ecd55
UpdateStatementGroupAssociationsResponse:
type: object
required:
- associatedRules
properties:
associatedRules:
type: array
description: The rules associated with this group.
items:
$ref: '#/components/schemas/StatementGroupAssociationItem'
responses:
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
BadRequest:
summary: 'Bad Request (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#400-bad_request)'
value:
statusCode: 400
message: Invalid JSON format in request body.
NoRegisteredEndpoint:
summary: 'No Registered Endpoint (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#400-no_registered_endpoint)'
value:
statusCode: 400
message: No registered endpoint found for this organization.
errorCode: NO_REGISTERED_ENDPOINT
QueryPipelineInterrupted:
summary: 'Query Pipeline Interrupted (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#400-query_pipeline_interrupted)'
value:
statusCode: 400
message: Failed to evaluate your query as some conditions in your pipeline took too much time.
errorCode: QUERY_PIPELINE_INTERRUPTED
TooManyRequests:
description: 'Too Many Requests (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#429-too_many_requests)'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
statusCode: 429
message: Too many requests.
ServiceUnavailable:
description: 'Service Unavailable (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#5xx)'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
ServiceUnavailable:
summary: 'Server Unavailable (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#503-server_unavailable)'
value:
statusCode: 503
message: The server is currently unavailable due to overload or index unavailability.
errorCode: SERVER_UNAVAILABLE
OrganizationPaused:
summary: 'Organization Paused (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#503-organization_paused)'
value:
statusCode: 503
message: The organization is paused due to inactivity.
errorCode: ORGANIZATION_PAUSED
AuthenticationTimeout:
description: Authentication Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
statusCode: 419
message: Authentication timeout.
Forbidden:
description: 'Forbidden (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#403-forbidden)'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
statusCode: 403
message: Access denied. API key does not have sufficient privileges.
errorCode: FORBIDDEN
UnprocessableStatementGroupAssociations422:
description: The request to update the rules associated with the statement group could not be processed
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetailResponse'
example:
status: 422
title: Unprocessable request
detail: 'The request could not be completed due to missing rules: []'
UnprocessableEntity:
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
statusCode: 422
message: Unprocessable entity.
Unauthorized:
description: 'Unauthorized (see: https://docs.coveo.com/en/1471/build-a-search-ui/troubleshoot-query-error-codes#401-unauthorized)'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
statusCode: 401
message: Invalid access token.
errorCode: UNAUTHORIZED
parameters:
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
StatementGroupIdPath:
name: statementGroupId
in: path
description: The unique identifier of the statement group.
required: true
schema:
type: string
example: 679adb80-444e-11ea-b77f-2e728ce88125
PerPage:
name: perPage
in: query
description: The number of results to include per page.
schema:
type: integer
format: int32
minimum: 0
maximum: 200
default: 20
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
StatementGroupSortBy:
name: sortBy
in: query
description: 'The sort criteria to apply on the results.
`name` : Sort results in alphabetical order
`status`: Sort results according to their activation status (i.e., `Active`, `Inactive`, `Not Yet Started`, `Expire`)'
schema:
type: string
default: status
enum:
- name
- status
StatementGroupTypeParam:
name: types
in: query
description: The type name of the statement group.
content:
application/json:
schema:
type: array
minItems: 1
items:
$ref: '#/components/schemas/StatementGroupType'
StatementGroupStatusParam:
name: status
in: query
description: The status of the statement group.
content:
application/json:
schema:
type: array
minItems: 1
items:
$ref: '#/components/schemas/StatementGroupStatus'
OrganizationIdQueryRequired:
name: organizationId
in: query
description: The unique identifier of the target Coveo Cloud organization.
required: true
schema:
type: string
PipelineIdPath:
name: pipelineId
in: path
description: The unique identifier of the target query pipeline.
required: true
schema:
type: string
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://platform.cloud.coveo.com/oauth/authorize
tokenUrl: https://platform.cloud.coveo.com/oauth/token
scopes:
full: required