netbox-plugin-dns 1.2.7b2__py3-none-any.whl → 1.3b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of netbox-plugin-dns might be problematic. Click here for more details.

Files changed (73) hide show
  1. netbox_dns/__init__.py +55 -29
  2. netbox_dns/api/field_serializers.py +25 -0
  3. netbox_dns/api/nested_serializers.py +19 -1
  4. netbox_dns/api/serializers_/dnssec_key_template.py +13 -0
  5. netbox_dns/api/serializers_/dnssec_policy.py +30 -0
  6. netbox_dns/api/serializers_/record.py +2 -0
  7. netbox_dns/api/serializers_/record_template.py +2 -0
  8. netbox_dns/api/serializers_/zone.py +10 -1
  9. netbox_dns/choices/dnssec_key_template.py +4 -4
  10. netbox_dns/choices/dnssec_policy.py +2 -2
  11. netbox_dns/choices/record.py +64 -19
  12. netbox_dns/choices/utilities.py +4 -26
  13. netbox_dns/choices/zone.py +96 -1
  14. netbox_dns/fields/choice_array.py +13 -0
  15. netbox_dns/fields/timeperiod.py +15 -13
  16. netbox_dns/filtersets/dnssec_policy.py +25 -1
  17. netbox_dns/filtersets/zone.py +7 -2
  18. netbox_dns/filtersets/zone_template.py +2 -2
  19. netbox_dns/forms/dnssec_key_template.py +2 -1
  20. netbox_dns/forms/dnssec_policy.py +32 -2
  21. netbox_dns/forms/nameserver.py +2 -0
  22. netbox_dns/forms/record_template.py +1 -0
  23. netbox_dns/forms/zone.py +78 -15
  24. netbox_dns/forms/zone_template.py +9 -0
  25. netbox_dns/graphql/enums.py +41 -0
  26. netbox_dns/graphql/filter_lookups.py +13 -0
  27. netbox_dns/graphql/filters/__init__.py +12 -0
  28. netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
  29. netbox_dns/graphql/filters/dnssec_policy.py +123 -0
  30. netbox_dns/graphql/filters/nameserver.py +32 -0
  31. netbox_dns/graphql/filters/record.py +89 -0
  32. netbox_dns/graphql/filters/record_template.py +55 -0
  33. netbox_dns/graphql/filters/registrar.py +30 -0
  34. netbox_dns/graphql/filters/registration_contact.py +27 -0
  35. netbox_dns/graphql/filters/view.py +28 -0
  36. netbox_dns/graphql/filters/zone.py +146 -0
  37. netbox_dns/graphql/filters/zone_template.py +97 -0
  38. netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
  39. netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
  40. netbox_dns/migrations/0018_zone_domain_status_zone_expiration_date.py +23 -0
  41. netbox_dns/models/dnssec_key_template.py +0 -5
  42. netbox_dns/models/dnssec_policy.py +5 -8
  43. netbox_dns/models/nameserver.py +0 -5
  44. netbox_dns/models/record.py +4 -6
  45. netbox_dns/models/record_template.py +0 -5
  46. netbox_dns/models/registrar.py +0 -5
  47. netbox_dns/models/registration_contact.py +0 -5
  48. netbox_dns/models/view.py +0 -5
  49. netbox_dns/models/zone.py +44 -7
  50. netbox_dns/models/zone_template.py +1 -6
  51. netbox_dns/tables/zone.py +6 -1
  52. netbox_dns/template_content.py +2 -1
  53. netbox_dns/templates/netbox_dns/zone/registration.html +19 -0
  54. netbox_dns/urls.py +7 -0
  55. netbox_dns/utilities/conversions.py +13 -0
  56. netbox_dns/validators/dns_value.py +3 -0
  57. netbox_dns/validators/dnssec.py +10 -8
  58. netbox_dns/views/dnssec_key_template.py +0 -9
  59. netbox_dns/views/dnssec_policy.py +3 -10
  60. netbox_dns/views/nameserver.py +0 -9
  61. netbox_dns/views/record.py +0 -9
  62. netbox_dns/views/record_template.py +0 -3
  63. netbox_dns/views/registrar.py +0 -3
  64. netbox_dns/views/registration_contact.py +0 -3
  65. netbox_dns/views/view.py +0 -9
  66. netbox_dns/views/zone.py +11 -11
  67. netbox_dns/views/zone_template.py +0 -4
  68. {netbox_plugin_dns-1.2.7b2.dist-info → netbox_plugin_dns-1.3b1.dist-info}/METADATA +5 -3
  69. {netbox_plugin_dns-1.2.7b2.dist-info → netbox_plugin_dns-1.3b1.dist-info}/RECORD +72 -58
  70. {netbox_plugin_dns-1.2.7b2.dist-info → netbox_plugin_dns-1.3b1.dist-info}/WHEEL +1 -1
  71. netbox_dns/graphql/filters.py +0 -88
  72. {netbox_plugin_dns-1.2.7b2.dist-info → netbox_plugin_dns-1.3b1.dist-info/licenses}/LICENSE +0 -0
  73. {netbox_plugin_dns-1.2.7b2.dist-info → netbox_plugin_dns-1.3b1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,63 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry.scalars import ID
6
+ from strawberry_django import FilterLookup
7
+
8
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
9
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
10
+
11
+ if TYPE_CHECKING:
12
+ from netbox.graphql.filter_lookups import IntegerLookup
13
+ from .enums import (
14
+ NetBoxDNSDNSSECKeyTemplateTypeEnum,
15
+ NetBoxDNSDNSSECKeyTemplateAlgorithmEnum,
16
+ NetBoxDNSDNSSECKeyTemplateKeySizeEnum,
17
+ )
18
+ from .dnssec_policy import NetBoxDNSDNSSECPolicyFilter
19
+
20
+ from netbox_dns.models import DNSSECKeyTemplate
21
+
22
+
23
+ __all__ = ("NetBoxDNSDNSSECKeyTemplateFilter",)
24
+
25
+
26
+ @strawberry_django.filter(DNSSECKeyTemplate, lookups=True)
27
+ class NetBoxDNSDNSSECKeyTemplateFilter(
28
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
29
+ ):
30
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
31
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
32
+ type: (
33
+ Annotated[
34
+ "NetBoxDNSDNSSECKeyTemplateTypeEnum",
35
+ strawberry.lazy("netbox_dns.graphql.enums"),
36
+ ]
37
+ | None
38
+ ) = strawberry_django.filter_field()
39
+ algorithm: (
40
+ Annotated[
41
+ "NetBoxDNSDNSSECKeyTemplateAlgorithmEnum",
42
+ strawberry.lazy("netbox_dns.graphql.enums"),
43
+ ]
44
+ | None
45
+ ) = strawberry_django.filter_field()
46
+ lifetime: (
47
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
48
+ | None
49
+ ) = strawberry_django.filter_field()
50
+ key_size: (
51
+ Annotated[
52
+ "NetBoxDNSDNSSECKeyTemplateKeySizeEnum",
53
+ strawberry.lazy("netbox_dns.graphql.enums"),
54
+ ]
55
+ | None
56
+ ) = strawberry_django.filter_field()
57
+ policy: (
58
+ Annotated[
59
+ "NetBoxDNSDNSSECPolicyFilter", strawberry.lazy("netbox_dns.graphql.filters")
60
+ ]
61
+ | None
62
+ ) = strawberry_django.filter_field()
63
+ policy_id: ID | None = strawberry_django.filter_field()
@@ -0,0 +1,123 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry_django import FilterLookup
6
+
7
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
8
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
9
+
10
+ if TYPE_CHECKING:
11
+ from netbox.graphql.filter_lookups import IntegerLookup
12
+ from .enums import NetBoxDNSDNSSECPolicyStatusEnum
13
+ from .dnssec_key_template import NetBoxDNSDNSSECKeyTemplateFilter
14
+ from .zone import NetBoxDNSZoneFilter
15
+ from .zone_template import NetBoxDNSZoneTemplateFilter
16
+
17
+ from netbox_dns.models import DNSSECPolicy
18
+ from netbox_dns.graphql.filter_lookups import PolicyDigestArrayLookup
19
+
20
+
21
+ __all__ = ("NetBoxDNSDNSSECPolicyFilter", "PolicyDigestArrayLookup")
22
+
23
+
24
+ @strawberry_django.filter(DNSSECPolicy, lookups=True)
25
+ class NetBoxDNSDNSSECPolicyFilter(
26
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
27
+ ):
28
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
29
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
30
+ status: (
31
+ Annotated[
32
+ "NetBoxDNSDNSSECPolicyStatusEnum",
33
+ strawberry.lazy("netbox_dns.graphql.enums"),
34
+ ]
35
+ | None
36
+ ) = strawberry_django.filter_field()
37
+ key_templates: (
38
+ Annotated[
39
+ "NetBoxDNSDNSSECKeyTemplateFilter",
40
+ strawberry.lazy("netbox_dns.graphql.filters"),
41
+ ]
42
+ | None
43
+ ) = strawberry_django.filter_field()
44
+ zones: (
45
+ Annotated[
46
+ "NetBoxDNSZoneFilter",
47
+ strawberry.lazy("netbox_dns.graphql.filters"),
48
+ ]
49
+ | None
50
+ ) = strawberry_django.filter_field()
51
+ zone_templates: (
52
+ Annotated[
53
+ "NetBoxDNSZoneTemplateFilter",
54
+ strawberry.lazy("netbox_dns.graphql.filters"),
55
+ ]
56
+ | None
57
+ ) = strawberry_django.filter_field()
58
+ dnskey_ttl: (
59
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
60
+ | None
61
+ ) = strawberry_django.filter_field()
62
+ purge_keys: (
63
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
64
+ | None
65
+ ) = strawberry_django.filter_field()
66
+ publish_safety: (
67
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
68
+ | None
69
+ ) = strawberry_django.filter_field()
70
+ retire_safety: (
71
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
72
+ | None
73
+ ) = strawberry_django.filter_field()
74
+ signatures_jitter: (
75
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
76
+ | None
77
+ ) = strawberry_django.filter_field()
78
+ signatures_refresh: (
79
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
80
+ | None
81
+ ) = strawberry_django.filter_field()
82
+ signatures_validity: (
83
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
84
+ | None
85
+ ) = strawberry_django.filter_field()
86
+ signatures_validity_dnskey: (
87
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
88
+ | None
89
+ ) = strawberry_django.filter_field()
90
+ max_zone_ttl: (
91
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
92
+ | None
93
+ ) = strawberry_django.filter_field()
94
+ zone_propagation_delay: (
95
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
96
+ | None
97
+ ) = strawberry_django.filter_field()
98
+ cds_digest_types: (
99
+ Annotated[
100
+ "PolicyDigestArrayLookup",
101
+ strawberry.lazy("netbox_dns.graphql.filters"),
102
+ ]
103
+ | None
104
+ ) = strawberry_django.filter_field()
105
+ create_cdnskey: FilterLookup[bool] | None = strawberry_django.filter_field()
106
+ parent_ds_ttl: (
107
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
108
+ | None
109
+ ) = strawberry_django.filter_field()
110
+ parent_propagation_delay: (
111
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
112
+ | None
113
+ ) = strawberry_django.filter_field()
114
+ use_nsec3: FilterLookup[bool] | None = strawberry_django.filter_field()
115
+ nsec3_iterations: (
116
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
117
+ | None
118
+ ) = strawberry_django.filter_field()
119
+ nsec3_opt_out: FilterLookup[bool] | None = strawberry_django.filter_field()
120
+ nsec3_salt_size: (
121
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
122
+ | None
123
+ ) = strawberry_django.filter_field()
@@ -0,0 +1,32 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry_django import FilterLookup
6
+
7
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
8
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
9
+
10
+ if TYPE_CHECKING:
11
+ from .zone import NetBoxDNSZoneFilter
12
+
13
+ from netbox_dns.models import NameServer
14
+
15
+
16
+ __all__ = ("NetBoxDNSNameServerFilter",)
17
+
18
+
19
+ @strawberry_django.filter(NameServer, lookups=True)
20
+ class NetBoxDNSNameServerFilter(
21
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
22
+ ):
23
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
24
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
25
+ zones: (
26
+ Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
27
+ | None
28
+ ) = strawberry_django.filter_field()
29
+ soa_zones: (
30
+ Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
31
+ | None
32
+ ) = strawberry_django.filter_field()
@@ -0,0 +1,89 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry.scalars import ID
6
+ from strawberry_django import FilterLookup
7
+
8
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
9
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
10
+
11
+ if TYPE_CHECKING:
12
+ from ipam.graphql.filters import IPAddressFilter
13
+ from netbox.graphql.filter_lookups import IntegerLookup
14
+ from .enums import (
15
+ NetBoxDNSRecordStatusEnum,
16
+ NetBoxDNSRecordTypeEnum,
17
+ )
18
+ from .view import NetBoxDNSViewFilter
19
+ from .zone import NetBoxDNSZoneFilter
20
+
21
+ from netbox_dns.models import Record
22
+
23
+
24
+ __all__ = ("NetBoxDNSRecordFilter",)
25
+
26
+
27
+ @strawberry_django.filter(Record, lookups=True)
28
+ class NetBoxDNSRecordFilter(
29
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
30
+ ):
31
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
32
+ fqdn: FilterLookup[str] | None = strawberry_django.filter_field()
33
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
34
+ view: (
35
+ Annotated["NetBoxDNSViewFilter", strawberry.lazy("netbox_dns.graphql.filters")]
36
+ | None
37
+ ) = strawberry_django.filter_field()
38
+ view_id: ID | None = strawberry_django.filter_field()
39
+ zone: (
40
+ Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
41
+ | None
42
+ ) = strawberry_django.filter_field()
43
+ zone_id: ID | None = strawberry_django.filter_field()
44
+ type: (
45
+ Annotated[
46
+ "NetBoxDNSRecordTypeEnum", strawberry.lazy("netbox_dns.graphql.enums")
47
+ ]
48
+ | None
49
+ ) = strawberry_django.filter_field()
50
+ ttl: (
51
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
52
+ | None
53
+ ) = strawberry_django.filter_field()
54
+ value: FilterLookup[str] | None = strawberry_django.filter_field()
55
+ disable_ptr: FilterLookup[bool] | None = strawberry_django.filter_field()
56
+ status: (
57
+ Annotated[
58
+ "NetBoxDNSRecordStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
59
+ ]
60
+ | None
61
+ ) = strawberry_django.filter_field()
62
+ managed: FilterLookup[bool] | None = strawberry_django.filter_field()
63
+ address_record: (
64
+ Annotated[
65
+ "NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
66
+ ]
67
+ | None
68
+ ) = strawberry_django.filter_field()
69
+ address_record_id: ID | None = strawberry_django.filter_field()
70
+ ptr_record: (
71
+ Annotated[
72
+ "NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
73
+ ]
74
+ | None
75
+ ) = strawberry_django.filter_field()
76
+ ptr_record_id: ID | None = strawberry_django.filter_field()
77
+ rfc2317_cname_record: (
78
+ Annotated[
79
+ "NetBoxDNSRecordFilter", strawberry.lazy("netbox_dns.graphql.filters")
80
+ ]
81
+ | None
82
+ ) = strawberry_django.filter_field()
83
+ ipam_ip_address: (
84
+ Annotated["IPAddressFilter", strawberry.lazy("ipam.graphql.filters")] | None
85
+ ) = strawberry_django.filter_field()
86
+ ipam_ip_address_id: ID | None = strawberry_django.filter_field()
87
+
88
+ ip_address: FilterLookup[str] | None = strawberry_django.filter_field()
89
+ active: FilterLookup[bool] | None = strawberry_django.filter_field()
@@ -0,0 +1,55 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry_django import FilterLookup
6
+
7
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
8
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
9
+
10
+ if TYPE_CHECKING:
11
+ from netbox.graphql.filter_lookups import IntegerLookup
12
+ from .enums import (
13
+ NetBoxDNSRecordStatusEnum,
14
+ NetBoxDNSRecordTypeEnum,
15
+ )
16
+
17
+ from netbox_dns.models import RecordTemplate
18
+
19
+
20
+ __all__ = ("NetBoxDNSRecordTemplateFilter",)
21
+
22
+
23
+ @strawberry_django.filter(RecordTemplate, lookups=True)
24
+ class NetBoxDNSRecordTemplateFilter(
25
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
26
+ ):
27
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
28
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
29
+ record_name: FilterLookup[str] | None = strawberry_django.filter_field()
30
+ type: (
31
+ Annotated[
32
+ "NetBoxDNSRecordTypeEnum", strawberry.lazy("netbox_dns.graphql.enums")
33
+ ]
34
+ | None
35
+ ) = strawberry_django.filter_field()
36
+ status: (
37
+ Annotated[
38
+ "NetBoxDNSRecordStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
39
+ ]
40
+ | None
41
+ ) = strawberry_django.filter_field()
42
+ ttl: (
43
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
44
+ | None
45
+ ) = strawberry_django.filter_field()
46
+ value: FilterLookup[str] | None = strawberry_django.filter_field()
47
+ disable_ptr: FilterLookup[bool] | None = strawberry_django.filter_field()
48
+
49
+ zone_templates: (
50
+ Annotated[
51
+ "NetBoxDNSRecordTemplateFilter",
52
+ strawberry.lazy("netbox_dns.graphql.filters"),
53
+ ]
54
+ | None
55
+ ) = strawberry_django.filter_field()
@@ -0,0 +1,30 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry_django import FilterLookup
6
+
7
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
8
+
9
+ if TYPE_CHECKING:
10
+ from netbox.graphql.filter_lookups import IntegerLookup
11
+
12
+ from netbox_dns.models import Registrar
13
+
14
+
15
+ __all__ = ("NetBoxDNSRegistrarFilter",)
16
+
17
+
18
+ @strawberry_django.filter(Registrar, lookups=True)
19
+ class NetBoxDNSRegistrarFilter(NetBoxModelFilterMixin):
20
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
21
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
22
+ iana_id: (
23
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
24
+ | None
25
+ ) = strawberry_django.filter_field()
26
+ address: FilterLookup[str] | None = strawberry_django.filter_field()
27
+ referral_url: FilterLookup[str] | None = strawberry_django.filter_field()
28
+ whois_server: FilterLookup[str] | None = strawberry_django.filter_field()
29
+ abuse_email: FilterLookup[str] | None = strawberry_django.filter_field()
30
+ abuse_phone: FilterLookup[str] | None = strawberry_django.filter_field()
@@ -0,0 +1,27 @@
1
+ import strawberry_django
2
+ from strawberry_django import FilterLookup
3
+
4
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
5
+
6
+ from netbox_dns.models import RegistrationContact
7
+
8
+
9
+ __all__ = ("NetBoxDNSRegistrationContactFilter",)
10
+
11
+
12
+ @strawberry_django.filter(RegistrationContact, lookups=True)
13
+ class NetBoxDNSRegistrationContactFilter(NetBoxModelFilterMixin):
14
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
15
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
16
+ contact_id: FilterLookup[str] | None = strawberry_django.filter_field()
17
+ organization: FilterLookup[str] | None = strawberry_django.filter_field()
18
+ street: FilterLookup[str] | None = strawberry_django.filter_field()
19
+ city: FilterLookup[str] | None = strawberry_django.filter_field()
20
+ state_province: FilterLookup[str] | None = strawberry_django.filter_field()
21
+ postal_code: FilterLookup[str] | None = strawberry_django.filter_field()
22
+ country: FilterLookup[str] | None = strawberry_django.filter_field()
23
+ phone: FilterLookup[str] | None = strawberry_django.filter_field()
24
+ phone_ext: FilterLookup[str] | None = strawberry_django.filter_field()
25
+ fax: FilterLookup[str] | None = strawberry_django.filter_field()
26
+ fax_ext: FilterLookup[str] | None = strawberry_django.filter_field()
27
+ email: FilterLookup[str] | None = strawberry_django.filter_field()
@@ -0,0 +1,28 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry_django import FilterLookup
6
+
7
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
8
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
9
+
10
+ if TYPE_CHECKING:
11
+ from ipam.graphql.filters import PrefixFilter
12
+
13
+ from netbox_dns.models import View
14
+
15
+
16
+ __all__ = ("NetBoxDNSViewFilter",)
17
+
18
+
19
+ @strawberry_django.filter(View, lookups=True)
20
+ class NetBoxDNSViewFilter(
21
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
22
+ ):
23
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
24
+ default_view: FilterLookup[bool] | None = strawberry_django.filter_field()
25
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
26
+ prefixes: (
27
+ Annotated["PrefixFilter", strawberry.lazy("ipam.graphql.filters")] | None
28
+ ) = strawberry_django.filter_field()
@@ -0,0 +1,146 @@
1
+ from typing import Annotated, TYPE_CHECKING
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+ from strawberry.scalars import ID
6
+ from strawberry_django import FilterLookup
7
+
8
+ from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
9
+ from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
10
+
11
+ if TYPE_CHECKING:
12
+ from netbox.graphql.filter_lookups import IntegerLookup
13
+ from .enums import NetBoxDNSZoneStatusEnum
14
+ from .view import NetBoxDNSViewFilter
15
+ from .nameserver import NetBoxDNSNameServerFilter
16
+ from .registrar import NetBoxDNSRegistrarFilter
17
+ from .registration_contact import NetBoxDNSRegistrationContactFilter
18
+ from .dnssec_policy import NetBoxDNSDNSSECPolicyFilter
19
+
20
+ from netbox_dns.models import Zone
21
+
22
+
23
+ __all__ = ("NetBoxDNSZoneFilter",)
24
+
25
+
26
+ @strawberry_django.filter(Zone, lookups=True)
27
+ class NetBoxDNSZoneFilter(
28
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
29
+ ):
30
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
31
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
32
+ view: (
33
+ Annotated["NetBoxDNSViewFilter", strawberry.lazy("netbox_dns.graphql.filters")]
34
+ | None
35
+ ) = strawberry_django.filter_field()
36
+ view_id: ID | None = strawberry_django.filter_field()
37
+ nameservers: (
38
+ Annotated[
39
+ "NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
40
+ ]
41
+ | None
42
+ ) = strawberry_django.filter_field()
43
+ status: (
44
+ Annotated[
45
+ "NetBoxDNSZoneStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
46
+ ]
47
+ | None
48
+ ) = strawberry_django.filter_field()
49
+ default_ttl: (
50
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
51
+ | None
52
+ ) = strawberry_django.filter_field()
53
+
54
+ soa_ttl: (
55
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
56
+ | None
57
+ ) = strawberry_django.filter_field()
58
+ soa_mname: (
59
+ Annotated[
60
+ "NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
61
+ ]
62
+ | None
63
+ ) = strawberry_django.filter_field()
64
+ soa_mname_id: ID | None = strawberry_django.filter_field()
65
+ soa_rname: FilterLookup[str] | None = strawberry_django.filter_field()
66
+ soa_serial: (
67
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
68
+ | None
69
+ ) = strawberry_django.filter_field()
70
+ soa_refresh: (
71
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
72
+ | None
73
+ ) = strawberry_django.filter_field()
74
+ soa_retry: (
75
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
76
+ | None
77
+ ) = strawberry_django.filter_field()
78
+ soa_expire: (
79
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
80
+ | None
81
+ ) = strawberry_django.filter_field()
82
+ soa_minimum: (
83
+ Annotated["IntegerLookup", strawberry.lazy("netbox.graphql.filter_lookups")]
84
+ | None
85
+ ) = strawberry_django.filter_field()
86
+ soa_serial_auto: FilterLookup[bool] | None = strawberry_django.filter_field()
87
+
88
+ dnssec_policy: (
89
+ Annotated[
90
+ "NetBoxDNSDNSSECPolicyFilter", strawberry.lazy("netbox_dns.graphql.filters")
91
+ ]
92
+ | None
93
+ )
94
+ inline_signing: FilterLookup[bool] | None = strawberry_django.filter_field()
95
+
96
+ registrar: (
97
+ Annotated[
98
+ "NetBoxDNSRegistrarFilter", strawberry.lazy("netbox_dns.graphql.filters")
99
+ ]
100
+ | None
101
+ )
102
+ registrar_id: ID | None = strawberry_django.filter_field()
103
+ registry_domain_id: FilterLookup[str] | None = strawberry_django.filter_field()
104
+ registrant: (
105
+ Annotated[
106
+ "NetBoxDNSRegistrationContactFilter",
107
+ strawberry.lazy("netbox_dns.graphql.filters"),
108
+ ]
109
+ | None
110
+ )
111
+ registrant_id: ID | None = strawberry_django.filter_field()
112
+ admin_c: (
113
+ Annotated[
114
+ "NetBoxDNSRegistrationContactFilter",
115
+ strawberry.lazy("netbox_dns.graphql.filters"),
116
+ ]
117
+ | None
118
+ )
119
+ admin_c_id: ID | None = strawberry_django.filter_field()
120
+ tech_c: (
121
+ Annotated[
122
+ "NetBoxDNSRegistrationContactFilter",
123
+ strawberry.lazy("netbox_dns.graphql.filters"),
124
+ ]
125
+ | None
126
+ )
127
+ tech_c_id: ID | None = strawberry_django.filter_field()
128
+ billing_c: (
129
+ Annotated[
130
+ "NetBoxDNSRegistrationContactFilter",
131
+ strawberry.lazy("netbox_dns.graphql.filters"),
132
+ ]
133
+ | None
134
+ )
135
+ billing_c_id: ID | None = strawberry_django.filter_field()
136
+
137
+ rfc2317_prefix: FilterLookup[str] | None = strawberry_django.filter_field()
138
+ rfc2317_parent_zone: (
139
+ Annotated["NetBoxDNSZoneFilter", strawberry.lazy("netbox_dns.graphql.filters")]
140
+ | None
141
+ ) = strawberry_django.filter_field()
142
+ rfc2317_parent_zone_id: ID | None = strawberry_django.filter_field()
143
+ rfc2317_parent_managed: FilterLookup[bool] | None = strawberry_django.filter_field()
144
+
145
+ arpa_network: FilterLookup[str] | None = strawberry_django.filter_field()
146
+ active: FilterLookup[bool] | None = strawberry_django.filter_field()