air_sdk.endpoints.interfaces#
Stub file for interfaces endpoint type hints.
Classes#
Interface model representing a network interface. |
|
API client for interface endpoints. |
Module Contents#
- class air_sdk.endpoints.interfaces.Interface[source]#
Bases:
air_sdk.air_model.AirModelInterface 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
- created: datetime.datetime#
- modified: datetime.datetime#
- 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 = ...,
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')
- property links: air_sdk.endpoints.links.LinkEndpointAPI#
Access the links endpoint for this interface.
- Returns:
LinkEndpointAPI instance filtered for this interface’s links
Example
>>> for link in interface.links.list(): ... print(link.id)
- breakout(*, split_count: int) List[Interface][source]#
Break out this interface into multiple sub-interfaces.
- Parameters:
split_count – Number of interfaces to create from the breakout. Must be supported by the node’s split_options.
- Returns:
List of created breakout interfaces
Example
>>> interface = api.interfaces.get('interface-id') >>> breakout_interfaces = interface.breakout(split_count=4) >>> # Creates swp1s0, swp1s1, swp1s2, swp1s3
- revert_breakout() Interface[source]#
Revert this breakout interface back to a single interface.
Can be called on any of the breakout interfaces - they will all be reverted and deleted except the first one (s0), which will be renamed back to the original name.
- Returns:
The reverted interface
Example
>>> interface = api.interfaces.get('interface-id') # e.g., swp1s0 >>> reverted = interface.revert_breakout() # Reverts back to swp1
Note
All breakout interfaces will be deleted except the first one (s0)
The s0 interface will be renamed back to the original name
Any existing connections on the breakout interfaces are automatically removed
Cannot revert if any breakout interface has services attached
- 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( )[source]#
Bases:
air_sdk.air_model.BaseEndpointAPI[Interface]API client for interface endpoints.
- 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 = ...,
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 = ...,
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)
- 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')
- breakout( ) List[Interface][source]#
Break out an interface into multiple sub-interfaces.
Breaks out a data plane interface into multiple sub-interfaces. For example, breaking out “swp1” with a 4-way split creates “swp1s0”, “swp1s1”, “swp1s2”, “swp1s3”.
- Parameters:
interface – The interface to break out
split_count – Number of interfaces to create from the breakout. Must be supported by the node’s split_options (typically 2, 4, or 8).
- Returns:
List of all created breakout interfaces
Example
>>> interface = api.interfaces.get('interface-id') >>> breakout_interfaces = api.interfaces.breakout( # fmt: skip ... interface=interface, split_count=4 ... ) >>> print([i.name for i in breakout_interfaces]) ['swp1s0', 'swp1s1', 'swp1s2', 'swp1s3']
Note
Only data plane interfaces can be broken out
Any existing connection on the interface will be automatically removed
The original interface is renamed to <name>s0 and keeps its MAC address
New interfaces are created with allocated MAC addresses
- revert_breakout(
- *,
- interface: Interface | air_sdk.air_model.PrimaryKey,
Revert a broken out interface back to a single interface.
Reverts broken out interfaces back to a single interface. For example, reverting “swp1s0” (along with “swp1s1”, “swp1s2”, “swp1s3”) back to “swp1”. This can be called on any of the breakout interfaces.
- Parameters:
interface – One of the breakout interfaces (e.g., swp1s0, swp1s1, etc.)
- Returns:
The reverted interface with its original name
Example
>>> interface = api.interfaces.get('interface-id') # e.g., swp1s2 >>> reverted = api.interfaces.revert_breakout(interface=interface) >>> print(reverted.name) 'swp1'
Note
All breakout interfaces will be deleted except the first one (s0)
The s0 interface will be renamed back to the original name
Any existing connections on the breakout interfaces are automatically removed
Cannot revert if any breakout interface has services attached