Skip to content

Iptrunk

IP trunk product block that has all parameters of a subscription throughout its lifecycle.

IptrunkType

Bases: strEnum

Types of IP trunks. Can be dark fiber or a leased line.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkType(strEnum):
    """Types of IP trunks. Can be dark fiber or a leased line."""

    DARK_FIBER = "Dark_fiber"
    """Dark fiber."""
    LEASED = "Leased"
    """Leased line."""

DARK_FIBER = 'Dark_fiber' class-attribute instance-attribute

Dark fiber.

LEASED = 'Leased' class-attribute instance-attribute

Leased line.

IptrunkInterfaceBlockInactive

Bases: ProductBlockModel

An inactive IP trunk interface.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkInterfaceBlockInactive(
    ProductBlockModel,
    lifecycle=[SubscriptionLifecycle.INITIAL],
    product_block_name="IptrunkInterfaceBlock",
):
    """An inactive IP trunk interface."""

    interface_name: str | None = None
    interface_description: str | None = None

IptrunkInterfaceBlockProvisioning

Bases: IptrunkInterfaceBlockInactive

An IP trunk interface that is being provisioned.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkInterfaceBlockProvisioning(IptrunkInterfaceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """An IP trunk interface that is being provisioned."""

    interface_name: str
    interface_description: str | None = None

IptrunkInterfaceBlock

Bases: IptrunkInterfaceBlockProvisioning

An active IP trunk interface.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkInterfaceBlock(IptrunkInterfaceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """An active IP trunk interface."""

    interface_name: str
    interface_description: str | None = None

IptrunkSideBlockInactive

Bases: ProductBlockModel

An inactive IP trunk side.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkSideBlockInactive(
    ProductBlockModel,
    lifecycle=[SubscriptionLifecycle.INITIAL],
    product_block_name="IptrunkSideBlock",
):
    """An inactive IP trunk side."""

    iptrunk_side_node: RouterBlockInactive
    iptrunk_side_ae_iface: str | None = None
    ga_id: str | None = None
    iptrunk_side_ae_members: LAGMemberList[IptrunkInterfaceBlockInactive]

IptrunkSideBlockProvisioning

Bases: IptrunkSideBlockInactive

An IP trunk side that is being provisioned.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkSideBlockProvisioning(IptrunkSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """An IP trunk side that is being provisioned."""

    iptrunk_side_node: RouterBlockProvisioning
    iptrunk_side_ae_iface: str
    ga_id: str | None = None
    iptrunk_side_ae_members: LAGMemberList[IptrunkInterfaceBlockProvisioning]  # type: ignore[assignment]

IptrunkSideBlock

Bases: IptrunkSideBlockProvisioning

An active IP trunk side.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkSideBlock(IptrunkSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """An active IP trunk side."""

    iptrunk_side_node: RouterBlock
    iptrunk_side_ae_iface: str
    ga_id: str | None = None
    iptrunk_side_ae_members: LAGMemberList[IptrunkInterfaceBlock]  # type: ignore[assignment]

IptrunkBlockInactive

Bases: ProductBlockModel

A trunk that's currently inactive, see IptrunkBlock.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkBlockInactive(
    ProductBlockModel,
    lifecycle=[SubscriptionLifecycle.INITIAL],
    product_block_name="IptrunkBlock",
):
    """A trunk that's currently inactive, see `IptrunkBlock`."""

    gs_id: str | None = None
    iptrunk_description: str | None = None
    iptrunk_type: IptrunkType | None = None
    iptrunk_speed: PhysicalPortCapacity | None = None
    iptrunk_minimum_links: int | None = None
    iptrunk_isis_metric: int | None = None
    iptrunk_ipv4_network: ipaddress.IPv4Network | None = None
    iptrunk_ipv6_network: ipaddress.IPv6Network | None = None
    iptrunk_sides: IptrunkSides[IptrunkSideBlockInactive]

IptrunkBlockProvisioning

Bases: IptrunkBlockInactive

A trunk that's currently being provisioned, see IptrunkBlock.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkBlockProvisioning(IptrunkBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """A trunk that's currently being provisioned, see `IptrunkBlock`."""

    gs_id: str | None = None
    iptrunk_description: str | None = None
    iptrunk_type: IptrunkType | None = None
    iptrunk_speed: PhysicalPortCapacity | None = None
    iptrunk_minimum_links: int | None = None
    iptrunk_isis_metric: int | None = None
    iptrunk_ipv4_network: ipaddress.IPv4Network | None = None
    iptrunk_ipv6_network: ipaddress.IPv6Network | None = None
    iptrunk_sides: IptrunkSides[IptrunkSideBlockProvisioning]  # type: ignore[assignment]

IptrunkBlock

Bases: IptrunkBlockProvisioning

A trunk that's currently deployed in the network.

Attributes:

Name Type Description
gs_id str | None

GÉANT service ID associated with this trunk.

iptrunk_description str | None

A human-readable description of this trunk.

iptrunk_type IptrunkType

The type of trunk, can be either dark fibre or leased capacity.

iptrunk_speed PhysicalPortCapacity

The speed of the trunk, measured per interface associated with it.

iptrunk_minimum_links int

The minimum amount of links the trunk should consist of.

iptrunk_isis_metric int

The ISIS metric of this link.

iptrunk_ipv4_network IPv4Network

The IPv4 network used for this trunk.

iptrunk_ipv6_network IPv6Network

The IPv6 network used for this trunk.

iptrunk_sides IptrunkSides[IptrunkSideBlock]

The two sides that the trunk is connected to.

Source code in gso/products/product_blocks/iptrunk.py
class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """A trunk that's currently deployed in the network.

    Attributes:
        gs_id: GÉANT service ID associated with this trunk.
        iptrunk_description: A human-readable description of this trunk.
        iptrunk_type: The type of trunk, can be either dark fibre or leased capacity.
        iptrunk_speed: The speed of the trunk, measured per interface associated with it.
        iptrunk_minimum_links: The minimum amount of links the trunk should consist of.
        iptrunk_isis_metric: The ISIS metric of this link.
        iptrunk_ipv4_network: The IPv4 network used for this trunk.
        iptrunk_ipv6_network: The IPv6 network used for this trunk.
        iptrunk_sides: The two sides that the trunk is connected to.
    """

    gs_id: str | None = None
    iptrunk_description: str | None = None
    iptrunk_type: IptrunkType
    iptrunk_speed: PhysicalPortCapacity
    iptrunk_minimum_links: int
    iptrunk_isis_metric: int
    iptrunk_ipv4_network: ipaddress.IPv4Network
    iptrunk_ipv6_network: ipaddress.IPv6Network
    iptrunk_sides: IptrunkSides[IptrunkSideBlock]  # type: ignore[assignment]