Source code for air_sdk.endpoints.systems

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

from __future__ import annotations

from dataclasses import dataclass, field
from datetime import datetime
from typing import TYPE_CHECKING, Any

from air_sdk.air_model import AirModel, BaseEndpointAPI
from air_sdk.bc import BaseCompatMixin
from air_sdk.endpoints import mixins
from air_sdk.endpoints.images import Image
from air_sdk.endpoints.simulations import Simulation

if TYPE_CHECKING:
    from air_sdk.endpoints import Image, Simulation


[docs] @dataclass(eq=False) class System(BaseCompatMixin, AirModel): """System model representing a system in the AIR platform.""" id: str created: datetime = field(repr=False) modified: datetime = field(repr=False) name: str simulation: Simulation | None = field(metadata=AirModel.FIELD_FOREIGN_KEY, repr=False) image: Image = field(metadata=AirModel.FIELD_FOREIGN_KEY, repr=False) memory: int = field(repr=False) storage: int = field(repr=False) cpu: int = field(repr=False) category: str = field(repr=False) attributes: dict[str, Any] | None = field(repr=False)
[docs] @classmethod def get_model_api(cls) -> type[SystemEndpointAPI]: """Returns the respective `AirModelAPI` type for this model""" return SystemEndpointAPI
@property def model_api(self) -> SystemEndpointAPI: """The current model API instance.""" return self.get_model_api()(self.__api__)
[docs] class SystemEndpointAPI( mixins.ListApiMixin[System], mixins.GetApiMixin[System], BaseEndpointAPI[System], ): """Endpoint API for System operations.""" API_PATH = 'systems/nodes' model = System