Source code for air_sdk.endpoints.manifests

# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
# All rights reserved.
# SPDX-License-Identifier: MIT

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any, Optional

from air_sdk.air_model import AirModel, BaseEndpointAPI
from air_sdk.bc import (
    BaseCompatMixin,
    ManifestCompatMixin,
    ManifestEndpointAPICompatMixin,
)
from air_sdk.endpoints import mixins
from air_sdk.endpoints.images import Image


[docs] @dataclass(eq=False) class Manifest(BaseCompatMixin, ManifestCompatMixin, AirModel): id: str org_name: str docker_run_parameters: dict[str, Any] = field(repr=False) emulation_type: str = field(repr=False) platform_information: dict[str, Any] = field(repr=False) simulator_image: Image = field(metadata=AirModel.FIELD_FOREIGN_KEY, repr=False) simulator_resources: dict[str, Any] = field(repr=False) artifacts_directory: Optional[str] = field(default=None, repr=False) artifacts_directory_max_size_gb: Optional[int] = field(default=None, repr=False) boot_group: Optional[int] = field(default=None, repr=False) configure_node_properties: Optional[dict[str, Any]] = field(default=None, repr=False) configure_simulator: Optional[dict[str, Any]] = field(default=None, repr=False) simulation_engine_versions: Optional[list[str]] = field(default=None, repr=False) emulation_params: Optional[dict[str, Any]] = field(default=None, repr=False) port_mapping_required: Optional[bool] = field(default=None, repr=False)
[docs] @classmethod def get_model_api(cls) -> type[ManifestEndpointAPI]: """Returns the respective `AirModelAPI` type for this model""" return ManifestEndpointAPI
@property def model_api(self) -> ManifestEndpointAPI: """The current model API instance.""" return self.get_model_api()(self.__api__)
[docs] class ManifestEndpointAPI( ManifestEndpointAPICompatMixin, mixins.ListApiMixin[Manifest], mixins.CreateApiMixin[Manifest], mixins.GetApiMixin[Manifest], mixins.PatchApiMixin[Manifest], mixins.DeleteApiMixin, BaseEndpointAPI[Manifest], ): """API client for manifest endpoints.""" API_PATH = 'manifests' model = Manifest