| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- 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 import BaseObjectTypeFilterMixin, ChangeLogFilterMixin
- from dcim.graphql.filter_mixins import CabledObjectModelFilterMixin
- from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
- from netbox.graphql.filter_mixins import (
- DistanceFilterMixin,
- ImageAttachmentFilterMixin,
- OrganizationalModelFilterMixin,
- PrimaryModelFilterMixin,
- )
- from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
- from .filter_mixins import BaseCircuitTypeFilterMixin
- if TYPE_CHECKING:
- from core.graphql.filters import ContentTypeFilter
- from dcim.graphql.filters import InterfaceFilter, LocationFilter, RegionFilter, SiteFilter, SiteGroupFilter
- from ipam.graphql.filters import ASNFilter
- from netbox.graphql.filter_lookups import IntegerLookup
- from .enums import *
- __all__ = (
- 'CircuitFilter',
- 'CircuitGroupAssignmentFilter',
- 'CircuitGroupFilter',
- 'CircuitTerminationFilter',
- 'CircuitTypeFilter',
- 'ProviderFilter',
- 'ProviderAccountFilter',
- 'ProviderNetworkFilter',
- 'VirtualCircuitFilter',
- 'VirtualCircuitTerminationFilter',
- 'VirtualCircuitTypeFilter',
- )
- @strawberry_django.filter(models.CircuitTermination, lookups=True)
- class CircuitTerminationFilter(
- BaseObjectTypeFilterMixin,
- CustomFieldsFilterMixin,
- TagsFilterMixin,
- ChangeLogFilterMixin,
- CabledObjectModelFilterMixin,
- ):
- circuit: Annotated['CircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- term_side: Annotated['CircuitTerminationSideEnum', strawberry.lazy('circuits.graphql.enums')] | None = (
- strawberry_django.filter_field()
- )
- termination_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | 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['ProviderNetworkFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field(name='provider_network')
- )
- _location: Annotated['LocationFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
- strawberry_django.filter_field(name='location')
- )
- _region: Annotated['RegionFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
- strawberry_django.filter_field(name='region')
- )
- _site_group: Annotated['SiteGroupFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
- strawberry_django.filter_field(name='site_group')
- )
- _site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
- strawberry_django.filter_field(name='site')
- )
- @strawberry_django.filter(models.Circuit, lookups=True)
- class CircuitFilter(
- ContactFilterMixin,
- ImageAttachmentFilterMixin,
- DistanceFilterMixin,
- TenancyFilterMixin,
- PrimaryModelFilterMixin
- ):
- cid: FilterLookup[str] | None = strawberry_django.filter_field()
- provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- provider_id: ID | None = strawberry_django.filter_field()
- provider_account: Annotated['ProviderAccountFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- provider_account_id: ID | None = strawberry_django.filter_field()
- type: Annotated['CircuitTypeFilter', strawberry.lazy('circuits.graphql.filters')] | 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['CircuitTerminationFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- @strawberry_django.filter(models.CircuitType, lookups=True)
- class CircuitTypeFilter(BaseCircuitTypeFilterMixin):
- pass
- @strawberry_django.filter(models.CircuitGroup, lookups=True)
- class CircuitGroupFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
- pass
- @strawberry_django.filter(models.CircuitGroupAssignment, lookups=True)
- class CircuitGroupAssignmentFilter(
- BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
- ):
- member_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- member_id: ID | None = strawberry_django.filter_field()
- group: Annotated['CircuitGroupFilter', strawberry.lazy('circuits.graphql.filters')] | 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(models.Provider, lookups=True)
- class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
- name: FilterLookup[str] | None = strawberry_django.filter_field()
- slug: FilterLookup[str] | None = strawberry_django.filter_field()
- asns: Annotated['ASNFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
- circuits: Annotated['CircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- @strawberry_django.filter(models.ProviderAccount, lookups=True)
- class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin):
- provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | 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(models.ProviderNetwork, lookups=True)
- class ProviderNetworkFilter(PrimaryModelFilterMixin):
- name: FilterLookup[str] | None = strawberry_django.filter_field()
- provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | 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(models.VirtualCircuitType, lookups=True)
- class VirtualCircuitTypeFilter(BaseCircuitTypeFilterMixin):
- pass
- @strawberry_django.filter(models.VirtualCircuit, lookups=True)
- class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
- cid: FilterLookup[str] | None = strawberry_django.filter_field()
- provider_network: Annotated['ProviderNetworkFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- provider_network_id: ID | None = strawberry_django.filter_field()
- provider_account: Annotated['ProviderAccountFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- provider_account_id: ID | None = strawberry_django.filter_field()
- type: Annotated['VirtualCircuitTypeFilter', strawberry.lazy('circuits.graphql.filters')] | 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['CircuitGroupAssignmentFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- @strawberry_django.filter(models.VirtualCircuitTermination, lookups=True)
- class VirtualCircuitTerminationFilter(
- BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
- ):
- virtual_circuit: Annotated['VirtualCircuitFilter', strawberry.lazy('circuits.graphql.filters')] | 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['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
- strawberry_django.filter_field()
- )
- interface_id: ID | None = strawberry_django.filter_field()
- description: FilterLookup[str] | None = strawberry_django.filter_field()
|