netbox-plugin-dns 1.2.9__py3-none-any.whl → 1.3b2__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 (82) hide show
  1. netbox_dns/__init__.py +1 -1
  2. netbox_dns/api/nested_serializers.py +54 -49
  3. netbox_dns/api/serializers_/dnssec_key_template.py +21 -13
  4. netbox_dns/api/serializers_/dnssec_policy.py +88 -40
  5. netbox_dns/api/serializers_/nameserver.py +21 -13
  6. netbox_dns/api/serializers_/record.py +45 -37
  7. netbox_dns/api/serializers_/record_template.py +21 -12
  8. netbox_dns/api/serializers_/registrar.py +14 -5
  9. netbox_dns/api/serializers_/registration_contact.py +13 -5
  10. netbox_dns/api/serializers_/view.py +28 -19
  11. netbox_dns/api/serializers_/zone.py +87 -63
  12. netbox_dns/api/serializers_/zone_template.py +40 -34
  13. netbox_dns/choices/dnssec_key_template.py +4 -0
  14. netbox_dns/filtersets/dnssec_key_template.py +10 -4
  15. netbox_dns/filtersets/dnssec_policy.py +1 -0
  16. netbox_dns/filtersets/nameserver.py +9 -4
  17. netbox_dns/filtersets/record.py +14 -13
  18. netbox_dns/filtersets/record_template.py +13 -12
  19. netbox_dns/filtersets/registrar.py +1 -0
  20. netbox_dns/filtersets/registration_contact.py +1 -0
  21. netbox_dns/filtersets/view.py +10 -4
  22. netbox_dns/filtersets/zone.py +22 -21
  23. netbox_dns/filtersets/zone_template.py +10 -9
  24. netbox_dns/forms/dnssec_key_template.py +97 -46
  25. netbox_dns/forms/dnssec_policy.py +130 -110
  26. netbox_dns/forms/nameserver.py +71 -36
  27. netbox_dns/forms/record.py +96 -78
  28. netbox_dns/forms/record_template.py +87 -59
  29. netbox_dns/forms/registrar.py +55 -39
  30. netbox_dns/forms/registration_contact.py +64 -41
  31. netbox_dns/forms/view.py +98 -51
  32. netbox_dns/forms/zone.py +259 -250
  33. netbox_dns/forms/zone_template.py +151 -101
  34. netbox_dns/graphql/enums.py +41 -0
  35. netbox_dns/graphql/filter_lookups.py +13 -0
  36. netbox_dns/graphql/filters/__init__.py +12 -0
  37. netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
  38. netbox_dns/graphql/filters/dnssec_policy.py +123 -0
  39. netbox_dns/graphql/filters/nameserver.py +32 -0
  40. netbox_dns/graphql/filters/record.py +89 -0
  41. netbox_dns/graphql/filters/record_template.py +55 -0
  42. netbox_dns/graphql/filters/registrar.py +30 -0
  43. netbox_dns/graphql/filters/registration_contact.py +27 -0
  44. netbox_dns/graphql/filters/view.py +28 -0
  45. netbox_dns/graphql/filters/zone.py +146 -0
  46. netbox_dns/graphql/filters/zone_template.py +97 -0
  47. netbox_dns/models/dnssec_key_template.py +24 -27
  48. netbox_dns/models/dnssec_policy.py +17 -21
  49. netbox_dns/models/nameserver.py +26 -30
  50. netbox_dns/models/record.py +42 -46
  51. netbox_dns/models/record_template.py +30 -34
  52. netbox_dns/models/registrar.py +13 -17
  53. netbox_dns/models/registration_contact.py +33 -37
  54. netbox_dns/models/view.py +16 -20
  55. netbox_dns/models/zone.py +75 -77
  56. netbox_dns/models/zone_template.py +35 -39
  57. netbox_dns/tables/dnssec_key_template.py +13 -12
  58. netbox_dns/tables/dnssec_policy.py +18 -15
  59. netbox_dns/tables/nameserver.py +10 -8
  60. netbox_dns/tables/record.py +29 -21
  61. netbox_dns/tables/record_template.py +21 -17
  62. netbox_dns/tables/registrar.py +15 -9
  63. netbox_dns/tables/registration_contact.py +15 -9
  64. netbox_dns/tables/view.py +24 -12
  65. netbox_dns/tables/zone.py +23 -21
  66. netbox_dns/tables/zone_template.py +17 -13
  67. netbox_dns/views/dnssec_key_template.py +0 -9
  68. netbox_dns/views/dnssec_policy.py +0 -9
  69. netbox_dns/views/nameserver.py +0 -9
  70. netbox_dns/views/record.py +0 -9
  71. netbox_dns/views/record_template.py +0 -3
  72. netbox_dns/views/registrar.py +0 -3
  73. netbox_dns/views/registration_contact.py +0 -3
  74. netbox_dns/views/view.py +0 -9
  75. netbox_dns/views/zone.py +0 -10
  76. netbox_dns/views/zone_template.py +0 -4
  77. {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/METADATA +4 -3
  78. {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/RECORD +81 -69
  79. netbox_dns/graphql/filters.py +0 -88
  80. {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/WHEEL +0 -0
  81. {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/licenses/LICENSE +0 -0
  82. {netbox_plugin_dns-1.2.9.dist-info → netbox_plugin_dns-1.3b2.dist-info}/top_level.txt +0 -0
@@ -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()
@@ -0,0 +1,97 @@
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 .enums import NetBoxDNSZoneStatusEnum
13
+ from .nameserver import NetBoxDNSNameServerFilter
14
+ from .record_template import NetBoxDNSRecordTemplateFilter
15
+ from .registrar import NetBoxDNSRegistrarFilter
16
+ from .registration_contact import NetBoxDNSRegistrationContactFilter
17
+
18
+ from netbox_dns.models import ZoneTemplate
19
+
20
+
21
+ __all__ = ("NetBoxDNSZoneTemplateFilter",)
22
+
23
+
24
+ @strawberry_django.filter(ZoneTemplate, lookups=True)
25
+ class NetBoxDNSZoneTemplateFilter(
26
+ ContactFilterMixin, TenancyFilterMixin, NetBoxModelFilterMixin
27
+ ):
28
+ name: FilterLookup[str] | None = strawberry_django.filter_field()
29
+ description: FilterLookup[str] | None = strawberry_django.filter_field()
30
+ nameservers: (
31
+ Annotated[
32
+ "NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
33
+ ]
34
+ | None
35
+ ) = strawberry_django.filter_field()
36
+ status: (
37
+ Annotated[
38
+ "NetBoxDNSZoneStatusEnum", strawberry.lazy("netbox_dns.graphql.enums")
39
+ ]
40
+ | None
41
+ ) = strawberry_django.filter_field()
42
+
43
+ soa_mname: (
44
+ Annotated[
45
+ "NetBoxDNSNameServerFilter", strawberry.lazy("netbox_dns.graphql.filters")
46
+ ]
47
+ | None
48
+ ) = strawberry_django.filter_field()
49
+ soa_mname_id: ID | None = strawberry_django.filter_field()
50
+ soa_rname: FilterLookup[str] | None = strawberry_django.filter_field()
51
+
52
+ registrar: (
53
+ Annotated[
54
+ "NetBoxDNSRegistrarFilter", strawberry.lazy("netbox_dns.graphql.filters")
55
+ ]
56
+ | None
57
+ )
58
+ registrar_id: ID | None = strawberry_django.filter_field()
59
+ registrant: (
60
+ Annotated[
61
+ "NetBoxDNSRegistrationContactFilter",
62
+ strawberry.lazy("netbox_dns.graphql.filters"),
63
+ ]
64
+ | None
65
+ )
66
+ registrant_id: ID | None = strawberry_django.filter_field()
67
+ admin_c: (
68
+ Annotated[
69
+ "NetBoxDNSRegistrationContactFilter",
70
+ strawberry.lazy("netbox_dns.graphql.filters"),
71
+ ]
72
+ | None
73
+ )
74
+ admin_c_id: ID | None = strawberry_django.filter_field()
75
+ tech_c: (
76
+ Annotated[
77
+ "NetBoxDNSRegistrationContactFilter",
78
+ strawberry.lazy("netbox_dns.graphql.filters"),
79
+ ]
80
+ | None
81
+ )
82
+ tech_c_id: ID | None = strawberry_django.filter_field()
83
+ billing_c: (
84
+ Annotated[
85
+ "NetBoxDNSRegistrationContactFilter",
86
+ strawberry.lazy("netbox_dns.graphql.filters"),
87
+ ]
88
+ | None
89
+ )
90
+ billing_c_id: ID | None = strawberry_django.filter_field()
91
+ record_templates: (
92
+ Annotated[
93
+ "NetBoxDNSRecordTemplateFilter",
94
+ strawberry.lazy("netbox_dns.graphql.filters"),
95
+ ]
96
+ | None
97
+ ) = strawberry_django.filter_field()
@@ -1,5 +1,4 @@
1
1
  from django.db import models
2
- from django.urls import reverse
3
2
  from django.utils.translation import gettext_lazy as _
4
3
 
5
4
  from netbox.models import NetBoxModel
@@ -21,6 +20,29 @@ __all__ = (
21
20
 
22
21
 
23
22
  class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
23
+ class Meta:
24
+ verbose_name = _("DNSSEC Key Template")
25
+ verbose_name_plural = _("DNSSEC Key Templates")
26
+
27
+ unique_together = (
28
+ "name",
29
+ "type",
30
+ )
31
+
32
+ ordering = ("name",)
33
+
34
+ clone_fields = (
35
+ "description",
36
+ "type",
37
+ "lifetime",
38
+ "algorithm",
39
+ "key_size",
40
+ "tenant",
41
+ )
42
+
43
+ def __str__(self):
44
+ return f"{str(self.name)} [{self.type}]"
45
+
24
46
  name = models.CharField(
25
47
  verbose_name=_("Name"),
26
48
  max_length=255,
@@ -65,32 +87,6 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
65
87
  null=True,
66
88
  )
67
89
 
68
- clone_fields = (
69
- "description",
70
- "type",
71
- "lifetime",
72
- "algorithm",
73
- "key_size",
74
- "tenant",
75
- )
76
-
77
- class Meta:
78
- verbose_name = _("DNSSEC Key Template")
79
- verbose_name_plural = _("DNSSEC Key Templates")
80
- unique_together = (
81
- "name",
82
- "type",
83
- )
84
-
85
- ordering = ("name",)
86
-
87
- def __str__(self):
88
- return f"{str(self.name)} [{self.type}]"
89
-
90
- # TODO: Remove in version 1.3.0 (NetBox #18555)
91
- def get_absolute_url(self):
92
- return reverse("plugins:netbox_dns:dnsseckeytemplate", kwargs={"pk": self.pk})
93
-
94
90
  def get_type_color(self):
95
91
  return DNSSECKeyTemplateTypeChoices.colors.get(self.type)
96
92
 
@@ -108,6 +104,7 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
108
104
  @register_search
109
105
  class DNSSECKeyTemplateIndex(SearchIndex):
110
106
  model = DNSSECKeyTemplate
107
+
111
108
  fields = (
112
109
  ("name", 100),
113
110
  ("description", 500),
@@ -1,5 +1,4 @@
1
1
  from django.db import models
2
- from django.urls import reverse
3
2
  from django.utils.translation import gettext_lazy as _
4
3
 
5
4
  from netbox.models import NetBoxModel
@@ -18,6 +17,22 @@ __all__ = (
18
17
 
19
18
 
20
19
  class DNSSECPolicy(ContactsMixin, NetBoxModel):
20
+ class Meta:
21
+ verbose_name = _("DNSSEC Policy")
22
+ verbose_name_plural = _("DNSSEC Policies")
23
+
24
+ ordering = ("name",)
25
+
26
+ clone_fields = (
27
+ "name",
28
+ "key_templates",
29
+ "description",
30
+ "tenant",
31
+ )
32
+
33
+ def __str__(self):
34
+ return str(self.name)
35
+
21
36
  name = models.CharField(
22
37
  verbose_name=_("Name"),
23
38
  max_length=255,
@@ -149,29 +164,9 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
149
164
  null=True,
150
165
  )
151
166
 
152
- clone_fields = (
153
- "name",
154
- "key_templates",
155
- "description",
156
- "tenant",
157
- )
158
-
159
- class Meta:
160
- verbose_name = _("DNSSEC Policy")
161
- verbose_name_plural = _("DNSSEC Policies")
162
-
163
- ordering = ("name",)
164
-
165
- def __str__(self):
166
- return str(self.name)
167
-
168
167
  def get_status_color(self):
169
168
  return DNSSECPolicyStatusChoices.colors.get(self.status)
170
169
 
171
- # TODO: Remove in version 1.3.0 (NetBox #18555)
172
- def get_absolute_url(self):
173
- return reverse("plugins:netbox_dns:dnssecpolicy", kwargs={"pk": self.pk})
174
-
175
170
  @property
176
171
  def purge_keys_value(self):
177
172
  return self.purge_keys if self.purge_keys is not None else 776000
@@ -197,6 +192,7 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
197
192
  @register_search
198
193
  class DNSSECPolicyIndex(SearchIndex):
199
194
  model = DNSSECPolicy
195
+
200
196
  fields = (
201
197
  ("name", 100),
202
198
  ("description", 500),