diff --git a/gso/products/product_blocks/edge_port.py b/gso/products/product_blocks/edge_port.py index 8f5c4bb1b32926639688b48e853d670de4a0734c..d7249d34bbfa6410834a28b0770ce6b1e3c6a08d 100644 --- a/gso/products/product_blocks/edge_port.py +++ b/gso/products/product_blocks/edge_port.py @@ -12,16 +12,14 @@ from gso.utils.types.interfaces import LAGMemberList, PhysicalPortCapacity class EncapsulationType(strEnum): - """Types of encapsulation for edge ports. - - Null supports a single service on the port. - Dot1Q supports multiple services for one customer or services for multiple customers. - QinQ expands VLAN space by double-tagging frames. - """ + """Types of encapsulation for edge ports.""" DOT1Q = "dot1q" + """Dot1Q supports multiple services for one customer or services for multiple customers.""" QINQ = "qinq" + """QinQ expands VLAN space by double-tagging frames.""" NULL = "null" + """Null supports a single service on the port.""" class EdgePortType(strEnum): @@ -94,29 +92,32 @@ class EdgePortBlockProvisioning(EdgePortBlockInactive, lifecycle=[SubscriptionLi class EdgePortBlock(EdgePortBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - """An edge port that's currently deployed in the network.""" + """An edge port that's currently deployed in the network. + + Attributes: + node: The router that this Edge Port is connected to. + edge_port_name: The name of the edge port, in our case, corresponds to the name of the LAG interface. + edge_port_description: A description of the edge port. + enable_lacp: Indicates whether LACP is enabled for this edge port. + encapsulation: The type of encapsulation used on this edge port, by default DOT1Q. + mac_address: The MAC address assigned to this edge port, if applicable. + member_speed: The speed capacity of each member in the physical port. + minimum_links: The minimum number of links required for this edge port. + edge_port_type: The type of edge port (e.g., customer, private, public). + ignore_if_down: If set to True, the edge port will be ignored if it is down. + ga_id: The GEANT GA ID associated with this edge port, if any. + edge_port_ae_members: A list of LAG members associated with this edge port. + """ - #: The router that this edge port is connected to. node: RouterBlock - #: The name of the edge port, in our case, corresponds to the name of the LAG interface. edge_port_name: str - #: A description of the edge port. edge_port_description: str | None = None - #: Indicates whether LACP is enabled for this edge port. enable_lacp: bool - #: The type of encapsulation used on this edge port, by default DOT1Q. encapsulation: EncapsulationType = EncapsulationType.DOT1Q - #: The MAC address assigned to this edge port, if applicable. mac_address: str | None = None - #: The speed capacity of each member in the physical port. member_speed: PhysicalPortCapacity - #: The minimum number of links required for this edge port. minimum_links: int | None = None - #: The type of edge port (e.g., customer, private, public). edge_port_type: EdgePortType - #: If set to True, the edge port will be ignored if it is down. ignore_if_down: bool = False - #: The GEANT GA ID associated with this edge port, if any. ga_id: str | None = None - #: A list of LAG members associated with this edge port. edge_port_ae_members: LAGMemberList[EdgePortAEMemberBlock] # type: ignore[assignment] diff --git a/gso/products/product_blocks/l3_core_service.py b/gso/products/product_blocks/l3_core_service.py index 129b94778d5a170e6869099aa4434629e82ce335..088dd5eea8dd696cb8b6b1f8cca2e6cfa05efd89 100644 --- a/gso/products/product_blocks/l3_core_service.py +++ b/gso/products/product_blocks/l3_core_service.py @@ -27,11 +27,13 @@ class AccessPortProvisioning(AccessPortInactive, lifecycle=[SubscriptionLifecycl class AccessPort(AccessPortProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - """An access port for an R&E service.""" + """An access port for an R&E service. - #: The type of Access Port + Attributes: + ap_type: The type of Access Port + sbp: The corresponding SBP of this Access Port. + """ ap_type: APType - #: The corresponding SBP of this Access Port. sbp: ServiceBindingPort @@ -50,7 +52,9 @@ class L3CoreServiceBlockProvisioning(L3CoreServiceBlockInactive, lifecycle=[Subs class L3CoreServiceBlock(L3CoreServiceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - """An active L3 Core Service subscription block.""" + """An active L3 Core Service subscription block. - #: The list of Access Points where this service is present. + Attributes: + ap_list: The list of Access Points where this service is present. + """ ap_list: list[AccessPort] # type: ignore[assignment] diff --git a/gso/products/product_blocks/service_binding_port.py b/gso/products/product_blocks/service_binding_port.py index 6d736f56b29919190122f67155823d0b3bfdad0a..33c8872069d69b0dfd7c8eb534bfe8c99996fb0c 100644 --- a/gso/products/product_blocks/service_binding_port.py +++ b/gso/products/product_blocks/service_binding_port.py @@ -39,15 +39,17 @@ class BFDSettingsProvisioning(BFDSettingsInactive, lifecycle=[SubscriptionLifecy class BFDSettings(BFDSettingsProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): - """A set of settings for BFD.""" - - #: Whether BFD is enabled. + """A set of settings for BFD. + + Attributes: + bfd_enabled: Whether BFD is enabled. + bfd_interval_rx: The BFD interval RX, if enabled. + bfd_interval_tx: The BFD interval TX, if enabled. + bfd_multiplier: The BFD multiplier, if enabled. + """ bfd_enabled: bool - #: The BFD interval RX, if enabled. bfd_interval_rx: int | None - #: The BFD interval TX, if enabled. bfd_interval_tx: int | None - #: The BFD multiplier, if enabled. bfd_multiplier: int | None