air_sdk.endpoints.mixins#

Classes#

BaseApiMixin

A base class for API Mixins.

PaginatedResponseData

dict() -> new empty dictionary

ListApiMixin

Returns an iterable of model objects.

CreateApiMixin

A base class for API Mixins.

GetApiMixin

A base class for API Mixins.

PutApiMixin

A base class for API Mixins.

PatchApiMixin

A base class for API Mixins.

DeleteApiMixin

A base class for API Mixins.

Functions#

serialize_payload(→ str)

Serialize the dictionary of values into json using the AirJSONEncoder.

build_resource_url(→ str)

Build URL for resource-related endpoints.

Module Contents#

air_sdk.endpoints.mixins.serialize_payload(data: Dict[str, Any] | List[Dict[str, Any]]) str[source]#

Serialize the dictionary of values into json using the AirJSONEncoder.

air_sdk.endpoints.mixins.build_resource_url(
base_url: str,
resource: air_sdk.air_model.AirModel | air_sdk.air_model.PrimaryKey,
*paths: str,
) str[source]#

Build URL for resource-related endpoints.

Extracts ID from AirModel object or uses PrimaryKey directly, then joins with base URL and additional path segments.

Parameters:
  • base_url – The base URL for the endpoint

  • resource – An AirModel instance or a PrimaryKey (str/UUID)

  • *paths – Additional path segments to append

Returns:

The constructed URL string

Example

>>> build_resource_url('/api/simulations/', simulation, 'start')
'/api/simulations/abc-123/start/'
>>> build_resource_url('/api/nodes/', 'node-id-456', 'interfaces')
'/api/nodes/node-id-456/interfaces/'
class air_sdk.endpoints.mixins.BaseApiMixin[source]#

A base class for API Mixins.

This is primarily used for type hinting.

__api__: air_sdk.AirApi#
url: str#
load_model: Callable[[air_sdk.air_model.DataDict], air_sdk.air_model.TAirModel_co]#
class air_sdk.endpoints.mixins.PaginatedResponseData[source]#

Bases: TypedDict

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s

(key, value) pairs

dict(iterable) -> new dictionary initialized as if via:

d = {} for k, v in iterable:

d[k] = v

dict(**kwargs) -> new dictionary initialized with the name=value pairs

in the keyword argument list. For example: dict(one=1, two=2)

count: int#
next: str | None#
previous: str | None#
results: List[air_sdk.air_model.DataDict]#
class air_sdk.endpoints.mixins.ListApiMixin[source]#

Bases: BaseApiMixin, Generic[air_sdk.air_model.TAirModel_co]

Returns an iterable of model objects.

Handles pagination in the background.

list(**params: Any) Iterator[air_sdk.air_model.TAirModel_co][source]#

Return an iterator of model instances.

class air_sdk.endpoints.mixins.CreateApiMixin[source]#

Bases: BaseApiMixin, Generic[air_sdk.air_model.TAirModel_co]

A base class for API Mixins.

This is primarily used for type hinting.

create(*args: Any, **kwargs: Any) air_sdk.air_model.TAirModel_co[source]#
class air_sdk.endpoints.mixins.GetApiMixin[source]#

Bases: BaseApiMixin, Generic[air_sdk.air_model.TAirModel_co]

A base class for API Mixins.

This is primarily used for type hinting.

get(
pk: air_sdk.air_model.PrimaryKey,
**params: Any,
) air_sdk.air_model.TAirModel_co[source]#
class air_sdk.endpoints.mixins.PutApiMixin[source]#

Bases: BaseApiMixin, Generic[air_sdk.air_model.TAirModel_co]

A base class for API Mixins.

This is primarily used for type hinting.

put(
pk: air_sdk.air_model.PrimaryKey,
**kwargs: Any,
) air_sdk.air_model.TAirModel_co[source]#
class air_sdk.endpoints.mixins.PatchApiMixin[source]#

Bases: BaseApiMixin, Generic[air_sdk.air_model.TAirModel_co]

A base class for API Mixins.

This is primarily used for type hinting.

patch(
pk: air_sdk.air_model.PrimaryKey,
**kwargs: Any,
) air_sdk.air_model.TAirModel_co[source]#
class air_sdk.endpoints.mixins.DeleteApiMixin[source]#

Bases: BaseApiMixin

A base class for API Mixins.

This is primarily used for type hinting.

delete(pk: air_sdk.air_model.PrimaryKey, **kwargs: Any) None[source]#

Deletes the instances with the specified primary key.