mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-14 07:42:18 -06:00
Clone all GraphQL objects to V1 versions
This commit is contained in:
19
netbox/circuits/graphql/filter_mixins_v1.py
Normal file
19
netbox/circuits/graphql/filter_mixins_v1.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Annotated, TYPE_CHECKING
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from netbox.graphql.filter_mixins_v1 import OrganizationalModelFilterMixinV1
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from netbox.graphql.enums import ColorEnum
|
||||
|
||||
__all__ = (
|
||||
'BaseCircuitTypeFilterMixinV1',
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class BaseCircuitTypeFilterMixinV1(OrganizationalModelFilterMixinV1):
|
||||
color: Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')] | None = strawberry_django.filter_field()
|
||||
228
netbox/circuits/graphql/filters_v1.py
Normal file
228
netbox/circuits/graphql/filters_v1.py
Normal file
@@ -0,0 +1,228 @@
|
||||
from datetime import date
|
||||
from typing import Annotated, TYPE_CHECKING
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
from strawberry.scalars import ID
|
||||
from strawberry_django import FilterLookup, DateFilterLookup
|
||||
|
||||
from circuits import models
|
||||
from core.graphql.filter_mixins_v1 import BaseObjectTypeFilterMixinV1, ChangeLogFilterMixinV1
|
||||
from dcim.graphql.filter_mixins_v1 import CabledObjectModelFilterMixinV1
|
||||
from extras.graphql.filter_mixins_v1 import CustomFieldsFilterMixinV1, TagsFilterMixinV1
|
||||
from netbox.graphql.filter_mixins_v1 import (
|
||||
DistanceFilterMixinV1,
|
||||
ImageAttachmentFilterMixinV1,
|
||||
OrganizationalModelFilterMixinV1,
|
||||
PrimaryModelFilterMixinV1,
|
||||
)
|
||||
from tenancy.graphql.filter_mixins_v1 import ContactFilterMixinV1, TenancyFilterMixinV1
|
||||
from .filter_mixins_v1 import BaseCircuitTypeFilterMixinV1
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from core.graphql.filters_v1 import ContentTypeFilterV1
|
||||
from dcim.graphql.filters_v1 import (
|
||||
InterfaceFilterV1, LocationFilterV1, RegionFilterV1, SiteFilterV1, SiteGroupFilterV1
|
||||
)
|
||||
from ipam.graphql.filters_v1 import ASNFilterV1
|
||||
from netbox.graphql.filter_lookups import IntegerLookup
|
||||
from .enums import *
|
||||
|
||||
__all__ = (
|
||||
'CircuitFilterV1',
|
||||
'CircuitGroupAssignmentFilterV1',
|
||||
'CircuitGroupFilterV1',
|
||||
'CircuitTerminationFilterV1',
|
||||
'CircuitTypeFilterV1',
|
||||
'ProviderFilterV1',
|
||||
'ProviderAccountFilterV1',
|
||||
'ProviderNetworkFilterV1',
|
||||
'VirtualCircuitFilterV1',
|
||||
'VirtualCircuitTerminationFilterV1',
|
||||
'VirtualCircuitTypeFilterV1',
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.CircuitTermination, lookups=True)
|
||||
class CircuitTerminationFilterV1(
|
||||
BaseObjectTypeFilterMixinV1,
|
||||
CustomFieldsFilterMixinV1,
|
||||
TagsFilterMixinV1,
|
||||
ChangeLogFilterMixinV1,
|
||||
CabledObjectModelFilterMixinV1,
|
||||
):
|
||||
circuit: Annotated['CircuitFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
term_side: Annotated['CircuitTerminationSideEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
termination_type: Annotated['ContentTypeFilterV1', strawberry.lazy('core.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
termination_id: ID | None = strawberry_django.filter_field()
|
||||
port_speed: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
upstream_speed: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
xconnect_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
pp_info: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
|
||||
# Cached relations
|
||||
_provider_network: Annotated['ProviderNetworkFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field(name='provider_network')
|
||||
)
|
||||
_location: Annotated['LocationFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field(name='location')
|
||||
)
|
||||
_region: Annotated['RegionFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field(name='region')
|
||||
)
|
||||
_site_group: Annotated['SiteGroupFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field(name='site_group')
|
||||
)
|
||||
_site: Annotated['SiteFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field(name='site')
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.Circuit, lookups=True)
|
||||
class CircuitFilterV1(
|
||||
ContactFilterMixinV1,
|
||||
ImageAttachmentFilterMixinV1,
|
||||
DistanceFilterMixinV1,
|
||||
TenancyFilterMixinV1,
|
||||
PrimaryModelFilterMixinV1
|
||||
):
|
||||
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
provider: Annotated['ProviderFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_id: ID | None = strawberry_django.filter_field()
|
||||
provider_account: Annotated['ProviderAccountFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_account_id: ID | None = strawberry_django.filter_field()
|
||||
type: Annotated['CircuitTypeFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
type_id: ID | None = strawberry_django.filter_field()
|
||||
status: Annotated['CircuitStatusEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
install_date: DateFilterLookup[date] | None = strawberry_django.filter_field()
|
||||
termination_date: DateFilterLookup[date] | None = strawberry_django.filter_field()
|
||||
commit_rate: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
terminations: Annotated['CircuitTerminationFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.CircuitType, lookups=True)
|
||||
class CircuitTypeFilterV1(BaseCircuitTypeFilterMixinV1):
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.CircuitGroup, lookups=True)
|
||||
class CircuitGroupFilterV1(TenancyFilterMixinV1, OrganizationalModelFilterMixinV1):
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.CircuitGroupAssignment, lookups=True)
|
||||
class CircuitGroupAssignmentFilterV1(
|
||||
BaseObjectTypeFilterMixinV1, CustomFieldsFilterMixinV1, TagsFilterMixinV1, ChangeLogFilterMixinV1
|
||||
):
|
||||
member_type: Annotated['ContentTypeFilterV1', strawberry.lazy('core.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
member_id: ID | None = strawberry_django.filter_field()
|
||||
group: Annotated['CircuitGroupFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
group_id: ID | None = strawberry_django.filter_field()
|
||||
priority: Annotated['CircuitPriorityEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.Provider, lookups=True)
|
||||
class ProviderFilterV1(ContactFilterMixinV1, PrimaryModelFilterMixinV1):
|
||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
asns: Annotated['ASNFilterV1', strawberry.lazy('ipam.graphql.filters_v1')] | None = strawberry_django.filter_field()
|
||||
circuits: Annotated['CircuitFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.ProviderAccount, lookups=True)
|
||||
class ProviderAccountFilterV1(ContactFilterMixinV1, PrimaryModelFilterMixinV1):
|
||||
provider: Annotated['ProviderFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_id: ID | None = strawberry_django.filter_field()
|
||||
account: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.ProviderNetwork, lookups=True)
|
||||
class ProviderNetworkFilterV1(PrimaryModelFilterMixinV1):
|
||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
provider: Annotated['ProviderFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_id: ID | None = strawberry_django.filter_field()
|
||||
service_id: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
|
||||
class VirtualCircuitTypeFilterV1(BaseCircuitTypeFilterMixinV1):
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.VirtualCircuit, lookups=True)
|
||||
class VirtualCircuitFilterV1(TenancyFilterMixinV1, PrimaryModelFilterMixinV1):
|
||||
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
provider_network: Annotated['ProviderNetworkFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_network_id: ID | None = strawberry_django.filter_field()
|
||||
provider_account: Annotated['ProviderAccountFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
provider_account_id: ID | None = strawberry_django.filter_field()
|
||||
type: Annotated['VirtualCircuitTypeFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
type_id: ID | None = strawberry_django.filter_field()
|
||||
status: Annotated['CircuitStatusEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
group_assignments: Annotated[
|
||||
'CircuitGroupAssignmentFilterV1', strawberry.lazy('circuits.graphql.filters_v1')
|
||||
] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.VirtualCircuitTermination, lookups=True)
|
||||
class VirtualCircuitTerminationFilterV1(
|
||||
BaseObjectTypeFilterMixinV1, CustomFieldsFilterMixinV1, TagsFilterMixinV1, ChangeLogFilterMixinV1
|
||||
):
|
||||
virtual_circuit: Annotated['VirtualCircuitFilterV1', strawberry.lazy('circuits.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
virtual_circuit_id: ID | None = strawberry_django.filter_field()
|
||||
role: Annotated['VirtualCircuitTerminationRoleEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
interface: Annotated['InterfaceFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
interface_id: ID | None = strawberry_django.filter_field()
|
||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
42
netbox/circuits/graphql/schema_v1.py
Normal file
42
netbox/circuits/graphql/schema_v1.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from typing import List
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from .types_v1 import *
|
||||
|
||||
|
||||
@strawberry.type(name="Query")
|
||||
class CircuitsQueryV1:
|
||||
circuit: CircuitTypeV1 = strawberry_django.field()
|
||||
circuit_list: List[CircuitTypeV1] = strawberry_django.field()
|
||||
|
||||
circuit_termination: CircuitTerminationTypeV1 = strawberry_django.field()
|
||||
circuit_termination_list: List[CircuitTerminationTypeV1] = strawberry_django.field()
|
||||
|
||||
circuit_type: CircuitTypeTypeV1 = strawberry_django.field()
|
||||
circuit_type_list: List[CircuitTypeTypeV1] = strawberry_django.field()
|
||||
|
||||
circuit_group: CircuitGroupTypeV1 = strawberry_django.field()
|
||||
circuit_group_list: List[CircuitGroupTypeV1] = strawberry_django.field()
|
||||
|
||||
circuit_group_assignment: CircuitGroupAssignmentTypeV1 = strawberry_django.field()
|
||||
circuit_group_assignment_list: List[CircuitGroupAssignmentTypeV1] = strawberry_django.field()
|
||||
|
||||
provider: ProviderTypeV1 = strawberry_django.field()
|
||||
provider_list: List[ProviderTypeV1] = strawberry_django.field()
|
||||
|
||||
provider_account: ProviderAccountTypeV1 = strawberry_django.field()
|
||||
provider_account_list: List[ProviderAccountTypeV1] = strawberry_django.field()
|
||||
|
||||
provider_network: ProviderNetworkTypeV1 = strawberry_django.field()
|
||||
provider_network_list: List[ProviderNetworkTypeV1] = strawberry_django.field()
|
||||
|
||||
virtual_circuit: VirtualCircuitTypeV1 = strawberry_django.field()
|
||||
virtual_circuit_list: List[VirtualCircuitTypeV1] = strawberry_django.field()
|
||||
|
||||
virtual_circuit_termination: VirtualCircuitTerminationTypeV1 = strawberry_django.field()
|
||||
virtual_circuit_termination_list: List[VirtualCircuitTerminationTypeV1] = strawberry_django.field()
|
||||
|
||||
virtual_circuit_type: VirtualCircuitTypeTypeV1 = strawberry_django.field()
|
||||
virtual_circuit_type_list: List[VirtualCircuitTypeTypeV1] = strawberry_django.field()
|
||||
189
netbox/circuits/graphql/types_v1.py
Normal file
189
netbox/circuits/graphql/types_v1.py
Normal file
@@ -0,0 +1,189 @@
|
||||
from typing import Annotated, List, TYPE_CHECKING, Union
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from circuits import models
|
||||
from dcim.graphql.mixins_v1 import CabledObjectMixinV1
|
||||
from extras.graphql.mixins_v1 import ContactsMixinV1, CustomFieldsMixinV1, TagsMixinV1
|
||||
from netbox.graphql.types_v1 import BaseObjectTypeV1, NetBoxObjectTypeV1, ObjectTypeV1, OrganizationalObjectTypeV1
|
||||
from tenancy.graphql.types_v1 import TenantTypeV1
|
||||
from .filters_v1 import *
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from dcim.graphql.types_v1 import InterfaceTypeV1, LocationTypeV1, RegionTypeV1, SiteGroupTypeV1, SiteTypeV1
|
||||
from ipam.graphql.types_v1 import ASNTypeV1
|
||||
|
||||
__all__ = (
|
||||
'CircuitGroupAssignmentTypeV1',
|
||||
'CircuitGroupTypeV1',
|
||||
'CircuitTerminationTypeV1',
|
||||
'CircuitTypeV1',
|
||||
'CircuitTypeTypeV1',
|
||||
'ProviderTypeV1',
|
||||
'ProviderAccountTypeV1',
|
||||
'ProviderNetworkTypeV1',
|
||||
'VirtualCircuitTerminationTypeV1',
|
||||
'VirtualCircuitTypeV1',
|
||||
'VirtualCircuitTypeTypeV1',
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Provider,
|
||||
fields='__all__',
|
||||
filters=ProviderFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class ProviderTypeV1(NetBoxObjectTypeV1, ContactsMixinV1):
|
||||
|
||||
networks: List[Annotated["ProviderNetworkTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
circuits: List[Annotated["CircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
asns: List[Annotated["ASNTypeV1", strawberry.lazy('ipam.graphql.types_v1')]]
|
||||
accounts: List[Annotated["ProviderAccountTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ProviderAccount,
|
||||
fields='__all__',
|
||||
filters=ProviderAccountFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class ProviderAccountTypeV1(ContactsMixinV1, NetBoxObjectTypeV1):
|
||||
provider: Annotated["ProviderTypeV1", strawberry.lazy('circuits.graphql.types_v1')]
|
||||
|
||||
circuits: List[Annotated["CircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ProviderNetwork,
|
||||
fields='__all__',
|
||||
filters=ProviderNetworkFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class ProviderNetworkTypeV1(NetBoxObjectTypeV1):
|
||||
provider: Annotated["ProviderTypeV1", strawberry.lazy('circuits.graphql.types_v1')]
|
||||
|
||||
circuit_terminations: List[Annotated["CircuitTerminationTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.CircuitTermination,
|
||||
exclude=['termination_type', 'termination_id', '_location', '_region', '_site', '_site_group', '_provider_network'],
|
||||
filters=CircuitTerminationFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class CircuitTerminationTypeV1(CustomFieldsMixinV1, TagsMixinV1, CabledObjectMixinV1, ObjectTypeV1):
|
||||
circuit: Annotated["CircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')]
|
||||
|
||||
@strawberry_django.field
|
||||
def termination(self) -> Annotated[Union[
|
||||
Annotated["LocationTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["RegionTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["SiteGroupTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["SiteTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["ProviderNetworkTypeV1", strawberry.lazy('circuits.graphql.types_v1')],
|
||||
], strawberry.union("CircuitTerminationTerminationTypeV1")] | None:
|
||||
return self.termination
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.CircuitType,
|
||||
fields='__all__',
|
||||
filters=CircuitTypeFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class CircuitTypeTypeV1(OrganizationalObjectTypeV1):
|
||||
color: str
|
||||
|
||||
circuits: List[Annotated["CircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Circuit,
|
||||
fields='__all__',
|
||||
filters=CircuitFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class CircuitTypeV1(NetBoxObjectTypeV1, ContactsMixinV1):
|
||||
provider: ProviderTypeV1
|
||||
provider_account: ProviderAccountTypeV1 | None
|
||||
termination_a: CircuitTerminationTypeV1 | None
|
||||
termination_z: CircuitTerminationTypeV1 | None
|
||||
type: CircuitTypeTypeV1
|
||||
tenant: TenantTypeV1 | None
|
||||
|
||||
terminations: List[CircuitTerminationTypeV1]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.CircuitGroup,
|
||||
fields='__all__',
|
||||
filters=CircuitGroupFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class CircuitGroupTypeV1(OrganizationalObjectTypeV1):
|
||||
tenant: TenantTypeV1 | None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.CircuitGroupAssignment,
|
||||
exclude=['member_type', 'member_id'],
|
||||
filters=CircuitGroupAssignmentFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class CircuitGroupAssignmentTypeV1(TagsMixinV1, BaseObjectTypeV1):
|
||||
group: Annotated["CircuitGroupTypeV1", strawberry.lazy('circuits.graphql.types_v1')]
|
||||
|
||||
@strawberry_django.field
|
||||
def member(self) -> Annotated[Union[
|
||||
Annotated["CircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')],
|
||||
Annotated["VirtualCircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')],
|
||||
], strawberry.union("CircuitGroupAssignmentMemberTypeV1")] | None:
|
||||
return self.member
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualCircuitType,
|
||||
fields='__all__',
|
||||
filters=VirtualCircuitTypeFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class VirtualCircuitTypeTypeV1(OrganizationalObjectTypeV1):
|
||||
color: str
|
||||
|
||||
virtual_circuits: List[Annotated["VirtualCircuitTypeV1", strawberry.lazy('circuits.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualCircuitTermination,
|
||||
fields='__all__',
|
||||
filters=VirtualCircuitTerminationFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class VirtualCircuitTerminationTypeV1(CustomFieldsMixinV1, TagsMixinV1, ObjectTypeV1):
|
||||
virtual_circuit: Annotated[
|
||||
"VirtualCircuitTypeV1",
|
||||
strawberry.lazy('circuits.graphql.types_v1')
|
||||
] = strawberry_django.field(select_related=["virtual_circuit"])
|
||||
interface: Annotated[
|
||||
"InterfaceTypeV1",
|
||||
strawberry.lazy('dcim.graphql.types_v1')
|
||||
] = strawberry_django.field(select_related=["interface"])
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualCircuit,
|
||||
fields='__all__',
|
||||
filters=VirtualCircuitFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class VirtualCircuitTypeV1(NetBoxObjectTypeV1):
|
||||
provider_network: ProviderNetworkTypeV1 = strawberry_django.field(select_related=["provider_network"])
|
||||
provider_account: ProviderAccountTypeV1 | None
|
||||
type: Annotated["VirtualCircuitTypeTypeV1", strawberry.lazy('circuits.graphql.types_v1')] = strawberry_django.field(
|
||||
select_related=["type"]
|
||||
)
|
||||
tenant: TenantTypeV1 | None
|
||||
|
||||
terminations: List[VirtualCircuitTerminationTypeV1]
|
||||
Reference in New Issue
Block a user