Skip to content

Layer 2 circuit

Layer 2 Circuit product block.

Layer2CircuitSideBlockInactive

Bases: ProductBlockModel

One inactive side of a Layer 2 Circuit.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitSideBlockInactive(
    ProductBlockModel,
    lifecycle=[SubscriptionLifecycle.INITIAL],
    product_block_name="Layer2CircuitSideBlock",
):
    """One inactive side of a Layer 2 Circuit."""

    sbp: ServiceBindingPortInactive

Layer2CircuitSideBlockProvisioning

Bases: Layer2CircuitSideBlockInactive

One provisioning side of a Layer 2 Circuit.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitSideBlockProvisioning(
    Layer2CircuitSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]
):
    """One provisioning side of a Layer 2 Circuit."""

    sbp: ServiceBindingPortProvisioning

Layer2CircuitSideBlock

Bases: Layer2CircuitSideBlockProvisioning

One side of a Layer 2 Circuit.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitSideBlock(Layer2CircuitSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """One side of a Layer 2 Circuit."""

    sbp: ServiceBindingPort

Layer2CircuitType

Bases: strEnum

The two types of Layer 2 Circuit.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitType(strEnum):
    """The two types of Layer 2 Circuit."""

    TAGGED = "TAGGED"
    """Tagged."""
    UNTAGGED = "UNTAGGED"
    """Untagged."""

TAGGED = 'TAGGED' class-attribute instance-attribute

Tagged.

UNTAGGED = 'UNTAGGED' class-attribute instance-attribute

Untagged.

Layer2CircuitBlockInactive

Bases: ProductBlockModel

An inactive Layer 2 Circuit, see Layer2CircuitBlock.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitBlockInactive(
    ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="Layer2CircuitBlock"
):
    """An inactive Layer 2 Circuit, see ``Layer2CircuitBlock``."""

    layer_2_circuit_sides: Layer2CircuitSides[Layer2CircuitSideBlockInactive]
    virtual_circuit_id: VC_ID | None = None
    layer_2_circuit_type: Layer2CircuitType | None = None
    vlan_range_lower_bound: VLAN_ID | None = None
    vlan_range_upper_bound: VLAN_ID | None = None
    policer_enabled: bool | None = None
    policer_burst_rate: BandwidthString | None = None
    bandwidth: BandwidthString | None = None
    custom_service_name: str | None = None

Layer2CircuitBlockProvisioning

Bases: Layer2CircuitBlockInactive

A provisioning Layer 2 Circuit, see Layer2CircuitBlock.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitBlockProvisioning(Layer2CircuitBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """A provisioning Layer 2 Circuit, see ``Layer2CircuitBlock``."""

    layer_2_circuit_sides: Layer2CircuitSides[Layer2CircuitSideBlockProvisioning]
    virtual_circuit_id: VC_ID
    layer_2_circuit_type: Layer2CircuitType
    vlan_range_lower_bound: VLAN_ID | None
    vlan_range_upper_bound: VLAN_ID | None
    policer_enabled: bool
    policer_burst_rate: BandwidthString | None
    bandwidth: BandwidthString | None
    custom_service_name: str | None = None

Layer2CircuitBlock

Bases: Layer2CircuitBlockProvisioning

An active Layer 2 Circuit.

Attributes:

Name Type Description
layer_2_circuit_sides Layer2CircuitSides[Layer2CircuitSideBlock]

The two sides that the Layer 2 Circuit is connected to.

virtual_circuit_id VC_ID

Virtual Circuit ID of this Layer 2 Circuit.

layer_2_circuit_type Layer2CircuitType

The type of circuit, can be tagged or untagged.

vlan_range_lower_bound VLAN_ID | None

If tagged, the lower and upper bounds will set the VLAN range.

vlan_range_upper_bound VLAN_ID | None

Lower and Upper bounds are including.

policer_enabled bool

Whether this Layer 2 Circuit is policed.

policer_burst_rate BandwidthString | None

If policed, the burst rate of the policer.

bandwidth BandwidthString | None

If policed, the bandwidth of the policer is stored.

custom_service_name str | None

The name of the service which is used in IMS.

Source code in gso/products/product_blocks/layer_2_circuit.py
class Layer2CircuitBlock(Layer2CircuitBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """An active Layer 2 Circuit.

    Attributes:
        layer_2_circuit_sides: The two sides that the Layer 2 Circuit is connected to.
        virtual_circuit_id: Virtual Circuit ID of this Layer 2 Circuit.
        layer_2_circuit_type: The type of circuit, can be tagged or untagged.
        vlan_range_lower_bound: If tagged, the lower and upper bounds will set the VLAN range.
        vlan_range_upper_bound: Lower and Upper bounds are including.
        policer_enabled: Whether this Layer 2 Circuit is policed.
        policer_burst_rate: If policed, the burst rate of the policer.
        bandwidth: If policed, the bandwidth of the policer is stored.
        custom_service_name: The name of the service which is used in IMS.
    """

    layer_2_circuit_sides: Layer2CircuitSides[Layer2CircuitSideBlock]
    virtual_circuit_id: VC_ID
    layer_2_circuit_type: Layer2CircuitType
    vlan_range_lower_bound: VLAN_ID | None
    vlan_range_upper_bound: VLAN_ID | None
    policer_enabled: bool
    policer_burst_rate: BandwidthString | None
    bandwidth: BandwidthString | None
    custom_service_name: str | None = None