---
sidebar:
  hidden: true
title: roboto.experimental.ingestion_rules.operations
---
## Module Contents

### CreateIngestionRuleRequest

```python
class roboto.experimental.ingestion_rules.operations.CreateIngestionRuleRequest(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import CreateIngestionRuleRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L39-L65)

Bases: `pydantic.BaseModel`

Request payload to create an ingestion rule.

**Parameters**

- **data** (`Any`)

**Attributes**

- **CreateIngestionRuleRequest.auto_ingest** (`bool`) = `True`
- **CreateIngestionRuleRequest.description** (`str | None`) = `None`
- **CreateIngestionRuleRequest.exclude_patterns** (`list[str]`) = `None`
- **CreateIngestionRuleRequest.include_patterns** (`list[str]`)
- **CreateIngestionRuleRequest.invocation** (`roboto.domain.triggers.ActionInvocationSpec | None`) = `None`: How each matching upload is ingested. Its `invocation_input` selects only inputs beyond the uploaded file, which the rule's trigger always passes first. Required when [`auto_ingest`](/reference/python-sdk/roboto/experimental/ingestion_rules/operations#roboto.experimental.ingestion_rules.operations.CreateIngestionRuleRequest.auto_ingest) is on.
- **CreateIngestionRuleRequest.name** (`str`)

### IngestFilesRequest

```python
class roboto.experimental.ingestion_rules.operations.IngestFilesRequest(/, **data: Any)
```

`from roboto.experimental.ingestion_rules import IngestFilesRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L108-L111)

Bases: `pydantic.BaseModel`

Request payload to ingest existing files now with the org's rules that match them.

**Parameters**

- **data** (`Any`)

**Attributes**

- **IngestFilesRequest.file_ids** (`list[str]`) = `None`

### IngestFilesResponse

```python
class roboto.experimental.ingestion_rules.operations.IngestFilesResponse(/, **data: Any)
```

`from roboto.experimental.ingestion_rules import IngestFilesResponse`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L114-L116)

Bases: `pydantic.BaseModel`

**!!! abstract "Usage Documentation"**

\[Models\](../concepts/models.md)

A base class for creating Pydantic models.

**Parameters**

- **data** (`Any`)

**Attributes**

- **`IngestFilesResponse.__class_vars__`**: The names of the class variables defined on the model.
- **`IngestFilesResponse.__private_attributes__`**: Metadata about the private attributes of the model.
- **`IngestFilesResponse.__signature__`**: The synthesized \_\_init\_\_ [Signature][inspect.Signature] of the model.
- **`IngestFilesResponse.__pydantic_complete__`**: Whether model building is completed, or if there are still undefined fields.
- **`IngestFilesResponse.__pydantic_core_schema__`**: The core schema of the model.
- **`IngestFilesResponse.__pydantic_custom_init__`**: Whether the model has a custom \_\_init\_\_ function.
- **`IngestFilesResponse.__pydantic_decorators__`**: Metadata containing the decorators defined on the model. This replaces Model.\_\_validators\_\_ and Model.\_\_root_validators\_\_ from Pydantic V1.
- **`IngestFilesResponse.__pydantic_generic_metadata__`**: A dictionary containing metadata about generic Pydantic models. The origin and args items map to the [\_\_origin\_\_][genericalias.\_\_origin\_\_] and [\_\_args\_\_][genericalias.\_\_args\_\_] attributes of [generic aliases][types-genericalias], and the parameter item maps to the \_\_parameter\_\_ attribute of generic classes.
- **`IngestFilesResponse.__pydantic_parent_namespace__`**: Parent namespace of the model, used for automatic rebuilding of models.
- **`IngestFilesResponse.__pydantic_post_init__`**: The name of the post-init method for the model, if defined.
- **`IngestFilesResponse.__pydantic_root_model__`**: Whether the model is a [RootModel][pydantic.root_model.RootModel].
- **`IngestFilesResponse.__pydantic_serializer__`**: The pydantic-core SchemaSerializer used to dump instances of the model.
- **`IngestFilesResponse.__pydantic_validator__`**: The pydantic-core SchemaValidator used to validate instances of the model.
- **`IngestFilesResponse.__pydantic_fields__`**: A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
- **`IngestFilesResponse.__pydantic_computed_fields__`**: A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
- **`IngestFilesResponse.__pydantic_extra__`**: A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
- **`IngestFilesResponse.__pydantic_fields_set__`**: The names of fields explicitly set during instantiation.
- **`IngestFilesResponse.__pydantic_private__`**: Values of private attributes set on the model instance.
- **IngestFilesResponse.results** (`list[roboto.experimental.ingestion_rules.record.IngestFileResult]`): One result per requested file, in request order.

### LatestIngestionRunsRequest

```python
class roboto.experimental.ingestion_rules.operations.LatestIngestionRunsRequest(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import LatestIngestionRunsRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L119-L122)

Bases: `pydantic.BaseModel`

Request payload to look up the latest ingestion run on each of some files.

**Parameters**

- **data** (`Any`)

**Attributes**

- **LatestIngestionRunsRequest.file_ids** (`list[str]`) = `None`

### LatestIngestionRunsResponse

```python
class roboto.experimental.ingestion_rules.operations.LatestIngestionRunsResponse(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import LatestIngestionRunsResponse`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L125-L128)

Bases: `pydantic.BaseModel`

**!!! abstract "Usage Documentation"**

\[Models\](../concepts/models.md)

A base class for creating Pydantic models.

**Parameters**

- **data** (`Any`)

**Attributes**

- **`LatestIngestionRunsResponse.__class_vars__`**: The names of the class variables defined on the model.
- **`LatestIngestionRunsResponse.__private_attributes__`**: Metadata about the private attributes of the model.
- **`LatestIngestionRunsResponse.__signature__`**: The synthesized \_\_init\_\_ [Signature][inspect.Signature] of the model.
- **`LatestIngestionRunsResponse.__pydantic_complete__`**: Whether model building is completed, or if there are still undefined fields.
- **`LatestIngestionRunsResponse.__pydantic_core_schema__`**: The core schema of the model.
- **`LatestIngestionRunsResponse.__pydantic_custom_init__`**: Whether the model has a custom \_\_init\_\_ function.
- **`LatestIngestionRunsResponse.__pydantic_decorators__`**: Metadata containing the decorators defined on the model. This replaces Model.\_\_validators\_\_ and Model.\_\_root_validators\_\_ from Pydantic V1.
- **`LatestIngestionRunsResponse.__pydantic_generic_metadata__`**: A dictionary containing metadata about generic Pydantic models. The origin and args items map to the [\_\_origin\_\_][genericalias.\_\_origin\_\_] and [\_\_args\_\_][genericalias.\_\_args\_\_] attributes of [generic aliases][types-genericalias], and the parameter item maps to the \_\_parameter\_\_ attribute of generic classes.
- **`LatestIngestionRunsResponse.__pydantic_parent_namespace__`**: Parent namespace of the model, used for automatic rebuilding of models.
- **`LatestIngestionRunsResponse.__pydantic_post_init__`**: The name of the post-init method for the model, if defined.
- **`LatestIngestionRunsResponse.__pydantic_root_model__`**: Whether the model is a [RootModel][pydantic.root_model.RootModel].
- **`LatestIngestionRunsResponse.__pydantic_serializer__`**: The pydantic-core SchemaSerializer used to dump instances of the model.
- **`LatestIngestionRunsResponse.__pydantic_validator__`**: The pydantic-core SchemaValidator used to validate instances of the model.
- **`LatestIngestionRunsResponse.__pydantic_fields__`**: A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
- **`LatestIngestionRunsResponse.__pydantic_computed_fields__`**: A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
- **`LatestIngestionRunsResponse.__pydantic_extra__`**: A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
- **`LatestIngestionRunsResponse.__pydantic_fields_set__`**: The names of fields explicitly set during instantiation.
- **`LatestIngestionRunsResponse.__pydantic_private__`**: Values of private attributes set on the model instance.
- **LatestIngestionRunsResponse.runs** (`dict[str, roboto.experimental.ingestion_runs.IngestionRun]`): The latest run per file id. A file whose current upload no rule's trigger has run on, or that the caller may not view, is absent.

### MAX_INGEST_FILES

```python
roboto.experimental.ingestion_rules.operations.MAX_INGEST_FILES = 100
```

`from roboto.experimental.ingestion_rules import MAX_INGEST_FILES`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L104-L104)

Most files one `POST /v1/ingestion-rules/ingest` takes.

### MAX_MATCH_PATHS

```python
roboto.experimental.ingestion_rules.operations.MAX_MATCH_PATHS = 200
```

`from roboto.experimental.ingestion_rules import MAX_MATCH_PATHS`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L16-L16)

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

### MatchIngestionRulesRequest

```python
class roboto.experimental.ingestion_rules.operations.MatchIngestionRulesRequest(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import MatchIngestionRulesRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L91-L95)

Bases: `pydantic.BaseModel`

Request payload to ask which of an org's ingestion rules match each of some file paths.

**Parameters**

- **data** (`Any`)

**Attributes**

- **MatchIngestionRulesRequest.paths** (`list[str]`) = `None`: File paths relative to their dataset, e.g. `logs/run_1.mcap`.

### MatchIngestionRulesResponse

```python
class roboto.experimental.ingestion_rules.operations.MatchIngestionRulesResponse(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import MatchIngestionRulesResponse`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L98-L101)

Bases: `pydantic.BaseModel`

The rules matching each requested path, oldest rule first. A path no rule matches maps to an empty list.

**Parameters**

- **data** (`Any`)

**Attributes**

- **MatchIngestionRulesResponse.matches** (`dict[str, list[roboto.experimental.ingestion_rules.record.IngestionRuleRecord]]`)

### UpdateIngestionRuleRequest

```python
class roboto.experimental.ingestion_rules.operations.UpdateIngestionRuleRequest(
    /,
    **data: Any,
)
```

`from roboto.experimental.ingestion_rules import UpdateIngestionRuleRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/ingestion_rules/operations.py#L68-L88)

Bases: `pydantic.BaseModel`

Request payload to change an ingestion rule. Only the fields present in the payload change.

**Parameters**

- **data** (`Any`)

**Attributes**

- **UpdateIngestionRuleRequest.auto_ingest** (`bool | None`) = `None`: Turning this on enables the rule's trigger, creating it if the rule had none; turning it off disables it.
- **UpdateIngestionRuleRequest.description** (`str | None`) = `None`
- **UpdateIngestionRuleRequest.exclude_patterns** (`list[str] | None`) = `None`
- **UpdateIngestionRuleRequest.include_patterns** (`list[str] | None`) = `None`
- **UpdateIngestionRuleRequest.invocation** (`roboto.domain.triggers.ActionInvocationSpec | None`) = `None`: Replaces the rule's whole invocation when present.
- **UpdateIngestionRuleRequest.name** (`str | None`) = `None`
