Skip to content

gds_software.component.elements

Component diagram element declarations -- frozen Pydantic models for user-facing declarations.

Bases: BaseModel

A software component with provided and required interfaces.

Maps to: GDS Policy (if stateless) or Mechanism (if stateful).

Source code in packages/gds-software/gds_software/component/elements.py
class Component(BaseModel, frozen=True):
    """A software component with provided and required interfaces.

    Maps to: GDS Policy (if stateless) or Mechanism (if stateful).
    """

    name: str
    provides: list[str] = Field(default_factory=list)
    requires: list[str] = Field(default_factory=list)
    stateful: bool = False
    description: str = ""

Bases: BaseModel

A named interface that a component provides or requires.

Interfaces define the contract between components.

Source code in packages/gds-software/gds_software/component/elements.py
class InterfaceDef(BaseModel, frozen=True):
    """A named interface that a component provides or requires.

    Interfaces define the contract between components.
    """

    name: str
    description: str = ""

Bases: BaseModel

A connector between component interfaces.

Maps to: GDS Wiring. Connects a provided interface to a required interface.

Source code in packages/gds-software/gds_software/component/elements.py
class Connector(BaseModel, frozen=True):
    """A connector between component interfaces.

    Maps to: GDS Wiring.
    Connects a provided interface to a required interface.
    """

    name: str
    source: str
    source_interface: str
    target: str
    target_interface: str