air_sdk.endpoints.interfaces#

Stub file for interfaces endpoint type hints.

Classes#

InterfaceAttributes

Interface

Interface model representing a network interface.

InterfaceEndpointAPI

API client for interface endpoints.

Module Contents#

class air_sdk.endpoints.interfaces.InterfaceAttributes[source]#
interface_role: str | None#
scalable_unit: int | None#
class air_sdk.endpoints.interfaces.Interface[source]#

Bases: air_sdk.air_model.AirModel

Interface model representing a network interface.

id#

Unique identifier for the interface

name#

Human-readable name of the interface

created#

Timestamp when the interface was created

modified#

Timestamp when the interface was last modified

node#

Node that the interface is related to

interface_type#

Type of the interface

mac_address#

MAC address of the interface

connection#

Interface that the interface is connected to

outbound#

Whether the interface is outbound

attributes#

Attributes of the interface

id: str#
name: str#
created: datetime.datetime#
modified: datetime.datetime#
node: air_sdk.endpoints.nodes.Node#
interface_type: str#
mac_address: str#
connection: Interface | None#
outbound: bool#
attributes: InterfaceAttributes | None#
classmethod get_model_api() type[InterfaceEndpointAPI][source]#

Returns the respective AirModelAPI type for this model.

property model_api: InterfaceEndpointAPI#
update(
*,
name: str | dataclasses._MISSING_TYPE = ...,
interface_type: Literal['DATA_PLANE_INTF', 'PCIE_INTF', 'OOB_INTF'] | dataclasses._MISSING_TYPE = ...,
outbound: bool | dataclasses._MISSING_TYPE = ...,
attributes: InterfaceAttributes | None | dataclasses._MISSING_TYPE = ...,
) None#

Update the interface’s properties.

Parameters:
  • name – New name for the interface

  • interface_type – New type for the interface

  • outbound – New outbound status for the interface

  • attributes – New attributes for the interface

Example

>>> interface.update(name='New Name')
delete() None#

Delete the interface.

Example

>>> interface.delete()
connect(
*,
target: Interface | air_sdk.air_model.PrimaryKey,
) Interface[source]#

Connect the interface to another interface.

Parameters:

target – Interface or primary key of the interface to connect to

Example

>>> interface.connect(interface)
>>> interface.connect('interface-id')
disconnect() Interface[source]#

Disconnect the interface from its connection.

Example

>>> interface.disconnect()
property services: air_sdk.endpoints.services.ServiceEndpointAPI#

Query for the related services of the interface.

Returns:

ServiceEndpointAPI instance filtered for this interface’s services

Example

>>> for service in interface.services.list():
...     print(f'{service.name}: {service.worker_fqdn}:{service.worker_port}')
>>>
>>> # Create service on this interface
>>> service = interface.services.create(
...     name='SSH', node_port=22, service_type='ssh'
... )
class air_sdk.endpoints.interfaces.InterfaceEndpointAPI(
api: air_sdk.AirApi,
default_filters: dict[str, Any] | None = None,
)[source]#

Bases: air_sdk.air_model.BaseEndpointAPI[Interface]

API client for interface endpoints.

API_PATH: str#
model: type[Interface]#
create(
*,
name: str,
node: air_sdk.endpoints.nodes.Node | air_sdk.air_model.PrimaryKey,
interface_type: Literal['DATA_PLANE_INTF', 'PCIE_INTF', 'OOB_INTF'] | dataclasses._MISSING_TYPE = ...,
mac_address: str | dataclasses._MISSING_TYPE = ...,
outbound: bool | dataclasses._MISSING_TYPE = ...,
attributes: InterfaceAttributes | None | dataclasses._MISSING_TYPE = ...,
) Interface#

Create a new interface.

Parameters:
  • name – Name of the interface

  • node – Node to create the interface on

Returns:

The created Interface instance

Example

>>> interface = api.interfaces.create(name='eth0', node=node)
>>> interface = node.interfaces.create(name='eth0', node=node.id)
list(
*,
interface_type: Literal['DATA_PLANE_INTF', 'PCIE_INTF', 'OOB_INTF'] | dataclasses._MISSING_TYPE = ...,
mac_address: str | dataclasses._MISSING_TYPE = ...,
name: str | dataclasses._MISSING_TYPE = ...,
node: air_sdk.endpoints.nodes.Node | air_sdk.air_model.PrimaryKey | dataclasses._MISSING_TYPE = ...,
outbound: bool | dataclasses._MISSING_TYPE = ...,
simulation: str | dataclasses._MISSING_TYPE = ...,
limit: int | dataclasses._MISSING_TYPE = ...,
offset: int | dataclasses._MISSING_TYPE = ...,
search: str | dataclasses._MISSING_TYPE = ...,
ordering: str | dataclasses._MISSING_TYPE = ...,
) Iterator[Interface]#

List all interfaces with optional filtering.

Parameters:
  • interface_type – Filter by interface type

  • mac_address – Filter by MAC address

  • name – Filter by name

  • node – Filter by node

  • outbound – Filter by outbound status

  • simulation – Filter by simulation

  • limit – Number of results to return per page

  • offset – The initial index from which to return the results

  • search – Search by name

  • ordering – Order by field

Returns:

Iterator of Interface instances

Example

>>> # List all interfaces
>>> for interface in api.interfaces.list():
...     print(interface.name)
>>> # Filter by interface type
>>> for interface in api.interfaces.list(interface_type='DATA_PLANE_INTF'):
...     print(interface.name)
>>> # Search by name
>>> for interface in api.interfaces.list(search='eth0'):
...     print(interface.name)
>>> # Order by name descending
>>> for interface in api.interfaces.list(ordering='-name'):
...     print(interface.name)
update(
*,
interface: Interface | air_sdk.air_model.PrimaryKey,
name: str | dataclasses._MISSING_TYPE = ...,
interface_type: Literal['DATA_PLANE_INTF', 'PCIE_INTF', 'OOB_INTF'] | dataclasses._MISSING_TYPE = ...,
outbound: bool | dataclasses._MISSING_TYPE = ...,
attributes: InterfaceAttributes | None | dataclasses._MISSING_TYPE = ...,
) Interface#

Update the interface’s properties.

Parameters:
  • interface – Interface or primary key of the interface to update

  • name – New name for the interface

  • interface_type – New type for the interface

  • outbound – New outbound status for the interface

  • attributes – New attributes for the interface

Returns:

The updated Interface instance

Example

>>> # Using Interface object
>>> updated_interface = api.interfaces.update(
...     interface=interface, name='New Name'
... )
>>> # Using interface ID
>>> updated_interface = api.interfaces.update(
...     interface='interface-id',
...     name='New Name',
...     interface_type='DATA_PLANE_INTF',
... )
get(pk: air_sdk.air_model.PrimaryKey) Interface#

Get a specific interface by ID.

Parameters:

pk – The interface ID (string or UUID)

Returns:

The Interface instance

Example

>>> interface = api.interfaces.get('interface-id')
delete(pk: air_sdk.air_model.PrimaryKey) None#

Delete a specific interface by ID.

Parameters:

pk – The interface ID (string or UUID)

Example

>>> api.interfaces.delete('interface-id')
connect(
*,
interface: Interface | air_sdk.air_model.PrimaryKey,
target: Interface | air_sdk.air_model.PrimaryKey,
) Interface[source]#

Connect the interface to another interface.

Parameters:
  • interface – Interface or primary key of the interface to connect

  • target – Interface or primary key of the interface to connect to

Returns:

The source interface instance

Example

>>> api.interfaces.connect(interface=interface, target=target)
>>> api.interfaces.connect(interface='interface-id', target='target-id')
disconnect(
*,
interface: Interface | air_sdk.air_model.PrimaryKey,
) Interface[source]#

Disconnect the interface from its connection.

Parameters:

interface – Interface or primary key of the interface to disconnect

Returns:

The source interface instance

Example

>>> api.interfaces.disconnect(interface=interface)
>>> api.interfaces.disconnect(interface='interface-id')