Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Diode Python SDK - Entity Examples

Source: NetBox v4.6.0
Generated: 2026-05-14 20:30:15Z
Generated: 2026-07-03 00:59:24Z

## Prerequisites

Expand Down
221 changes: 219 additions & 2 deletions docs/examples/cable.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@
from netboxlabs.diode.sdk.ingester import (
Cable,
CableBundle,
Device,
DeviceRole,
DeviceType,
Entity,
GenericObject,
Interface,
Manufacturer,
Owner,
OwnerGroup,
Site,
Tag,
Tenant,
)
Expand Down Expand Up @@ -50,14 +57,84 @@ def cable_minimal() -> Cable:
"""Create a Cable with only required fields using flat strings."""
return Cable(
metadata={"source": "example"},
a_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name A",
type="1000base-t",
metadata={"source": "example"},
)
)
],
b_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name B",
type="1000base-t",
metadata={"source": "example"},
)
)
],
)


def cable_extended() -> Cable:
"""Create a Cable with common optional fields."""
return Cable(
metadata={"source": "example", "custom_key": "custom_value"},
status="connected",
status="planned",
description="Example description",
color="0000ff",
type="aoc",
Expand All @@ -67,6 +144,76 @@ def cable_extended() -> Cable:
length_unit="cm",
comments="Example comments",
profile="breakout-1c2p-2c1p",
a_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name A",
type="1000base-t",
metadata={"source": "example"},
)
)
],
b_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name B",
type="1000base-t",
metadata={"source": "example"},
)
)
],
)


Expand All @@ -78,7 +225,7 @@ def cable_explicit() -> Cable:
"custom_key": "custom_value",
"collected_at": "2024-01-15T10:30:00Z",
},
status="connected",
status="planned",
description="Example description",
color="0000ff",
comments="Example comments",
Expand All @@ -96,6 +243,76 @@ def cable_explicit() -> Cable:
metadata={"source": "example"},
),
bundle=CableBundle(name="Example Name", metadata={"source": "example"}),
a_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name A",
type="1000base-t",
metadata={"source": "example"},
)
)
],
b_terminations=[
GenericObject(
object_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name B",
type="1000base-t",
metadata={"source": "example"},
)
)
],
tags=[Tag(name="production")],
)

Expand Down
60 changes: 59 additions & 1 deletion docs/examples/cable_termination.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,25 @@
from netboxlabs.diode.sdk.ingester import (
Cable,
CableTermination,
Circuit,
CircuitTermination,
CircuitType,
ConsolePort,
ConsoleServerPort,
Device,
DeviceRole,
DeviceType,
Entity,
FrontPort,
Interface,
Manufacturer,
PowerFeed,
PowerOutlet,
PowerPanel,
PowerPort,
Provider,
RearPort,
Site,
)

TARGET = "grpc://localhost:8080/diode"
Expand Down Expand Up @@ -63,13 +81,53 @@ def cable_termination_extended() -> CableTermination:
def cable_termination_explicit() -> CableTermination:
"""Create a CableTermination with fully nested objects and all common fields."""
return CableTermination(
cable=Cable(status="active", color="0000ff", metadata={"source": "example"}),
cable=Cable(status="planned", color="0000ff", metadata={"source": "example"}),
cable_end="A",
metadata={
"source": "example",
"custom_key": "custom_value",
"collected_at": "2024-01-15T10:30:00Z",
},
# Polymorphic 'termination' — choose ONE of these mutually exclusive variants:
termination_interface=Interface(
device=Device(
device_type=DeviceType(
manufacturer=Manufacturer(
name="Example Name",
slug="example-slug",
metadata={"source": "example"},
),
model="Model X",
slug="example-slug",
metadata={"source": "example"},
),
role=DeviceRole(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
site=Site(
name="Example Name",
slug="example-slug",
status="active",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
name="Example Name",
type="1000base-t",
metadata={"source": "example"},
),
# termination_circuit_termination=CircuitTermination(circuit=Circuit(cid="CID-001", provider=Provider(name="Example Name", slug="example-slug", metadata={"source": "example"}), type=CircuitType(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), status="active", metadata={"source": "example"}), term_side="A", metadata={"source": "example"}),
# termination_console_port=ConsolePort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}),
# termination_console_server_port=ConsoleServerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}),
# termination_front_port=FrontPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}), metadata={"source": "example"}),
# termination_power_feed=PowerFeed(power_panel=PowerPanel(site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), name="Example Name", status="active", metadata={"source": "example"}),
# termination_power_outlet=PowerOutlet(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", color="0000ff", status="disabled", metadata={"source": "example"}),
# termination_power_port=PowerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}),
# termination_rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}),
)


Expand Down
22 changes: 22 additions & 0 deletions docs/examples/circuit_group_assignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,16 @@

from netboxlabs.diode.sdk import DiodeClient
from netboxlabs.diode.sdk.ingester import (
Circuit,
CircuitGroup,
CircuitGroupAssignment,
CircuitType,
Entity,
Provider,
ProviderNetwork,
Tag,
VirtualCircuit,
VirtualCircuitType,
)

TARGET = "grpc://localhost:8080/diode"
Expand Down Expand Up @@ -74,6 +80,22 @@ def circuit_group_assignment_explicit() -> CircuitGroupAssignment:
"collected_at": "2024-01-15T10:30:00Z",
},
priority="inactive",
# Polymorphic 'member' — choose ONE of these mutually exclusive variants:
member_circuit=Circuit(
cid="CID-001",
provider=Provider(
name="Example Name", slug="example-slug", metadata={"source": "example"}
),
type=CircuitType(
name="Example Name",
slug="example-slug",
color="0000ff",
metadata={"source": "example"},
),
status="active",
metadata={"source": "example"},
),
# member_virtual_circuit=VirtualCircuit(cid="CID-001", provider_network=ProviderNetwork(provider=Provider(name="Example Name", slug="example-slug", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), type=VirtualCircuitType(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), status="active", metadata={"source": "example"}),
tags=[Tag(name="production")],
)

Expand Down
Loading
Loading