# IngestJob

## class nominal.IngestJob

A file upload that Nominal is still working through.

Returned by nominal.Client.ingest. The upload has finished by the time
you hold one of these, and the ingest itself is still running.

```matlab
job = c.ingest("flight12.csv", TimestampColumn="time", ...
               NewDataset="Flight 12");
ds  = c.datasetByRid(job.DatasetRid);   % usable straight away
job.status()                            % check without waiting
job.wait();                             % block until ingest ends
```

Deleting the job object does not cancel the ingest, but status and
wait need the object. To check on an ingest without it, open the
**Ingestion** page in the Nominal app, which lists every ingest job
with its status, and filter by the destination dataset.

> **See also**
>
> [`nominal.Client.ingest()`](https://dev.nominal.io/matlab/ref/Client.md#nominal.Client.ingest "nominal.Client.ingest")

Constructor Summary

Property Summary
:   ### Rid

    Resource identifier of the job itself.

    ### DatasetRid

    RID of the dataset the data is landing in, including one the
    ingest call just created.

Method Summary
:   ### status()

    Read the job’s current state from Nominal.

    Returns:
    :   *string* – “submitted”, “queued”, “inProgress”, “completed”,
        “failed” or “cancelled”. The first three mean it is still
        running.

    ### wait()

    Block until the job finishes.

    **Raises nominal:apiError when the ingest fails.** Wrap it if a
    failure is something you want to report rather than throw:

    ```matlab
    try
        job.wait();
    catch e
        % the ingest failed, and e.message says why
    end
    ```

    Or poll status() in a loop. No timeout, so a stuck job blocks
    indefinitely.

    Returns:
    :   *string* – “completed”, when the ingest succeeds.
