> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siftstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ingest

> sift/ingest/v1/ingest.proto

<a name="sift_ingest_v1_ingest-proto" />

<a name="sift_ingest_v1_ingest-proto-services" />

## Services

*RPC methods exposed by this API.*

### IngestService

| Method                            | Request                                                                                          | Response                                                                                | Description |
| :-------------------------------- | :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- | :---------- |
| IngestWithConfigDataStream        | [IngestWithConfigDataStreamRequest](#ingestwithconfigdatastreamrequest) *(stream)*               | [IngestWithConfigDataStreamResponse](#ingestwithconfigdatastreamresponse)               |             |
| IngestArbitraryProtobufDataStream | [IngestArbitraryProtobufDataStreamRequest](#ingestarbitraryprotobufdatastreamrequest) *(stream)* | [IngestArbitraryProtobufDataStreamResponse](#ingestarbitraryprotobufdatastreamresponse) |             |

<a name="sift_ingest_v1_ingest-proto-messages" />

## Messages

*Data models used across requests/responses.*

### IngestArbitraryProtobufDataStreamRequest

| Field                              | Type                      | Label    | Description                                                                                                                                                                                                                                                                                                           |
| :--------------------------------- | :------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| message\_type\_identifier          | string                    |          |                                                                                                                                                                                                                                                                                                                       |
| message\_type\_display\_name       | string                    | optional |                                                                                                                                                                                                                                                                                                                       |
| asset\_name                        | string                    |          |                                                                                                                                                                                                                                                                                                                       |
| timestamp                          | google.protobuf.Timestamp |          |                                                                                                                                                                                                                                                                                                                       |
| value                              | bytes                     |          |                                                                                                                                                                                                                                                                                                                       |
| run\_id                            | string                    |          |                                                                                                                                                                                                                                                                                                                       |
| namespace                          | string                    |          |                                                                                                                                                                                                                                                                                                                       |
| organization\_id                   | string                    |          |                                                                                                                                                                                                                                                                                                                       |
| end\_stream\_on\_validation\_error | bool                      |          | By default, if this request fails to parse for any reason, the request is stored in an error queue and the stream continues to accept data. This ensures all data is saved, but only valid data is fully ingested. If this is set to `true`, any validation errors end the stream and return the error to the client. |

### IngestArbitraryProtobufDataStreamResponse

*This message has no fields.*

### IngestWithConfigDataChannelValue

| Field                  | Type                  | Label | Description                                                                                 |
| :--------------------- | :-------------------- | :---- | :------------------------------------------------------------------------------------------ |
| oneof type. string     | string                |       |                                                                                             |
| oneof type. double     | double                |       |                                                                                             |
| oneof type. float      | float                 |       |                                                                                             |
| oneof type. bool       | bool                  |       |                                                                                             |
| oneof type. int32      | int32                 |       |                                                                                             |
| oneof type. uint32     | uint32                |       |                                                                                             |
| oneof type. int64      | int64                 |       |                                                                                             |
| oneof type. uint64     | uint64                |       |                                                                                             |
| oneof type. bit\_field | bytes                 |       |                                                                                             |
| oneof type. enum       | uint32                |       |                                                                                             |
| oneof type. empty      | google.protobuf.Empty |       | If there's not a new data point for a channel at the given timestamp, pass empty to skip it |
| oneof type. bytes      | bytes                 |       |                                                                                             |

### IngestWithConfigDataStreamRequest

INTERNAL NOTE (remove from public protos): Any updates to this proto message MUST also update the
`IngestWithConfigDataStreamRequestLite` and `IngestWithConfigDataStreamChannelValuesOnly` proto messages
in sift\_internal/ingest/v1/ingest.proto.
For performance, only the minimal set of fields is deserialized on ingest by the
`IngestWithConfigDataStreamRequestLite` proto message definition; other fields that are expensive and/or
large and that are not required to be parsed should not be included there. Additionally, the field number
**MUST** match exactly as we depend on the field numbers to correctly decode the fields despite technically
different message definitions.

| Field                              | Type                                                                  | Label    | Description                                                                                                                                                                                                                                                                                                                                                         |
| :--------------------------------- | :-------------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ingestion\_config\_id              | string                                                                |          |                                                                                                                                                                                                                                                                                                                                                                     |
| flow                               | string                                                                |          |                                                                                                                                                                                                                                                                                                                                                                     |
| timestamp                          | google.protobuf.Timestamp                                             |          |                                                                                                                                                                                                                                                                                                                                                                     |
| channel\_values                    | [IngestWithConfigDataChannelValue](#ingestwithconfigdatachannelvalue) | repeated |                                                                                                                                                                                                                                                                                                                                                                     |
| run\_id                            | string                                                                |          | The run\_id MUST be included if this data is part of a run.                                                                                                                                                                                                                                                                                                         |
| end\_stream\_on\_validation\_error | bool                                                                  |          | By default, if this request contains any channel values that do not match the supplied ingestion config, the request is stored in an error queue and the stream continues to accept data. This ensures all data is saved, but only valid data is fully ingested. If this is set to `true`, any validation errors end the stream and return the error to the client. |
| organization\_id                   | string                                                                |          |                                                                                                                                                                                                                                                                                                                                                                     |

### IngestWithConfigDataStreamResponse

*This message has no fields.*

<a name="sift_ingest_v1_ingest-proto-enums" />

## Enums

*Allowed constant values used in message fields.*
