diff --git a/netbox/dcim/graphql/types.py b/netbox/dcim/graphql/types.py index 26855cab5..c8614e67d 100644 --- a/netbox/dcim/graphql/types.py +++ b/netbox/dcim/graphql/types.py @@ -762,6 +762,26 @@ class PowerPortTemplateType(ComponentTemplateObjectType): class RackType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType): _name: str + @strawberry_django.field + def reservations(self) -> List[Annotated["RackReservationType", strawberry.lazy('dcim.graphql.types')]]: + return self.reservations.all() + + @strawberry_django.field + def devices(self) -> List[Annotated["DeviceType", strawberry.lazy('dcim.graphql.types')]]: + return self.devices.all() + + @strawberry_django.field + def powerfeed_set(self) -> List[Annotated["PowerFeedType", strawberry.lazy('dcim.graphql.types')]]: + return self.powerfeed_set.all() + + @strawberry_django.field + def cabletermination_set(self) -> List[Annotated["CableTerminationType", strawberry.lazy('dcim.graphql.types')]]: + return self.cabletermination_set.all() + + @strawberry_django.field + def vlan_groups(self) -> List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]]: + return self.vlan_groups.all() + @strawberry_django.type( models.RackReservation, @@ -823,7 +843,22 @@ class RearPortTemplateType(ComponentTemplateObjectType): filters=RegionFilter ) class RegionType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType): - pass + + @strawberry_django.field + def parent(self) -> Annotated["RegionType", strawberry.lazy('dcim.graphql.types')]: + return self.region + + @strawberry_django.field + def sites(self) -> List[Annotated["SiteType", strawberry.lazy('dcim.graphql.types')]]: + return self.sites.all() + + @strawberry_django.field + def children(self) -> List[Annotated["RegionType", strawberry.lazy('dcim.graphql.types')]]: + return self.children.all() + + @strawberry_django.field + def vlan_groups(self) -> List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]]: + return self.vlan_groups.all() @strawberry_django.type( diff --git a/netbox/ipam/graphql/types.py b/netbox/ipam/graphql/types.py index dbefe50e1..b98e1d7a2 100644 --- a/netbox/ipam/graphql/types.py +++ b/netbox/ipam/graphql/types.py @@ -174,7 +174,18 @@ class PrefixType(NetBoxObjectType, BaseIPAddressFamilyType): filters=RIRFilter ) class RIRType(OrganizationalObjectType): - pass + + @strawberry_django.field + def asn_ranges(self) -> List[Annotated["ASNRangeType", strawberry.lazy('ipam.graphql.types')]]: + return self.asn_ranges.all() + + @strawberry_django.field + def asns(self) -> List[Annotated["ASNType", strawberry.lazy('ipam.graphql.types')]]: + return self.asns.all() + + @strawberry_django.field + def aggregates(self) -> List[Annotated["AggregateType", strawberry.lazy('ipam.graphql.types')]]: + return self.aggregates.all() @strawberry_django.type( @@ -183,7 +194,18 @@ class RIRType(OrganizationalObjectType): filters=RoleFilter ) class RoleType(OrganizationalObjectType): - pass + + @strawberry_django.field + def prefixes(self) -> List[Annotated["PrefixType", strawberry.lazy('ipam.graphql.types')]]: + return self.prefixes.all() + + @strawberry_django.field + def ip_ranges(self) -> List[Annotated["IPRangeType", strawberry.lazy('ipam.graphql.types')]]: + return self.ip_ranges.all() + + @strawberry_django.field + def vlans(self) -> List[Annotated["VLANType", strawberry.lazy('ipam.graphql.types')]]: + return self.vlans.all() @strawberry_django.type( @@ -192,7 +214,22 @@ class RoleType(OrganizationalObjectType): filters=RouteTargetFilter ) class RouteTargetType(NetBoxObjectType): - pass + + @strawberry_django.field + def exporting_l2vpns(self) -> List[Annotated["L2VPNType", strawberry.lazy('vpn.graphql.types')]]: + return self.exporting_l2vpns.all() + + @strawberry_django.field + def exporting_vrfs(self) -> List[Annotated["VRFType", strawberry.lazy('ipam.graphql.types')]]: + return self.exporting_vrfs.all() + + @strawberry_django.field + def importing_vrfs(self) -> List[Annotated["VRFType", strawberry.lazy('ipam.graphql.types')]]: + return self.importing_vrfs.all() + + @strawberry_django.field + def importing_l2vpns(self) -> List[Annotated["L2VPNType", strawberry.lazy('vpn.graphql.types')]]: + return self.importing_l2vpns.all() @strawberry_django.type(