basePath: /v1
definitions:
BaseIdentityBody:
properties:
identity:
$ref: '#/definitions/Identity'
type: object
CatalogStreamOutArgs:
properties:
orderingId:
description: A unique identifier that represents the order of the request. By default, the Stream API automatically
sets this parameter to the current number of milliseconds since the Unix epoch, providing a timestamp that can also
serve as a unique order ID.
type: string
requestId:
requestId: A unique identifier for the request. This ID helps in tracking and identifying individual requests, ensuring
that each request can be distinctly recognized.
type: string
type: object
ChunkOutArgs:
properties:
fileId:
description: "The unique identifier of the file container. \nYou can use this identifier as the `fileId` query parameter\
\ value when pushing a batch of items or security identities, or as the `compressedBinaryDataFileId` property value\
\ when pushing item data. \n**Example:** `\"b5e8767e-8f0d-4a89-9095-1127915c89c7\"`"
type: string
requiredHeaders:
additionalProperties:
description: The HTTP headers to include when sending a `POST` request to the `uploadUri`.
type: string
type: object
uploadUri:
description: "The presigned URI of the file container. \nYou can upload data into the file container by sending a\
\ `PUT` request whose body is your raw textual data to this URI. \n**Example:** `\"https://s3.amazonaws.com/coveo-nprod-customerdata/proda/blobstore/[...]\"\
`"
type: string
type: object
DocumentBody:
additionalProperties:
description: "The metadata key-value pairs to push along with the item (see [Push source item metadata](https://docs.coveo.com/en/115/)).\
\ \n**Note:** \nThis specification indicates that metadata values must be of the string type, but other types of\
\ metadata values are also actually supported (see [Allowed metadata types](https://docs.coveo.com/en/162/))."
type: string
properties:
compressedBinaryData:
description: "The Base64-encoded item data. \nDepending on your specific needs, you can either use the `data`, `compressedBinaryData`,\
\ or `compressedBinaryDataFileId` property to push item data (see [Push source item data](https://docs.coveo.com/en/73/)).\
\ \n**Example:** `\"H4sIAAAAAAAA/0utSMwtyEkFAJ+b7G4HAAAA\"`"
type: string
compressedBinaryDataFileId:
description: "The unique identifier of the file container where the compressed or uncompressed, binary or non-binary\
\ item data was previously uploaded (see [Create a file container](https://docs.coveo.com/en/43/)). \nDepending\
\ on your specific needs, you can either use the `data`, `compressedBinaryData`, or `compressedBinaryDataFileId`\
\ property to push item data (see [Push source item data](https://docs.coveo.com/en/73/)). \n**Example:** `\"b5e8767e-8f0d-4a89-9095-1127915c89c7\"\
`"
type: string
data:
description: "The raw textual item data. \nDepending on your specific needs, you can either use the `data`, `compressedBinaryData`,\
\ or `compressedBinaryDataFileId` property to push item data (see [Push source item data](https://docs.coveo.com/en/73/)).\
\ \n**Example:** `\"<div>My raw textual item data</div>\"`"
type: string
fileExtension:
description: "The file extension of the item data you are pushing. \nValue must include a preceding `.` character.\
\ \nSpecifying a value for this property is typically only useful when using the `compressedBinaryData` or `compressedBinaryDataFileId`\
\ property to push compressed item data. \n**Example:** `\".html\"`"
type: string
parentId:
description: "The URI of the parent item (see [Understanding the parentId Property](https://docs.coveo.com/en/57/)).\
\ \n**Example:** `\"file://folder/\"`"
type: string
permissions:
items:
$ref: '#/definitions/PermissionSetsModel'
description: "The permission sets for this item. \nThis is only useful when pushing items in a secured Push source.\
\ \nA security identity must be explicitly allowed in **all** permission sets, and not be explicitly denied in\
\ **any** permission set to be allowed to see the item. \n**Note:** \n> The permission model described in this\
\ specification is flexible enough to allow you to faithfully replicate most secured enterprise systems (see [Simplified\
\ permission model](https://docs.coveo.com/en/107/)). However, the Push API also accepts a more complex permission\
\ model which allows you to define multiple permission levels and sets (see [Complete permission model](https://docs.coveo.com/en/25/))."
type: array
type: object
Empty:
type: object
EntityUpdateResult:
properties:
errorDetails:
type: string
result:
enum:
- Success
- AccessDenied
- TimedOut
- EntityIsInvalid
- EntityIsUnavailable
- SecurityProviderIsUnavailable
- SecurityProviderIsUnreachable
- SecurityProviderIsNotReady
- UnexpectedError
type: string
type: object
Error:
properties:
errorCode:
type: string
message:
type: string
type: object
GatewayTimeoutError:
properties:
message:
type: string
type: object
Identity:
properties:
additionalInfo:
additionalProperties:
type: string
type: object
name:
description: "The unique name of the security identity. \n**Example:** `\"Alpha Group\""
type: string
type:
description: "The security identity type. \n- `UNKNOWN`: a security identity whose type is unknown. \n- `USER`:\
\ an individual user security identity \n- `GROUP`: an existing group in the original secured enterprise system.\
\ Groups can have members of any valid security identity `type` (i.e., `UNKNOWN`, `USER`, `GROUP`, or `VIRTUAL_GROUP`).\
\ \n- `VIRTUAL_GROUP`: a group that does not exist in the original secured enterprise system. Mechanically, a `VIRTUAL_GROUP`\
\ works just like a `GROUP`. \n**Example:** `\"GROUP\""
enum:
- USER
- GROUP
- VIRTUAL_GROUP
- UNKNOWN
type: string
type: object
IdentityBody:
properties:
Result:
$ref: '#/definitions/EntityUpdateResult'
description: The security identity entity update result.
identity:
$ref: '#/definitions/Identity'
members:
items:
$ref: '#/definitions/Identity'
description: "The security identities to include as children of this security identity. \n**Notes:** \n>- Only\
\ security identities whose `type` is `GROUP` or `VIRTUAL_GROUP` typically have an array of `members`. \n>- A\
\ security identity in the `members` array can be of any valid `type` (i.e., `UNKNOWN`, `USER`, `GROUP`, or `VIRTUAL_GROUP`)."
type: array
wellKnowns:
items:
$ref: '#/definitions/Identity'
description: "The granted identities to give to this security identity. \n**Notes:** \n>- While all security identity\
\ types (i.e., `UNKNOWN`, `USER`, `GROUP`, and `VIRTUAL_GROUP`) are theoretically available, only security identities\
\ whose `type` is `GROUP` or `VIRTUAL_GROUP` should be given as granted identities. \n>- For legacy reasons,\
\ the Push API requires you to specify *granted identities* in an array property whose name is `wellKnowns`."
type: array
type: object
InlineUpdateBody:
properties:
partialUpdate:
items:
$ref: '#/definitions/InlineUpdateModel'
description: The partial update.
type: array
type: object
InlineUpdateModel:
type: object
MappedIdentity:
properties:
additionalInfo:
additionalProperties:
type: string
type: object
name:
description: "The unique name of the security identity to establish an alias relationship with. \n**Example:** `\"\
[email protected]\""
type: string
provider:
description: "The unique identifier of the security identity provider where the security identity to establish an\
\ alias relationship with is defined. \nThe security identity provider you are pushing the security identity alias\
\ to **must** cascade to this `provider`. \n**Note:** \n> Specifying a `provider` is only necessary when the security\
\ identity provider you are pushing the security identity alias to cascades to multiple security identity providers.\
\ If the target security identity provider cascades to a single security identity provider, the service automatically\
\ sets the `provider` value to the unique identifier of that cascading security identity provider. \n**Example:**\
\ `\"My Security Identity Provider\""
type: string
type:
description: "The type of the security identity to establish an alias relationship with. \n**Note:** \n> While all\
\ security identity types (i.e., `UNKNOWN`, `USER`, `GROUP`, and `VIRTUAL_GROUP`) are theoretically available, you\
\ should normally establish alias relationships exclusively between security identities whose `type` is `USER`.\
\ \n**Example:** `\"USER\""
enum:
- USER
- GROUP
- VIRTUAL_GROUP
- UNKNOWN
type: string
type: object
MappedIdentityBody:
properties:
Result:
$ref: '#/definitions/EntityUpdateResult'
description: The security identity entity update result.
identity:
$ref: '#/definitions/Identity'
mappings:
items:
$ref: '#/definitions/MappedIdentity'
description: The security identities to establish an alias relationship with.
type: array
wellKnowns:
items:
$ref: '#/definitions/Identity'
description: "The granted identities to give to this security identity alias. \n**Notes:** \n>- While all security\
\ identity types (i.e., `UNKNOWN`, `USER`, `GROUP`, and `VIRTUAL_GROUP`) are theoretically available, only security\
\ identities whose `type` is `GROUP` or `VIRTUAL_GROUP` should be given as granted identities. \n>- For legacy\
\ reasons, the Push API requires you to specify *granted identities* in an array property whose name is `wellKnowns`."
type: array
type: object
OpenStreamOutArgs:
properties:
fileId:
description: "The unique identifier of the file container. \n**Example:** `\"b5e8767e-8f0d-4a89-9095-1127915c89c7\"\
`"
type: string
requiredHeaders:
additionalProperties:
description: The HTTP headers to include when sending a `POST` request to the `uploadUri`.
type: string
type: object
streamId:
description: "Unique identifier for the stream. \nThis identifier is required to request additional chunks in the\
\ stream, or to close the stream."
type: string
uploadUri:
description: "The presigned URI of the file container. \nYou can upload data into the file container by sending a\
\ `PUT` request whose body is your raw textual data to this URI. \n**Example:** `\"https://s3.amazonaws.com/coveo-nprod-customerdata/proda/blobstore/[...]\"\
`"
type: string
type: object
PermissionIdentityModel:
properties:
identity:
description: "The unique name of the security identity (see [Manage security identities in a security identity provider](https://docs.coveo.com/en/132/)).\
\ \n**Example:** `\"[email protected]\"`"
type: string
identityType:
description: "The type of the security identity (see [Manage security identities in a security identity provider](https://docs.coveo.com/en/132/)).\
\ \n**Example:** `\"User\"`"
enum:
- User
- Group
- VirtualGroup
- Unknown
type: string
securityProvider:
description: "The unique name of the security identity provider in which the security identity is defined. Defaults\
\ to the first security identity provider associated with the target Push source (see [Creating a Security Identity\
\ Provider for a Secured Push Source](https://docs.coveo.com/en/85/). \n**Example:** `My Secured Push Source Security\
\ Identity Provider`"
type: string
type: object
PermissionSetsModel:
properties:
allowAnonymous:
description: Whether this permission set allows anonymous users to see the item in their query results.
type: boolean
allowedPermissions:
items:
$ref: '#/definitions/PermissionIdentityModel'
description: "The security identities that are explicitly allowed to see the item by this permission set. \n**Note:**\
\ \n> You must push those security identities in the security identity provider of the target Push source, otherwise\
\ they will be in error (see [Manage security identities in a security identity provider](https://docs.coveo.com/en/132/))."
type: array
deniedPermissions:
items:
$ref: '#/definitions/PermissionIdentityModel'
description: "The security identities that are explicitly denied to see the item by this permission set. \n**Note:**\
\ \n> You must push those security identities in the security identity provider of the target Push source, otherwise\
\ they will be in error (see [Manage security identities in a security identity provider](https://docs.coveo.com/en/132/))."
type: array
type: object
PresignedUploadUrl:
properties:
fileId:
description: "The unique identifier of the file container. \nYou can use this identifier as the `fileId` query parameter\
\ value when pushing a batch of items or security identities, or as the `compressedBinaryDataFileId` property value\
\ when pushing item data. \n**Example:** `\"b5e8767e-8f0d-4a89-9095-1127915c89c7\"`"
type: string
requiredHeaders:
additionalProperties:
description: The HTTP headers to include when sending a `POST` request to the `uploadUri`.
type: string
type: object
uploadUri:
description: "The presigned URI of the file container. \nYou can upload data into the file container by sending a\
\ `PUT` request whose body is your raw textual data to this URI. \n**Example:** `\"https://s3.amazonaws.com/coveo-nprod-customerdata/proda/blobstore/[...]\"\
`"
type: string
type: object
host: api.cloud.coveo.com/push
info:
description: The Push API allows you to *push* items and security identities, as opposed to letting standard Coveo Cloud
V2 crawlers *pull* this data from a content repository. This is especially useful when you need to index content from
a cloud or on-premises system for which no dedicated source type exists in the Coveo Cloud V2 platform.
title: Push API - prd
version: '2016-03-03T13:22:11Z'
paths:
/organizations/{organizationId}/data-collections/{dataCollectionId}/stream/deleteolderthan/{epochMilliseconds}:
post:
consumes:
- application/json
description: Delete documents indexed before specified epoch milliseconds.
parameters:
- description: "The unique identifier of the target Coveo Cloud V2 organization. \n**Example:** `mycoveocloudv2organizationg8tp8wu3`"
in: path
name: organizationId
required: true
type: string
- description: "The unique identifier of the data collection. \n**Example:** `myorganization-rp5rxzbdz753uhndklv2ztkfgy`"
in: path
name: dataCollectionId
required: true
type: string
- description: "The epoch milliseconds timestamp limit used to delete documents indexed before it. \n**Example:** `1699456507127\
\ for nov 8th 2023 15:15 UTC time`"
in: path
name: epochMilliseconds
required: true
type: string
- description: "A grace period (in minutes) whose purpose is to give the Coveo Cloud V2 indexing pipeline enough time\
\ to finish processing any previously enqueued operation that would affect the target stream enabled source. Default\
\ value is 15 minutes. \n**Example:** `5`"
format: int32
in: query
minimum: 0
name: queueDelay
required: false
type: integer
produces:
- application/json
responses:
'201':
description: Created
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/CatalogStreamOutArgs'
'400':
description: Bad request
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'404':
description: Not found
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'412':
description: Precondition Failed
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'415':
description: Unsupported Media Type
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'429':
description: Too many Requests
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Retry-After:
type: number
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
security:
- oauth2:
- full
summary: Delete Old Documents
tags:
- Stream
x-pretty-name: deleteOlderThanStream
/organizations/{organizationId}/data-collections/{dataCollectionId}/stream/merge:
put:
consumes:
- application/json
description: Perform a shallow merge with a batch of items in a Data Collection.
externalDocs:
description: Merge a batch of items in a Data Collection.
url: https://docs.coveo.com/en/p4eb0515/coveo-for-commerce/partial-catalog-data-updates#shallow-merge-operations
parameters:
- description: "The unique identifier of the target Coveo Cloud V2 organization. \n**Example:** `mycoveocloudv2organizationg8tp8wu3`"
in: path
name: organizationId
required: true
type: string
- description: "The unique identifier of the data collection. \n**Example:** `myorganization-rp5rxzbdz753uhndklv2ztkfgy`"
in: path
name: dataCollectionId
required: true
type: string
- description: "The unique identifier of the Amazon S3 file container into which the JSON definition of the content\
\ update was previously uploaded (see [Create a file container](https://docs.coveo.com/en/43/)). \n**Example:**\
\ d22778ca-7f42-4e13-9d9a-47d01bce866c"
in: query
name: fileId
required: true
type: string
produces:
- application/json
responses:
'202':
description: Created
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/CatalogStreamOutArgs'
'400':
description: Bad request
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'404':
description: Not found
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'412':
description: Precondition Failed
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'415':
description: Unsupported Media Type
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'429':
description: Too many Requests
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Retry-After:
type: number
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
X-Content-Type-Options:
type: string
X-Frame-Options:
type: string
X-XSS-Protection:
type: string
schema:
$ref: '#/definitions/Error'
security:
- oauth2:
- full
summary: Merge Entities of a Data Collection
tags:
- Stream
x-pretty-name: mergeStream
/organizations/{organizationId}/data-collections/{dataCollectionId}/stream/open:
post:
consumes:
- application/json
description: Opens a stream for upload.
parameters:
- description: "The unique identifier of the target Coveo Cloud V2 organization. \n**Example:** `mycoveocloudv2organizationg8tp8wu3`"
in: path
name: organizationId
required: true
type: string
- description: "The unique identifier of the data collection. \n**Example:** `myorganization-rp5rxzbdz753uhndklv2ztkfgy`"
in: path
name: dataCollectionId
required: true
type: string
produces:
- application/json
responses:
'201':
description: Created
headers:
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Allow-Origin:
type: string
Content-Security-Policy:
type: string
Referrer-Policy:
type: string
Strict-Transport-Security:
type: string
# --- truncated at 32 KB (196 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/openapi/coveo-push-openapi-original.yml