# ContainerImage

## class nominal.core.ContainerImage(rid, tag, status, size_bytes, created_at, extractor_rid, inputs, parameters, exit_code_mappings, file_output_format, default_timestamp_metadata, resources)

Bases: `HasRid`, `RefreshableMixin`[`ContainerImage`]

A container image registered against a containerized extractor (nominal.registry.v2).

### rid: str

### tag: str

### status: ContainerImageStatus

### size_bytes: int

### created_at: IntegralNanosecondsUTC

### extractor_rid: str

### inputs: Sequence[FileExtractionInput]

### parameters: Sequence[FileExtractionParameter]

### exit_code_mappings: Sequence[ExitCodeMapping]

Fallback errors for failed container exit codes; empty when no mappings are registered.

### file_output_format: FileOutputFormat

### default_timestamp_metadata: TimestampMetadata | None

How timestamps in the extractor’s output are encoded, when nothing more specific applies.

Per output file, the backend resolves timestamp metadata in this order:

1. For MANIFEST-format extractors, the metadata a manifest output declares for itself;
2. the ingest request’s override ([`Dataset.add_containerized`](https://dev.nominal.io/python/ref/generated/nominal.core.Dataset.md#nominal.core.Dataset.add_containerized "nominal.core.Dataset.add_containerized")’s `timestamp_column`/`timestamp_type`);
3. this default.

The request-override-or-default portion is resolved before the container runs, and ingestion fails
if both are absent — a fully-descriptive manifest alone is not sufficient. Always set on images
registered through this SDK (registration requires it); may be None on images from older
registration paths, in which case every ingest must supply an override.

### resources: ContainerResources

Resource overrides for the extractor container; fields left as None use deployment-wide defaults.

### delete()

Delete this image.

Fails server-side if an extractor still references it as its active image.

### poll_until_ready(interval=timedelta(seconds=1))

Block until this image has finished processing server-side, refreshing in place.

This method polls Nominal for the image’s status on an interval.

Parameters:
:   **interval** ([*timedelta*](https://docs.python.org/3/library/datetime.html#datetime.timedelta "(in Python v3.15)"))

    How often to poll for the image’s status.

Returns:
:   This instance, once its status is [`ContainerImageStatus.READY`](https://dev.nominal.io/python/ref/generated/nominal.core.ContainerImageStatus.md#nominal.core.ContainerImageStatus.READY "nominal.core.ContainerImageStatus.READY").

Raises:
:   [**NominalContainerImageError**](https://dev.nominal.io/python/ref/generated/nominal.exceptions.NominalContainerImageError.md#nominal.exceptions.NominalContainerImageError "nominal.exceptions.NominalContainerImageError") – If the image reaches a state from which it cannot become
    READY (FAILED, or a status this SDK doesn’t recognize).

Return type:
:   [*Self*](https://docs.python.org/3/library/typing.html#typing.Self "(in Python v3.15)")

### refresh()

Return type:
:   [*Self*](https://docs.python.org/3/library/typing.html#typing.Self "(in Python v3.15)")
