<!-- Generated by `just docs` from catalog/toolkits/algolia_ingestion.yaml, catalog/expansions/algolia_ingestion.yaml, catalog/evals/scorecard.json. Edit the source, not this file. -->

# Algolia Ingestion

Feeding a search index. Push records in, run and watch import tasks, and manage the sources and transformations behind them.

| Property | Value |
| --- | --- |
| Slug | `algolia_ingestion` |
| Definition version | `0.1.0` |
| Base URL | `https://data.us.algolia.com` |
| Auth schemes | `api_key` |
| Action tools | 56 |
| By class | 17 read, 33 write, 6 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |

## Measured routing accuracy

69 golden cases replayed through the router over the whole index: measured over corpus `ea4f12ad2948` (65 toolkits, 2283 tools indexed and 13 declared uncallable), 56 cases written by hand and 13 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

| Measure | Cases | Share |
| --- | --- | --- |
| top-1 | 47/69 | 68.1% |
| top-8 | 65/69 | 94.2% |

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. `just eval-live` measures the same cases through the live reranker.

## Authentication

Connect an entity with `ConnectionsService.InitiateConnection`, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

### `api_key`

| Property | Value |
| --- | --- |
| Placement | `header` |
| Name | `x-algolia-api-key` |
| Rendered as | `{key}` |

Submit the key with `ConnectionsService` rather than putting it in a request; it is sealed at rest and never returned.

## Tools

56 action tools. The catalog-wide slug is `algolia_ingestion.<tool>`, which is what `search_tools` returns and `call_tool` takes.

### `algolia_ingestion.list_authentications`

List the Algolia ingestion authentication resources: the saved credentials and login secrets used to connect the pipeline to external systems and providers. Calls GET /1/authentications.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/authentications`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `platform` | array of string | no | Ecommerce platform for which to retrieve authentications. |
| `sort` | string, one of name, type, platform, updatedAt, createdAt | no | Property by which to sort the list of authentications. Defaults to createdAt. |
| `type` | array of string | no | Type of authentication resource to retrieve. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authentications` | array of object |  |
| `authentications[].authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `authentications[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `authentications[].input` | object | Credentials for authenticating with a Google service account, such as BigQuery. |
| `authentications[].name` | string | Descriptive name for the resource. |
| `authentications[].owner` | string | Owner of the resource. |
| `authentications[].platform` | string, one of bigcommerce, commercetools, shopify | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. |
| `authentications[].type` | string, one of googleServiceAccount, basic, apiKey, oauth, algolia, algoliaInsights, secrets | Type of authentication. This determines the type of credentials required in the `input` object. |
| `authentications[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |

Also retrieved by: "show the saved credentials for connecting to systems", "list the login secrets the pipeline uses", "which providers do we have credentials for".

### `algolia_ingestion.create_authentication`

Create an Algolia ingestion authentication resource: save a new set of credentials or login secret so the pipeline can connect to an external system. Calls POST /1/authentications.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/authentications`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `input` | object | **yes** | Credentials for authenticating with a Google service account, such as BigQuery. |
| `input.clientEmail` | string | **yes** | Email address of the Google service account. |
| `input.privateKey` | string | **yes** | Private key of the Google service account. This field is `null` in the API response. |
| `name` | string | **yes** | Descriptive name for the resource. |
| `platform` | string, one of bigcommerce, commercetools, shopify | no | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. |
| `type` | string, one of googleServiceAccount, basic, apiKey, oauth, algolia, algoliaInsights, secrets | **yes** | Type of authentication. This determines the type of credentials required in the `input` object. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `name` | string | Descriptive name for the resource. |

Also retrieved by: "save credentials for reaching a system", "store a new login secret for a provider", "add connection credentials for the pipeline".

### `algolia_ingestion.search_authentications`

Search the Algolia ingestion authentication resources: filter the saved credentials and connection secrets by name, platform, or type instead of paging the whole list. Calls POST /1/authentications/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/authentications/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationIDs` | array of string | **yes** |  |

Also retrieved by: "find a saved credential by name", "filter connection secrets by platform", "which credentials match this provider".

### `algolia_ingestion.get_authentication`

Get one Algolia ingestion authentication resource by its id: the saved credential used to connect to an external system, without its secret. Calls GET /1/authentications/{authenticationID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/authentications/{{params.authenticationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | **yes** | Unique identifier of an authentication resource. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `input` | object | Credentials for authenticating with a Google service account, such as BigQuery. |
| `input.clientEmail` | string | Email address of the Google service account. |
| `input.privateKey` | string | Private key of the Google service account. This field is `null` in the API response. |
| `name` | string | Descriptive name for the resource. |
| `owner` | string | Owner of the resource. |
| `platform` | string, one of bigcommerce, commercetools, shopify | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. |
| `type` | string, one of googleServiceAccount, basic, apiKey, oauth, algolia, algoliaInsights, secrets | Type of authentication. This determines the type of credentials required in the `input` object. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "pull up one saved credential by id", "show a single stored connection secret", "fetch the details of one credential".

### `algolia_ingestion.update_authentication`

Update an Algolia ingestion authentication resource: change the stored credential's name, platform, or secret so the pipeline connects with new details. Calls PATCH /1/authentications/{authenticationID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /1/authentications/{{params.authenticationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | **yes** | Unique identifier of an authentication resource. |
| `input` | object | no | Credentials for authenticating with a Google service account, such as BigQuery. |
| `input.clientEmail` | string | no | Email address of the Google service account. |
| `input.privateKey` | string | no | Private key of the Google service account. This field is `null` in the API response. |
| `name` | string | no | Descriptive name for the resource. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `name` | string | Descriptive name for the resource. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "rotate the secret on a stored credential", "change how the pipeline logs in to a system", "fix the credential details for a provider".

### `algolia_ingestion.delete_authentication`

Delete an Algolia ingestion authentication resource: remove a stored credential the pipeline no longer uses to connect to a system. Calls DELETE /1/authentications/{authenticationID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /1/authentications/{{params.authenticationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | **yes** | Unique identifier of an authentication resource. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "remove a stored credential we no longer use", "drop a saved connection secret", "delete an unused provider credential".

### `algolia_ingestion.list_destinations`

List the Algolia ingestion destinations: the target indices and places where imported and ingested data is written at the end of the pipeline. Calls GET /1/destinations.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/destinations`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | array of string | no | Authentication ID used by destinations. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of name, type, updatedAt, createdAt | no | Property by which to sort the destinations. Defaults to createdAt. |
| `transformationID` | string | no | Get the list of destinations used by a transformation. |
| `type` | array of string | no | Destination type. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `destinations` | array of object |  |
| `destinations[].authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `destinations[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `destinations[].destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `destinations[].input` | object |  |
| `destinations[].name` | string | Descriptive name for the resource. |
| `destinations[].owner` | string | Owner of the resource. |
| `destinations[].transformationIDs` | array |  |
| `destinations[].type` | string, one of search, insights | Destination type. - `search`. Data is stored in an Algolia index. - `insights`. Data is recorded as user events in the Insights API. |
| `destinations[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |

Also retrieved by: "where does ingested data get written", "show the target indices data lands in", "list the write targets of the pipeline".

### `algolia_ingestion.create_destination`

Create an Algolia ingestion destination: define a new target index or place to write imported records into at the end of the pipeline. Calls POST /1/destinations.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/destinations`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `input` | object | **yes** |  |
| `input.attributesToExclude` | array | no | Attributes from your source to exclude from Algolia records. Not all your data attributes will be useful for searching. Keeping your Algolia records small increases indexing and search performance. -... |
| `input.indexName` | string | **yes** | Algolia index name (case-sensitive). |
| `input.recordType` | string, one of product, variant, collection | no | Record type for ecommerce sources. |
| `name` | string | **yes** | Descriptive name for the resource. |
| `transformationIDs` | array of string | no |  |
| `type` | string, one of search, insights | **yes** | Destination type. - `search`. Data is stored in an Algolia index. - `insights`. Data is recorded as user events in the Insights API. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `name` | string | Descriptive name for the resource. |

Also retrieved by: "define a new place to write records into", "add a target index for imported data", "set up where the pipeline writes".

### `algolia_ingestion.search_destinations`

Search the Algolia ingestion destinations: filter the target indices data is written into by name or type instead of paging the whole list. Calls POST /1/destinations/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/destinations/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `destinationIDs` | array of string | **yes** |  |

Also retrieved by: "find the target index by name", "which write targets match this filter", "filter the places records land in".

### `algolia_ingestion.get_destination`

Get one Algolia ingestion destination by its id: the target index records are written into at the end of the pipeline, and how it is configured. Calls GET /1/destinations/{destinationID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/destinations/{{params.destinationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `destinationID` | string | **yes** | Unique identifier of a destination. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `input` | object |  |
| `input.attributesToExclude` | array | Attributes from your source to exclude from Algolia records. Not all your data attributes will be useful for searching. Keeping your Algolia records small increases indexing and search performance. -... |
| `input.indexName` | string | Algolia index name (case-sensitive). |
| `input.recordType` | string, one of product, variant, collection | Record type for ecommerce sources. |
| `name` | string | Descriptive name for the resource. |
| `owner` | string | Owner of the resource. |
| `transformationIDs` | array of string |  |
| `type` | string, one of search, insights | Destination type. - `search`. Data is stored in an Algolia index. - `insights`. Data is recorded as user events in the Insights API. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "show one write target by id", "what index does this target write to", "details of a single ingestion output".

### `algolia_ingestion.update_destination`

Update an Algolia ingestion destination: point it at a different target index or change how imported records are written at the end of the pipeline. Calls PATCH /1/destinations/{destinationID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /1/destinations/{{params.destinationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `destinationID` | string | **yes** | Unique identifier of a destination. |
| `input` | object | no |  |
| `input.attributesToExclude` | array | no | Attributes from your source to exclude from Algolia records. Not all your data attributes will be useful for searching. Keeping your Algolia records small increases indexing and search performance. -... |
| `input.indexName` | string | no | Algolia index name (case-sensitive). |
| `input.recordType` | string, one of product, variant, collection | no | Record type for ecommerce sources. |
| `name` | string | no | Descriptive name for the resource. |
| `transformationIDs` | array of string | no |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `name` | string | Descriptive name for the resource. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "point the pipeline at a different index", "change where imported records are written", "edit the output settings of a write target".

### `algolia_ingestion.delete_destination`

Delete an Algolia ingestion destination: stop writing imported records into that target index and remove it from the pipeline. Calls DELETE /1/destinations/{destinationID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /1/destinations/{{params.destinationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `destinationID` | string | **yes** | Unique identifier of a destination. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "stop writing records into this index", "remove a write target from the pipeline", "drop an output we no longer load into".

### `algolia_ingestion.push`

Push records straight into an Algolia index through the ingestion pipeline: send a batch of documents to be transformed and indexed without configuring a source first. Calls POST /1/push/{indexName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/push/{{params.indexName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of addObject, updateObject, partialUpdateObject, partialUpdateObjectNoCreate, deleteObject, delete, clear | **yes** | Which indexing operation to perform: - `addObject`: adds records to an index. Equivalent to the "Add a new record (with auto-generated object ID)" operation. - `updateObject`: adds or replaces... |
| `indexName` | string | **yes** | Name of the index on which to perform the operation. |
| `records` | array of object | **yes** |  |
| `records[].objectID` | string | **yes** | Unique record identifier. |
| `referenceIndexName` | string | no | This is required when targeting an index that does not have a push connector setup (e.g. a tmp index), but you wish to attach another index's transformation to it (e.g. the source index name). |
| `watch` | boolean | no | When provided, the push operation will be synchronous and the API will wait for the ingestion to be finished before responding. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `data` | array of object | This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `events` | array of object | in case of error, observability events will be added to the response. |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `message` | string | a message describing the outcome of the operation that has been ran (push, discover or validate) run. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "send a batch of documents to an index", "upload records through the pipeline now", "index some data without setting up a connector".

### `algolia_ingestion.list_runs`

List the Algolia ingestion runs: the history of pipeline executions, each a past job that pulled and imported data, with status and timing. Calls GET /1/runs.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/runs`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `endDate` | string | no | Date and time for the latest run to retrieve, in RFC 3339 format. By default, the current day is used. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of status, updatedAt, createdAt | no | Property by which to sort the list of task runs. Defaults to createdAt. |
| `startDate` | string | no | Date and time for the earliest run to retrieve, in RFC 3339 format. By default, the current day minus seven days is used. |
| `status` | array of string | no | Run status for filtering the list of task runs. |
| `taskID` | string | no | Task ID for filtering the list of task runs. |
| `type` | array of string | no | Run type for filtering the list of task runs. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `runs` | array of object |  |
| `runs[].appID` | string |  |
| `runs[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `runs[].failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `runs[].finishedAt` | string | Date and time when the task finished, in RFC 3339 format. |
| `runs[].outcome` | string, one of success, failure | Task run outcome. |
| `runs[].progress` | object |  |
| `runs[].reason` | string | More information about the task run's outcome. |
| `runs[].reasonCode` | string, one of internal, cancelled, critical, no_events, too_many_errors, lacking_events, ok, blocking, idle | A code for the task run's outcome. A readable description of the code is included in the `reason` response property. |
| `runs[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `runs[].startedAt` | string | Date and time when the task started, in RFC 3339 format. |
| `runs[].status` | string, one of created, started, finished, skipped | Task run status. |
| `runs[].taskID` | string | Universally unique identifier (UUID) of a task. |
| `runs[].type` | string, one of reindex, update, discover, validate, push | Task run type. |
| `window` | object | Time window by which to filter the observability data. |
| `window.endDate` | string | Date and time representing the newest data in the time window, in RFC 3339 format. |
| `window.startDate` | string | Date and time representing the oldest data in the time window, in RFC 3339 format. |

Also retrieved by: "show the history of pipeline executions", "list past ingestion jobs and their status", "what pipeline runs have happened".

### `algolia_ingestion.get_run`

Get one Algolia ingestion run by its id: the details of a single pipeline execution, its status, and how much data it moved. Calls GET /1/runs/{runID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/runs/{{params.runID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `runID` | string | **yes** | Unique identifier of a task run. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `appID` | string |  |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `finishedAt` | string | Date and time when the task finished, in RFC 3339 format. |
| `outcome` | string, one of success, failure | Task run outcome. |
| `progress` | object |  |
| `progress.expectedNbOfEvents` | integer |  |
| `progress.receivedNbOfEvents` | integer |  |
| `reason` | string | More information about the task run's outcome. |
| `reasonCode` | string, one of internal, cancelled, critical, no_events, too_many_errors, lacking_events, ok, blocking, idle | A code for the task run's outcome. A readable description of the code is included in the `reason` response property. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |
| `startedAt` | string | Date and time when the task started, in RFC 3339 format. |
| `status` | string, one of created, started, finished, skipped | Task run status. |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `type` | string, one of reindex, update, discover, validate, push | Task run type. |

Also retrieved by: "look up one pipeline execution by id", "show the details of a single ingestion job", "how did one run go".

### `algolia_ingestion.list_events`

List the events of one Algolia ingestion run: the log lines and step records emitted during a single pipeline execution, for debugging. Calls GET /1/runs/{runID}/events.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/runs/{{params.runID}}/events`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `endDate` | string | no | Date and time in RFC 3339 format for the latest events to retrieve. By default, the current time is used. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `runID` | string | **yes** | Unique identifier of a task run. |
| `sort` | string, one of status, type, publishedAt | no | Property by which to sort the list of task run events. |
| `startDate` | string | no | Date and time in RFC 3339 format for the earliest events to retrieve. By default, the current time minus three hours is used. |
| `status` | array of string | no | Event status for filtering the list of task runs. |
| `type` | array of string | no | Event type for filtering the list of task runs. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `events` | array of object |  |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `window` | object | Time window by which to filter the observability data. |
| `window.endDate` | string | Date and time representing the newest data in the time window, in RFC 3339 format. |
| `window.startDate` | string | Date and time representing the oldest data in the time window, in RFC 3339 format. |

Also retrieved by: "show the log lines of a pipeline execution", "the step by step records of one run", "debug what happened during a job".

### `algolia_ingestion.get_event`

Get one event of an Algolia ingestion run: a single log line or step record from a pipeline execution, with its message and timing, for debugging. Calls GET /1/runs/{runID}/events/{eventID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/runs/{{params.runID}}/events/{{params.eventID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `eventID` | string | **yes** | Unique identifier of an event. |
| `runID` | string | **yes** | Unique identifier of a task run. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `batchSize` | integer | The extracted record batch size. |
| `data` | object |  |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |
| `status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `type` | string, one of fetch, record, log, transform |  |

Also retrieved by: "open one log line from a job", "what does this single step record say", "drill into one entry of a run's log".

### `algolia_ingestion.list_sources`

List the Algolia ingestion sources: the upstream systems, databases, and connectors the pipeline pulls and draws data from. Calls GET /1/sources.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/sources`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | array of string | no | Authentication IDs of the sources to retrieve. 'none' returns sources that doesn't have an authentication. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of name, type, updatedAt, createdAt | no | Property by which to sort the list of sources. Defaults to createdAt. |
| `type` | array of string | no | Source type. Some sources require authentication. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `sources` | array of object |  |
| `sources[].authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `sources[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `sources[].input` | object | Specific configuration attributes of a `commercetools` source. |
| `sources[].name` | string |  |
| `sources[].owner` | string | Owner of the resource. |
| `sources[].sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `sources[].type` | string, one of algoliaIndex, bigcommerce, bigquery, commercetools, csv, docker, ga4BigqueryExport, json, shopify, push |  |
| `sources[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "which upstream systems do we pull from", "show the connectors we draw data from", "list the inputs feeding the pipeline".

### `algolia_ingestion.create_source`

Create an Algolia ingestion source: connect a new upstream system, database, or connector to draw and pull data from into the pipeline. Calls POST /1/sources.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `input` | object | no | Specific configuration attributes of a `commercetools` source. |
| `input.customFields` | object | no | Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). |
| `input.fallbackIsInStockValue` | boolean | no | Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. Defaults to true. |
| `input.locales` | array | no | Locales for your commercetools stores. |
| `input.productQueryPredicate` | string | no | Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). |
| `input.projectKey` | string | **yes** |  |
| `input.storeKeys` | array | no |  |
| `input.url` | string | **yes** |  |
| `input.useImagesObjects` | boolean | no | When set to true, the connector indexes objects with all images attributes instead of only the URLs. |
| `name` | string | **yes** | Descriptive name of the source. |
| `type` | string, one of algoliaIndex, bigcommerce, bigquery, commercetools, csv, docker, ga4BigqueryExport, json, shopify, push | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `name` | string | Descriptive name of the source. |
| `sourceID` | string | Universally uniqud identifier (UUID) of a source. |

Also retrieved by: "connect a new upstream system", "add a connector to draw data from", "hook up an input to the pipeline".

### `algolia_ingestion.search_sources`

Search the Algolia ingestion sources: filter the upstream systems and connectors the pipeline pulls from by name or type instead of paging the whole list. Calls POST /1/sources/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `sourceIDs` | array of string | **yes** |  |

Also retrieved by: "find an upstream connector by name", "which inputs match this filter", "filter the systems we pull data from".

### `algolia_ingestion.validate_source`

Check an Algolia ingestion source before saving it: confirm the connection details are usable and the upstream system can actually be reached. Calls POST /1/sources/validate.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources/validate`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `input` | object | no | Specific configuration attributes of a `commercetools` source. |
| `input.customFields` | object | no | Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). |
| `input.fallbackIsInStockValue` | boolean | no | Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. Defaults to true. |
| `input.locales` | array | no | Locales for your commercetools stores. |
| `input.productQueryPredicate` | string | no | Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). |
| `input.projectKey` | string | **yes** |  |
| `input.storeKeys` | array | no |  |
| `input.url` | string | **yes** |  |
| `input.useImagesObjects` | boolean | no | When set to true, the connector indexes objects with all images attributes instead of only the URLs. |
| `name` | string | **yes** | Descriptive name of the source. |
| `type` | string, one of algoliaIndex, bigcommerce, bigquery, commercetools, csv, docker, ga4BigqueryExport, json, shopify, push | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `data` | array of object | This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `events` | array of object | in case of error, observability events will be added to the response. |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `message` | string | a message describing the outcome of the operation that has been ran (push, discover or validate) run. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "test a connection before saving it", "can the pipeline reach this system", "dry run the settings for a new input".

### `algolia_ingestion.get_source`

Get one Algolia ingestion source by its id: the upstream system or connector the pipeline draws data from, and how it is configured. Calls GET /1/sources/{sourceID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/sources/{{params.sourceID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationID` | string | Universally unique identifier (UUID) of an authentication resource. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `input` | object | Specific configuration attributes of a `commercetools` source. |
| `input.customFields` | object | Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). |
| `input.fallbackIsInStockValue` | boolean | Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. Defaults to true. |
| `input.locales` | array | Locales for your commercetools stores. |
| `input.productQueryPredicate` | string | Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). |
| `input.projectKey` | string |  |
| `input.storeKeys` | array |  |
| `input.url` | string |  |
| `input.useImagesObjects` | boolean | When set to true, the connector indexes objects with all images attributes instead of only the URLs. |
| `name` | string |  |
| `owner` | string | Owner of the resource. |
| `sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `type` | string, one of algoliaIndex, bigcommerce, bigquery, commercetools, csv, docker, ga4BigqueryExport, json, shopify, push |  |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "show one input connector by id", "how is this upstream system configured", "details of a single data feed".

### `algolia_ingestion.update_source`

Update an Algolia ingestion source: change the upstream system's connection details, credentials, or settings so the pipeline pulls from it differently. Calls PATCH /1/sources/{sourceID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /1/sources/{{params.sourceID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `input` | object | no | Specific configuration attributes of a `commercetools` source. |
| `input.customFields` | object | no | Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). |
| `input.fallbackIsInStockValue` | boolean | no | Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. |
| `input.locales` | array | no | Locales for your commercetools stores. |
| `input.productQueryPredicate` | string | no | Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). |
| `input.storeKeys` | array | no |  |
| `input.url` | string | no |  |
| `input.useImagesObjects` | boolean | no | When set to true, the connector indexes objects with all images attributes instead of only the URLs. |
| `name` | string | no | Descriptive name of the source. |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string | Descriptive name of the source. |
| `sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "change the settings of an input connector", "repoint the feed at a different database", "edit how we pull from an upstream system".

### `algolia_ingestion.delete_source`

Delete an Algolia ingestion source: disconnect an upstream system so the pipeline no longer pulls data from it. Calls DELETE /1/sources/{sourceID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /1/sources/{{params.sourceID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "disconnect an upstream system", "stop pulling data from this feed", "remove an input we no longer use".

### `algolia_ingestion.trigger_docker_source_discover`

Ask an Algolia ingestion source to list what it can offer: run discovery against a connector so its available streams, tables, and collections come back. Calls POST /1/sources/{sourceID}/discover.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources/{{params.sourceID}}/discover`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `data` | array of object | This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `events` | array of object | in case of error, observability events will be added to the response. |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `message` | string | a message describing the outcome of the operation that has been ran (push, discover or validate) run. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "what tables can this connector see", "list the streams available from a feed", "run discovery against an upstream system".

### `algolia_ingestion.run_source`

Run an Algolia ingestion source: kick off every task and job attached to one upstream connector so its data is pulled in now. Calls POST /1/sources/{sourceID}/run.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources/{{params.sourceID}}/run`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `entityIDs` | array of string | no | List of entityIDs to update. |
| `entityType` | string, one of product, collection | no | Type of entity to update. |
| `indexToExclude` | array of string | no | List of index names to exclude in reindex/update. |
| `indexToInclude` | array of string | no | List of index names to include in reindex/update. |
| `runMetadata` | object | no | Additional information that will be passed to the created runs. |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `taskWithRunID` | object | Map of taskID sent for reindex with the corresponding runID. |

Also retrieved by: "kick off the jobs for one connector", "pull data from an upstream system now", "trigger everything attached to a source".

### `algolia_ingestion.validate_source_before_update`

Check a change to an Algolia ingestion source before saving it: confirm the edited connection details are usable and the upstream system still answers. Calls POST /1/sources/{sourceID}/validate.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/sources/{{params.sourceID}}/validate`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationID` | string | no | Universally unique identifier (UUID) of an authentication resource. |
| `input` | object | no | Specific configuration attributes of a `commercetools` source. |
| `input.customFields` | object | no | Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). |
| `input.fallbackIsInStockValue` | boolean | no | Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. |
| `input.locales` | array | no | Locales for your commercetools stores. |
| `input.productQueryPredicate` | string | no | Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). |
| `input.storeKeys` | array | no |  |
| `input.url` | string | no |  |
| `input.useImagesObjects` | boolean | no | When set to true, the connector indexes objects with all images attributes instead of only the URLs. |
| `name` | string | no | Descriptive name of the source. |
| `sourceID` | string | **yes** | Unique identifier of a source. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `data` | array of object | This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `events` | array of object | in case of error, observability events will be added to the response. |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `message` | string | a message describing the outcome of the operation that has been ran (push, discover or validate) run. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "test an edit to a connector before saving", "does the upstream still answer with these changes", "verify new settings on an existing feed".

### `algolia_ingestion.list_tasks_v1`

List the Algolia ingestion tasks on the older v1 API: the scheduled jobs that move data from a source into a destination, as the first generation of the endpoint returns them. Calls GET /1/tasks.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/tasks`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | array of string | no | Actions for filtering the list of tasks. |
| `destinationID` | array of string | no | Destination IDs for filtering the list of tasks. |
| `enabled` | boolean | no | Whether to filter the list of tasks by the `enabled` status. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of enabled, triggerType, action, updatedAt, createdAt | no | Property by which to sort the list of tasks. Defaults to createdAt. |
| `sourceID` | array of string | no | Source IDs for filtering the list of tasks. |
| `triggerType` | array of string | no | Type of task trigger for filtering the list of tasks. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `tasks` | array of object |  |
| `tasks[].action` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `tasks[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `tasks[].cursor` | string | Date and time when the last cursor was created, in RFC 3339 format. |
| `tasks[].destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `tasks[].enabled` | boolean | Whether the task is enabled. Defaults to true. |
| `tasks[].failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `tasks[].input` | object | Configuration of the task, depending on its type. |
| `tasks[].notifications` | object | Notifications settings for a task. |
| `tasks[].policies` | object | Set of rules for a task. |
| `tasks[].sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `tasks[].taskID` | string | Universally unique identifier (UUID) of a task. |
| `tasks[].trigger` | object | Trigger that runs the task. |
| `tasks[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "show the scheduled jobs on the old task api", "list v1 ingestion jobs", "what tasks exist under the first generation endpoint".

### `algolia_ingestion.create_task_v1`

Create an Algolia ingestion task on the older v1 API: schedule a new job that moves data from one source into one destination. Calls POST /1/tasks.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/tasks`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of replace, save, partial, partialNoCreate, append | **yes** | Action to perform on the Algolia index. |
| `cursor` | string | no | Date and time when the last cursor was created, in RFC 3339 format. |
| `destinationID` | string | **yes** | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | no | Whether the task is enabled. |
| `failureThreshold` | integer | no | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | no | Configuration of the task, depending on its type. |
| `input.mapping` | object | **yes** | Transformations to apply to the source, serialized as a JSON string. |
| `sourceID` | string | **yes** | Universally uniqud identifier (UUID) of a source. |
| `trigger` | object | **yes** | Trigger information for manually-triggered tasks. |
| `trigger.type` | string, one of onDemand | **yes** | Task is run manually, with the `/run` endpoint. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `taskID` | string | Universally unique identifier (UUID) of a task. |

Also retrieved by: "schedule a job on the v1 task api", "set up an old-style ingestion task", "add a data-moving job under the legacy endpoint".

### `algolia_ingestion.search_tasks_v1`

Search the Algolia ingestion tasks on the older v1 API: filter the scheduled jobs by source, destination, or trigger instead of paging the whole list. Calls POST /1/tasks/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/tasks/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskIDs` | array of string | **yes** |  |

Also retrieved by: "filter v1 ingestion jobs", "find an old-style task by its source", "which legacy jobs match this filter".

### `algolia_ingestion.get_task_v1`

Get one Algolia ingestion task on the older v1 API: a single scheduled job, its source, its destination, and its trigger. Calls GET /1/tasks/{taskID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `action` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `cursor` | string | Date and time when the last cursor was created, in RFC 3339 format. |
| `destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | Whether the task is enabled. Defaults to true. |
| `failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | Configuration of the task, depending on its type. |
| `input.mapping` | object | Transformations to apply to the source, serialized as a JSON string. |
| `notifications` | object | Notifications settings for a task. |
| `notifications.email` | object |  |
| `policies` | object | Set of rules for a task. |
| `policies.criticalThreshold` | integer | The number of critical failures in a row before blocking the task and sending a notification. |
| `sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `trigger` | object | Trigger that runs the task. |
| `trigger.lastRun` | string | The last time the scheduled task ran in RFC 3339 format. |
| `trigger.type` | string, one of onDemand | Task is run manually, with the `/run` endpoint. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "open one job on the v1 task api", "how is this legacy task configured", "show a single old-style ingestion job".

### `algolia_ingestion.update_task_v1`

Update an Algolia ingestion task on the older v1 API: change a scheduled job's trigger, input, or settings. Calls PATCH /1/tasks/{taskID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /1/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `destinationID` | string | no | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | no | Whether the task is enabled. |
| `failureThreshold` | integer | no | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | no | Configuration of the task, depending on its type. |
| `input.mapping` | object | **yes** | Transformations to apply to the source, serialized as a JSON string. |
| `taskID` | string | **yes** | Unique identifier of a task. |
| `trigger` | object | no | Trigger for a task update. |
| `trigger.cron` | string | **yes** | Cron expression for the task's schedule. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "change the schedule of a v1 job", "edit an old-style ingestion task", "retune a legacy data-moving job".

### `algolia_ingestion.delete_task_v1`

Delete an Algolia ingestion task on the older v1 API: remove a scheduled job so it never runs again. Calls DELETE /1/tasks/{taskID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /1/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "remove a job from the v1 task api", "get rid of an old-style ingestion task", "stop a legacy job running ever again".

### `algolia_ingestion.disable_task_v1`

Pause an Algolia ingestion task on the older v1 API: stop a scheduled job firing while keeping its configuration. Calls PUT /1/tasks/{taskID}/disable.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /1/tasks/{{params.taskID}}/disable`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "pause a job on the v1 task api", "turn off an old-style scheduled task", "stop a legacy job firing for now".

### `algolia_ingestion.enable_task_v1`

Resume an Algolia ingestion task on the older v1 API: let a paused scheduled job fire on its trigger again. Calls PUT /1/tasks/{taskID}/enable.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /1/tasks/{{params.taskID}}/enable`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "resume a paused job on the v1 task api", "switch an old-style task back on", "let a legacy job fire again".

### `algolia_ingestion.run_task_v1`

Run an Algolia ingestion task now on the older v1 API: fire a scheduled job immediately instead of waiting for its trigger. Calls POST /1/tasks/{taskID}/run.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/tasks/{{params.taskID}}/run`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `runMetadata` | object | no | Additional information that will be passed to the created run. |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "fire a v1 job right now", "run an old-style ingestion task immediately", "trigger a legacy job without waiting".

### `algolia_ingestion.list_transformations`

List the Algolia ingestion transformations: the record-shaping and mapping steps defined to reshape data as it flows through the pipeline. Calls GET /1/transformations.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/transformations`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of name, updatedAt, createdAt | no | Property by which to sort the list of transformations. Defaults to createdAt. |
| `type` | string, one of code, noCode | no | Whether to filter the list of transformations by the type of transformation. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `transformations` | array of object |  |
| `transformations[].authenticationIDs` | array | The authentications associated with the current transformation. |
| `transformations[].code` | string | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `transformations[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `transformations[].description` | string | A descriptive name for your transformation of what it does. |
| `transformations[].input` | object | The input for the transformation, which can be either code or a no-code configuration. |
| `transformations[].name` | string | The uniquely identified name of your transformation. |
| `transformations[].owner` | string | Owner of the resource. |
| `transformations[].transformationID` | string | Universally unique identifier (UUID) of a transformation. |
| `transformations[].type` | string, one of code, noCode | The type of transformation, which can be either 'code' or 'noCode'. |
| `transformations[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "show the record-shaping steps we defined", "list the mapping rules in the pipeline", "what reshaping steps exist".

### `algolia_ingestion.create_transformation`

Create an Algolia ingestion transformation: define a new step that reshapes, maps, or enriches incoming records inside the pipeline. Calls POST /1/transformations.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/transformations`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationIDs` | array of string | no | The authentications associated with the current transformation. |
| `code` | string | no | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `description` | string | no | A descriptive name for your transformation of what it does. |
| `input` | object | no | The input for the transformation, which can be either code or a no-code configuration. |
| `input.code` | string | **yes** | The source code of the transformation. |
| `name` | string | **yes** | The uniquely identified name of your transformation. |
| `type` | string, one of code, noCode | no | The type of transformation, which can be either 'code' or 'noCode'. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `transformationID` | string | Universally unique identifier (UUID) of a transformation. |

Also retrieved by: "define a step that reshapes records", "add a mapping rule to the pipeline", "set up a new data-shaping step".

### `algolia_ingestion.search_transformations`

Search the Algolia ingestion transformations: filter the record-shaping steps by name or code instead of paging the whole list. Calls POST /1/transformations/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/transformations/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `transformationIDs` | array of string | **yes** |  |

Also retrieved by: "find a shaping step by name", "which mapping rules match this filter", "filter the record transforms we defined".

### `algolia_ingestion.try_transformation`

Try an Algolia ingestion transformation on a sample: preview how a record-shaping step would change a record before saving the step. Calls POST /1/transformations/try.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/transformations/try`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authentications` | array of object | no |  |
| `authentications[].input` | object | **yes** | Credentials for authenticating with a Google service account, such as BigQuery. |
| `authentications[].name` | string | **yes** | Descriptive name for the resource. |
| `authentications[].platform` | string, one of bigcommerce, commercetools, shopify | no | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. |
| `authentications[].type` | string, one of googleServiceAccount, basic, apiKey, oauth, algolia, algoliaInsights, secrets | **yes** | Type of authentication. This determines the type of credentials required in the `input` object. |
| `code` | string | no | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `input` | object | no | The input for the transformation, which can be either code or a no-code configuration. |
| `input.code` | string | **yes** | The source code of the transformation. |
| `sampleRecord` | object | **yes** | The record to apply the given code to. |
| `type` | string, one of code, noCode | no | The type of transformation, which can be either 'code' or 'noCode'. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `error` | object | The error if the transformation failed. |
| `error.code` | integer | The error status code. |
| `error.message` | string | A descriptive message explaining the failure. |
| `payloads` | array of string | The array of stringified records returned by the transformation service. |

Also retrieved by: "preview how a shaping step changes a record", "test a mapping rule before saving it", "dry run a reshaping step on a sample".

### `algolia_ingestion.get_transformation`

Get one Algolia ingestion transformation: a single record-shaping step, its code, and what it does to records passing through. Calls GET /1/transformations/{transformationID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /1/transformations/{{params.transformationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `transformationID` | string | **yes** | Unique identifier of a transformation. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `authenticationIDs` | array of string | The authentications associated with the current transformation. |
| `code` | string | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `description` | string | A descriptive name for your transformation of what it does. |
| `input` | object | The input for the transformation, which can be either code or a no-code configuration. |
| `input.code` | string | The source code of the transformation. |
| `name` | string | The uniquely identified name of your transformation. |
| `owner` | string | Owner of the resource. |
| `transformationID` | string | Universally unique identifier (UUID) of a transformation. |
| `type` | string, one of code, noCode | The type of transformation, which can be either 'code' or 'noCode'. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "open one shaping step by id", "what does this mapping rule do", "show the code of a single transform".

### `algolia_ingestion.update_transformation`

Replace an Algolia ingestion transformation: rewrite the code of a record-shaping step so records are mapped differently from now on. Calls PUT /1/transformations/{transformationID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /1/transformations/{{params.transformationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authenticationIDs` | array of string | no | The authentications associated with the current transformation. |
| `code` | string | no | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `description` | string | no | A descriptive name for your transformation of what it does. |
| `input` | object | no | The input for the transformation, which can be either code or a no-code configuration. |
| `input.code` | string | **yes** | The source code of the transformation. |
| `name` | string | **yes** | The uniquely identified name of your transformation. |
| `transformationID` | string | **yes** | Unique identifier of a transformation. |
| `type` | string, one of code, noCode | no | The type of transformation, which can be either 'code' or 'noCode'. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `transformationID` | string | Universally unique identifier (UUID) of a transformation. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "rewrite the code of a shaping step", "change how records are mapped", "update a transform's logic".

### `algolia_ingestion.delete_transformation`

Delete an Algolia ingestion transformation: remove a record-shaping step so records flow through unchanged. Calls DELETE /1/transformations/{transformationID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /1/transformations/{{params.transformationID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `transformationID` | string | **yes** | Unique identifier of a transformation. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "remove a shaping step from the pipeline", "stop mapping records through this rule", "drop a transform we no longer need".

### `algolia_ingestion.try_transformation_before_update`

Try a changed Algolia ingestion transformation on a sample record: preview what the edited shaping step would do before saving the change. Calls POST /1/transformations/{transformationID}/try.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /1/transformations/{{params.transformationID}}/try`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `authentications` | array of object | no |  |
| `authentications[].input` | object | **yes** | Credentials for authenticating with a Google service account, such as BigQuery. |
| `authentications[].name` | string | **yes** | Descriptive name for the resource. |
| `authentications[].platform` | string, one of bigcommerce, commercetools, shopify | no | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. |
| `authentications[].type` | string, one of googleServiceAccount, basic, apiKey, oauth, algolia, algoliaInsights, secrets | **yes** | Type of authentication. This determines the type of credentials required in the `input` object. |
| `code` | string | no | It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. |
| `input` | object | no | The input for the transformation, which can be either code or a no-code configuration. |
| `input.code` | string | **yes** | The source code of the transformation. |
| `sampleRecord` | object | **yes** | The record to apply the given code to. |
| `transformationID` | string | **yes** | Unique identifier of a transformation. |
| `type` | string, one of code, noCode | no | The type of transformation, which can be either 'code' or 'noCode'. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `error` | object | The error if the transformation failed. |
| `error.code` | integer | The error status code. |
| `error.message` | string | A descriptive message explaining the failure. |
| `payloads` | array of string | The array of stringified records returned by the transformation service. |

Also retrieved by: "preview an edit to a shaping step", "what would the new code do to this record", "test a changed mapping rule on a sample".

### `algolia_ingestion.list_tasks`

List the Algolia ingestion tasks: the scheduled jobs that move data from a source into a destination, with their triggers and current state. Calls GET /2/tasks.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /2/tasks`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | array of string | no | Actions for filtering the list of tasks. |
| `destinationID` | array of string | no | Destination IDs for filtering the list of tasks. |
| `enabled` | boolean | no | Whether to filter the list of tasks by the `enabled` status. |
| `itemsPerPage` | integer | no | Number of items per page. Defaults to 10. |
| `order` | string, one of asc, desc | no | Sort order of the response, ascending or descending. Defaults to desc. |
| `page` | integer | no | Page number of the paginated API response. |
| `sort` | string, one of enabled, triggerType, action, updatedAt, createdAt | no | Property by which to sort the list of tasks. Defaults to createdAt. |
| `sourceID` | array of string | no | Source IDs for filtering the list of tasks. |
| `sourceType` | array of string | no | Filters the tasks with the specified source type. |
| `triggerType` | array of string | no | Type of task trigger for filtering the list of tasks. |
| `withEmailNotifications` | boolean | no | If specified, the response only includes tasks with notifications.email.enabled set to this value. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `pagination` | object | Paginated API response. |
| `pagination.itemsPerPage` | integer | Number of items per page. Defaults to 10. |
| `pagination.nbItems` | integer | Number of items in the API response. |
| `pagination.nbPages` | integer | Number of pages in the API response. |
| `pagination.page` | integer | Page of the API response to retrieve. |
| `tasks` | array of object |  |
| `tasks[].action` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `tasks[].createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `tasks[].cron` | string | Cron expression for the task's schedule. |
| `tasks[].cursor` | string | Date and time when the last cursor was created, in RFC 3339 format. |
| `tasks[].destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `tasks[].enabled` | boolean | Whether the task is enabled. Defaults to true. |
| `tasks[].failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `tasks[].input` | object | Configuration of the task, depending on its type. |
| `tasks[].lastRun` | string | The last time the scheduled task ran in RFC 3339 format. |
| `tasks[].nextRun` | string | The next scheduled run of the task in RFC 3339 format. |
| `tasks[].notifications` | object | Notifications settings for a task. |
| `tasks[].owner` | string | Owner of the resource. |
| `tasks[].policies` | object | Set of rules for a task. |
| `tasks[].sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `tasks[].subscriptionAction` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `tasks[].taskID` | string | Universally unique identifier (UUID) of a task. |
| `tasks[].updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "show the scheduled ingestion jobs", "what jobs move data into our indices", "list the pipeline's jobs and triggers".

### `algolia_ingestion.create_task`

Create an Algolia ingestion task: schedule a new job that moves data from one source into one destination on a trigger. Calls POST /2/tasks.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /2/tasks`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of replace, save, partial, partialNoCreate, append | **yes** | Action to perform on the Algolia index. |
| `cron` | string | no | Cron expression for the task's schedule. |
| `cursor` | string | no | Date and time when the last cursor was created, in RFC 3339 format. |
| `destinationID` | string | **yes** | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | no | Whether the task is enabled. |
| `failureThreshold` | integer | no | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | no | Configuration of the task, depending on its type. |
| `input.mapping` | object | **yes** | Transformations to apply to the source, serialized as a JSON string. |
| `notifications` | object | no | Notifications settings for a task. |
| `notifications.email` | object | **yes** |  |
| `policies` | object | no | Set of rules for a task. |
| `policies.criticalThreshold` | integer | no | The number of critical failures in a row before blocking the task and sending a notification. |
| `sourceID` | string | **yes** | Universally uniqud identifier (UUID) of a source. |
| `subscriptionAction` | string, one of replace, save, partial, partialNoCreate, append | no | Action to perform on the Algolia index. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `taskID` | string | Universally unique identifier (UUID) of a task. |

Also retrieved by: "schedule a job to import data", "set up a new pipeline job on a trigger", "add a job that loads a source into an index".

### `algolia_ingestion.search_tasks`

Search the Algolia ingestion tasks: filter the scheduled jobs by source, destination, or trigger instead of paging the whole list. Calls POST /2/tasks/search.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /2/tasks/search`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskIDs` | array of string | **yes** |  |

Also retrieved by: "find an ingestion job by its source", "which scheduled jobs write to this index", "filter the pipeline's jobs".

### `algolia_ingestion.get_task`

Get one Algolia ingestion task: a single scheduled job, where it reads from, where it writes to, and when it fires. Calls GET /2/tasks/{taskID}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /2/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `action` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `cron` | string | Cron expression for the task's schedule. |
| `cursor` | string | Date and time when the last cursor was created, in RFC 3339 format. |
| `destinationID` | string | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | Whether the task is enabled. Defaults to true. |
| `failureThreshold` | integer | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | Configuration of the task, depending on its type. |
| `input.mapping` | object | Transformations to apply to the source, serialized as a JSON string. |
| `lastRun` | string | The last time the scheduled task ran in RFC 3339 format. |
| `nextRun` | string | The next scheduled run of the task in RFC 3339 format. |
| `notifications` | object | Notifications settings for a task. |
| `notifications.email` | object |  |
| `owner` | string | Owner of the resource. |
| `policies` | object | Set of rules for a task. |
| `policies.criticalThreshold` | integer | The number of critical failures in a row before blocking the task and sending a notification. |
| `sourceID` | string | Universally uniqud identifier (UUID) of a source. |
| `subscriptionAction` | string, one of replace, save, partial, partialNoCreate, append | Action to perform on the Algolia index. |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "open one ingestion job by id", "where does this job read and write", "show a single scheduled import".

### `algolia_ingestion.replace_task`

Replace an Algolia ingestion task outright: send the whole job definition, overwriting every field rather than the few being changed. Calls PUT /2/tasks/{taskID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /2/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of replace, save, partial, partialNoCreate, append | **yes** | Action to perform on the Algolia index. |
| `cron` | string | no | Cron expression for the task's schedule. |
| `cursor` | string | no | Date and time when the last cursor was created, in RFC 3339 format. |
| `destinationID` | string | **yes** | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | no | Whether the task is enabled. |
| `failureThreshold` | integer | no | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | no | Configuration of the task, depending on its type. |
| `input.mapping` | object | **yes** | Transformations to apply to the source, serialized as a JSON string. |
| `notifications` | object | no | Notifications settings for a task. |
| `notifications.email` | object | **yes** |  |
| `policies` | object | no | Set of rules for a task. |
| `policies.criticalThreshold` | integer | no | The number of critical failures in a row before blocking the task and sending a notification. |
| `subscriptionAction` | string, one of replace, save, partial, partialNoCreate, append | no | Action to perform on the Algolia index. |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "overwrite a whole job definition", "send the full config for an import job", "replace every field of a scheduled job".

### `algolia_ingestion.update_task`

Change part of an Algolia ingestion task: send only the fields being edited, such as its trigger, its input, or its notifications. Calls PATCH /2/tasks/{taskID}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /2/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `cron` | string | no | Cron expression for the task's schedule. |
| `destinationID` | string | no | Universally unique identifier (UUID) of a destination resource. |
| `enabled` | boolean | no | Whether the task is enabled. |
| `failureThreshold` | integer | no | Maximum accepted percentage of failures for a task run to finish successfully. |
| `input` | object | no | Configuration of the task, depending on its type. |
| `input.mapping` | object | **yes** | Transformations to apply to the source, serialized as a JSON string. |
| `notifications` | object | no | Notifications settings for a task. |
| `notifications.email` | object | **yes** |  |
| `policies` | object | no | Set of rules for a task. |
| `policies.criticalThreshold` | integer | no | The number of critical failures in a row before blocking the task and sending a notification. |
| `subscriptionAction` | string, one of replace, save, partial, partialNoCreate, append | no | Action to perform on the Algolia index. |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "change just the trigger of an import job", "edit one field of a scheduled job", "tweak an ingestion job's settings".

### `algolia_ingestion.delete_task`

Delete an Algolia ingestion task: remove a scheduled job so no more data is moved on its trigger. Calls DELETE /2/tasks/{taskID}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /2/tasks/{{params.taskID}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deletedAt` | string | Date and time when the resource was deleted, in RFC 3339 format. |

Also retrieved by: "remove a scheduled import job", "stop a job moving data for good", "get rid of a pipeline job".

### `algolia_ingestion.disable_task`

Pause an Algolia ingestion task: stop a scheduled job firing while keeping its definition intact. Calls PUT /2/tasks/{taskID}/disable.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /2/tasks/{{params.taskID}}/disable`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "pause an import job for now", "turn off a scheduled job without deleting it", "stop a pipeline job from firing".

### `algolia_ingestion.enable_task`

Resume an Algolia ingestion task: let a paused job fire on its trigger again. Calls PUT /2/tasks/{taskID}/enable.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /2/tasks/{{params.taskID}}/enable`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `taskID` | string | Universally unique identifier (UUID) of a task. |
| `updatedAt` | string | Date and time when the resource was last updated, in RFC 3339 format. |

Also retrieved by: "switch a paused import job back on", "let a scheduled job run again", "resume a stopped pipeline job".

### `algolia_ingestion.push_task`

Push records into an Algolia ingestion task: hand a batch of documents to one job so they flow through its transformations into its destination index. Calls POST /2/tasks/{taskID}/push.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /2/tasks/{{params.taskID}}/push`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of addObject, updateObject, partialUpdateObject, partialUpdateObjectNoCreate, deleteObject, delete, clear | **yes** | Which indexing operation to perform: - `addObject`: adds records to an index. Equivalent to the "Add a new record (with auto-generated object ID)" operation. - `updateObject`: adds or replaces... |
| `records` | array of object | **yes** |  |
| `records[].objectID` | string | **yes** | Unique record identifier. |
| `taskID` | string | **yes** | Unique identifier of a task. |
| `watch` | boolean | no | When provided, the push operation will be synchronous and the API will wait for the ingestion to be finished before responding. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `data` | array of object | This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. |
| `eventID` | string | Universally unique identifier (UUID) of an event. |
| `events` | array of object | in case of error, observability events will be added to the response. |
| `events[].batchSize` | integer | The extracted record batch size. |
| `events[].data` | object |  |
| `events[].eventID` | string | Universally unique identifier (UUID) of an event. |
| `events[].publishedAt` | string | Date and time when the resource was published, in RFC 3339 format. |
| `events[].runID` | string | Universally unique identifier (UUID) of a task run. |
| `events[].status` | string, one of created, started, retried, failed, succeeded, critical |  |
| `events[].type` | string, one of fetch, record, log, transform |  |
| `message` | string | a message describing the outcome of the operation that has been ran (push, discover or validate) run. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "hand a batch of documents to one job", "feed records into an existing import job", "send data through a job's transformations".

### `algolia_ingestion.run_task`

Run an Algolia ingestion task now: fire a scheduled job immediately instead of waiting for its trigger. Calls POST /2/tasks/{taskID}/run.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /2/tasks/{{params.taskID}}/run`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `runMetadata` | object | no | Additional information that will be passed to the created run. |
| `taskID` | string | **yes** | Unique identifier of a task. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `createdAt` | string | Date and time when the resource was created, in RFC 3339 format. |
| `runID` | string | Universally unique identifier (UUID) of a task run. |

Also retrieved by: "run an import job right now", "fire a scheduled job immediately", "trigger a data load without waiting".

### `algolia_ingestion.chunked_push`

Replace everything in an Algolia index through the ingestion pipeline: split a large batch of records into chunks of a thousand and push them all, swapping out the index's current contents. Calls GET /chunkedPush.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /chunkedPush`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `action` | string, one of addObject, updateObject, partialUpdateObject, partialUpdateObjectNoCreate, deleteObject, delete, clear | no | The `batch` `action` to perform on the given array of `objects`, defaults to `addObject`. |
| `batchSize` | integer | no | The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1,000. |
| `indexName` | string | **yes** | The `indexName` to replace `objects` in. |
| `objects` | array of object | **yes** | List of objects to replace the current objects with. |
| `waitForTasks` | boolean | no | Whether to wait until every `batch` task has been processed. This may take longer but is more reliable. |

Also retrieved by: "reindex everything from a big batch", "swap out an index's whole contents", "bulk load a large record set in chunks".
