---
sidebar:
  label: roboto.experimental.ingestion_rules
  order: 1
title: roboto.experimental.ingestion_rules
---
Request and response models for an org's ingestion rules, which decide which uploaded files are ingested and with which action.

A rule has path patterns and the action that ingests matching files. A file whose path a rule matches when it is uploaded is ingestable, and while the rule's `auto_ingest` is on, Roboto runs that action on it. There is no client class yet: call the `/v1/ingestion-rules` endpoints with [`RobotoClient`](/docs/reference/python-sdk/roboto/http#roboto.http.RobotoClient).

**Usage**

List the org's rules:

```python
from roboto.experimental.ingestion_rules import IngestionRuleRecord
from roboto.http import RobotoClient
rules = (
    RobotoClient.defaulted()
    .get("v1/ingestion-rules")
    .to_record_list(IngestionRuleRecord, json_path=["data", "items"])
)
```

## Submodules

- [roboto.experimental.ingestion_rules.matching](/docs/reference/python-sdk/roboto/experimental/ingestion_rules/matching)
- [roboto.experimental.ingestion_rules.operations](/docs/reference/python-sdk/roboto/experimental/ingestion_rules/operations)
- [roboto.experimental.ingestion_rules.record](/docs/reference/python-sdk/roboto/experimental/ingestion_rules/record)

## Package Contents

- [CreateIngestionRuleRequest](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.CreateIngestionRuleRequest) (class): Request payload to create an ingestion rule.

- [DefaultIngestionRuleRecord](/reference/python-sdk/roboto/experimental/ingestion_rules/record#roboto.experimental.ingestion_rules.record.DefaultIngestionRuleRecord) (class): Wire format of one of the rules every new org starts with, and whether the caller's org already has it.

- [ExistingFilesPreview](/reference/python-sdk/roboto/experimental/ingestion_rules/record#roboto.experimental.ingestion_rules.record.ExistingFilesPreview) (class): Files already uploaded that a rule matches, that are not ingested, and whose current upload no rule's trigger has run on: ones uploaded, or uploaded again, before the rule existed or while its auto-ingest was off. Editing a file's metadata or tags does not make it one of these.

- [IngestFileOutcome](/reference/python-sdk/roboto/experimental/ingestion_rules/record#roboto.experimental.ingestion_rules.record.IngestFileOutcome) (class): What `POST /v1/ingestion-rules/ingest` did with one file.

- [IngestFileResult](/reference/python-sdk/roboto/experimental/ingestion_rules/record#roboto.experimental.ingestion_rules.record.IngestFileResult) (class): **!!! abstract "Usage Documentation"** \[Models\](../concepts/models.md)

- [IngestFilesRequest](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.IngestFilesRequest) (class): Request payload to ingest existing files now with the org's rules that match them.

- [IngestFilesResponse](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.IngestFilesResponse) (class): **!!! abstract "Usage Documentation"** \[Models\](../concepts/models.md)

- [IngestionPathRule](/reference/python-sdk/roboto/experimental/ingestion_rules/matching#roboto.experimental.ingestion_rules.matching.IngestionPathRule) (class): The path half of an ingestion rule: include and exclude Git wildmatch patterns.

- [IngestionRuleRecord](/reference/python-sdk/roboto/experimental/ingestion_rules/record#roboto.experimental.ingestion_rules.record.IngestionRuleRecord) (class): Wire format of an ingestion rule: which file paths in an org are ingestable, and how they are ingested.

- [IngestionRun](/reference/python-sdk/roboto/experimental/ingestion_runs#roboto.experimental.ingestion_runs.IngestionRun) (class): The latest time an ingestion rule's trigger ran on a file's current upload.

- [IngestionRunStatus](/reference/python-sdk/roboto/experimental/ingestion_runs#roboto.experimental.ingestion_runs.IngestionRunStatus) (class): Where one run of a rule's trigger on a file stands.

- [LatestIngestionRunsRequest](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.LatestIngestionRunsRequest) (class): Request payload to look up the latest ingestion run on each of some files.

- [LatestIngestionRunsResponse](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.LatestIngestionRunsResponse) (class): **!!! abstract "Usage Documentation"** \[Models\](../concepts/models.md)

- [MAX_INGEST_FILES](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.MAX_INGEST_FILES) (data): `MAX_INGEST_FILES = 100`. Most files one `POST /v1/ingestion-rules/ingest` takes.

- [MAX_MATCH_PATHS](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.MAX_MATCH_PATHS) (data): `MAX_MATCH_PATHS = 200`. The most paths one [`MatchIngestionRulesRequest`](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.MatchIngestionRulesRequest) may ask about.

- [MatchIngestionRulesRequest](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.MatchIngestionRulesRequest) (class): Request payload to ask which of an org's ingestion rules match each of some file paths.

- [MatchIngestionRulesResponse](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.MatchIngestionRulesResponse) (class): The rules matching each requested path, oldest rule first. A path no rule matches maps to an empty list.

- [UpdateIngestionRuleRequest](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.UpdateIngestionRuleRequest) (class): Request payload to change an ingestion rule. Only the fields present in the payload change.
