netbox-plugin-dns 0.21.4__py3-none-any.whl → 1.4.7__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.
Files changed (232) hide show
  1. netbox_dns/__init__.py +106 -41
  2. netbox_dns/api/field_serializers.py +25 -0
  3. netbox_dns/api/nested_serializers.py +95 -52
  4. netbox_dns/api/serializers.py +14 -296
  5. netbox_dns/api/serializers_/__init__.py +0 -0
  6. netbox_dns/api/serializers_/dnssec_key_template.py +69 -0
  7. netbox_dns/api/serializers_/dnssec_policy.py +165 -0
  8. netbox_dns/api/serializers_/nameserver.py +56 -0
  9. netbox_dns/api/serializers_/prefix.py +18 -0
  10. netbox_dns/api/serializers_/record.py +105 -0
  11. netbox_dns/api/serializers_/record_template.py +71 -0
  12. netbox_dns/api/serializers_/registrar.py +45 -0
  13. netbox_dns/api/serializers_/registration_contact.py +50 -0
  14. netbox_dns/api/serializers_/view.py +81 -0
  15. netbox_dns/api/serializers_/zone.py +247 -0
  16. netbox_dns/api/serializers_/zone_template.py +157 -0
  17. netbox_dns/api/urls.py +13 -2
  18. netbox_dns/api/views.py +96 -58
  19. netbox_dns/choices/__init__.py +4 -0
  20. netbox_dns/choices/dnssec_key_template.py +67 -0
  21. netbox_dns/choices/dnssec_policy.py +40 -0
  22. netbox_dns/choices/record.py +104 -0
  23. netbox_dns/choices/utilities.py +4 -0
  24. netbox_dns/choices/zone.py +119 -0
  25. netbox_dns/fields/__init__.py +4 -0
  26. netbox_dns/fields/address.py +22 -16
  27. netbox_dns/fields/choice_array.py +33 -0
  28. netbox_dns/fields/ipam.py +15 -0
  29. netbox_dns/fields/network.py +42 -18
  30. netbox_dns/fields/rfc2317.py +97 -0
  31. netbox_dns/fields/timeperiod.py +33 -0
  32. netbox_dns/filters.py +7 -0
  33. netbox_dns/filtersets/__init__.py +12 -0
  34. netbox_dns/filtersets/dnssec_key_template.py +57 -0
  35. netbox_dns/filtersets/dnssec_policy.py +101 -0
  36. netbox_dns/filtersets/nameserver.py +46 -0
  37. netbox_dns/filtersets/record.py +135 -0
  38. netbox_dns/filtersets/record_template.py +59 -0
  39. netbox_dns/{filters → filtersets}/registrar.py +8 -1
  40. netbox_dns/{filters/contact.py → filtersets/registration_contact.py} +9 -3
  41. netbox_dns/filtersets/view.py +45 -0
  42. netbox_dns/filtersets/zone.py +254 -0
  43. netbox_dns/filtersets/zone_template.py +165 -0
  44. netbox_dns/forms/__init__.py +5 -1
  45. netbox_dns/forms/dnssec_key_template.py +250 -0
  46. netbox_dns/forms/dnssec_policy.py +654 -0
  47. netbox_dns/forms/nameserver.py +121 -27
  48. netbox_dns/forms/record.py +215 -104
  49. netbox_dns/forms/record_template.py +285 -0
  50. netbox_dns/forms/registrar.py +108 -31
  51. netbox_dns/forms/registration_contact.py +282 -0
  52. netbox_dns/forms/view.py +331 -20
  53. netbox_dns/forms/zone.py +769 -373
  54. netbox_dns/forms/zone_template.py +463 -0
  55. netbox_dns/graphql/__init__.py +25 -22
  56. netbox_dns/graphql/enums.py +41 -0
  57. netbox_dns/graphql/filter_lookups.py +13 -0
  58. netbox_dns/graphql/filters/__init__.py +12 -0
  59. netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
  60. netbox_dns/graphql/filters/dnssec_policy.py +124 -0
  61. netbox_dns/graphql/filters/nameserver.py +32 -0
  62. netbox_dns/graphql/filters/record.py +89 -0
  63. netbox_dns/graphql/filters/record_template.py +55 -0
  64. netbox_dns/graphql/filters/registrar.py +30 -0
  65. netbox_dns/graphql/filters/registration_contact.py +27 -0
  66. netbox_dns/graphql/filters/view.py +28 -0
  67. netbox_dns/graphql/filters/zone.py +147 -0
  68. netbox_dns/graphql/filters/zone_template.py +97 -0
  69. netbox_dns/graphql/schema.py +89 -7
  70. netbox_dns/graphql/types.py +355 -0
  71. netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
  72. netbox_dns/locale/en/LC_MESSAGES/django.mo +0 -0
  73. netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
  74. netbox_dns/management/commands/cleanup_database.py +175 -156
  75. netbox_dns/management/commands/cleanup_rrset_ttl.py +64 -0
  76. netbox_dns/management/commands/rebuild_dnssync.py +23 -0
  77. netbox_dns/management/commands/setup_dnssync.py +140 -0
  78. netbox_dns/migrations/0001_squashed_netbox_dns_0_15.py +0 -27
  79. netbox_dns/migrations/0001_squashed_netbox_dns_0_22.py +557 -0
  80. netbox_dns/migrations/{0013_add_nameserver_zone_record_description.py → 0002_contact_description_registrar_description.py} +4 -9
  81. netbox_dns/migrations/0003_default_view.py +15 -0
  82. netbox_dns/migrations/0004_create_and_assign_default_view.py +26 -0
  83. netbox_dns/migrations/0005_alter_zone_view_not_null.py +18 -0
  84. netbox_dns/migrations/0006_templating.py +172 -0
  85. netbox_dns/migrations/0007_alter_ordering_options.py +25 -0
  86. netbox_dns/migrations/0008_view_prefixes.py +18 -0
  87. netbox_dns/migrations/0009_rename_contact_registrationcontact.py +36 -0
  88. netbox_dns/migrations/0010_view_ip_address_filter.py +18 -0
  89. netbox_dns/migrations/0011_rename_related_fields.py +63 -0
  90. netbox_dns/migrations/0012_natural_ordering.py +88 -0
  91. netbox_dns/migrations/0013_zonetemplate_soa_mname_zonetemplate_soa_rname.py +30 -0
  92. netbox_dns/migrations/0014_alter_unique_constraints_lowercase.py +42 -0
  93. netbox_dns/migrations/0015_dnssec.py +168 -0
  94. netbox_dns/migrations/{0015_add_record_status.py → 0016_dnssec_policy_status.py} +5 -4
  95. netbox_dns/migrations/0017_dnssec_policy_zone_zone_template.py +41 -0
  96. netbox_dns/migrations/0018_zone_domain_status_zone_expiration_date.py +23 -0
  97. netbox_dns/migrations/0019_dnssecpolicy_parental_agents.py +25 -0
  98. netbox_dns/migrations/0020_netbox_3_4.py +1 -1
  99. netbox_dns/migrations/0020_remove_dnssecpolicy_parental_agents_and_more.py +29 -0
  100. netbox_dns/migrations/0021_alter_record_ptr_record.py +25 -0
  101. netbox_dns/migrations/0021_record_ip_address.py +1 -1
  102. netbox_dns/migrations/0022_alter_record_ipam_ip_address.py +26 -0
  103. netbox_dns/migrations/0023_disable_ptr_false.py +27 -0
  104. netbox_dns/migrations/0024_zonetemplate_parental_agents.py +25 -0
  105. netbox_dns/migrations/0025_remove_zone_inline_signing_and_more.py +22 -0
  106. netbox_dns/migrations/0026_alter_dnssecpolicy_nsec3_opt_out.py +18 -0
  107. netbox_dns/migrations/0026_domain_registration.py +1 -1
  108. netbox_dns/migrations/0027_zone_comments.py +18 -0
  109. netbox_dns/migrations/0028_alter_zone_default_ttl_alter_zone_soa_minimum_and_more.py +54 -0
  110. netbox_dns/migrations/0028_rfc2317_fields.py +44 -0
  111. netbox_dns/migrations/0029_alter_registrationcontact_street.py +18 -0
  112. netbox_dns/migrations/0029_record_fqdn.py +30 -0
  113. netbox_dns/mixins/__init__.py +1 -0
  114. netbox_dns/mixins/object_modification.py +57 -0
  115. netbox_dns/models/__init__.py +5 -1
  116. netbox_dns/models/dnssec_key_template.py +114 -0
  117. netbox_dns/models/dnssec_policy.py +203 -0
  118. netbox_dns/models/nameserver.py +61 -30
  119. netbox_dns/models/record.py +781 -234
  120. netbox_dns/models/record_template.py +198 -0
  121. netbox_dns/models/registrar.py +34 -15
  122. netbox_dns/models/{contact.py → registration_contact.py} +72 -43
  123. netbox_dns/models/view.py +129 -9
  124. netbox_dns/models/zone.py +806 -242
  125. netbox_dns/models/zone_template.py +209 -0
  126. netbox_dns/navigation.py +176 -76
  127. netbox_dns/signals/__init__.py +0 -0
  128. netbox_dns/signals/dnssec.py +32 -0
  129. netbox_dns/signals/ipam_dnssync.py +216 -0
  130. netbox_dns/tables/__init__.py +5 -1
  131. netbox_dns/tables/dnssec_key_template.py +49 -0
  132. netbox_dns/tables/dnssec_policy.py +140 -0
  133. netbox_dns/tables/ipam_dnssync.py +12 -0
  134. netbox_dns/tables/nameserver.py +14 -17
  135. netbox_dns/tables/record.py +117 -59
  136. netbox_dns/tables/record_template.py +91 -0
  137. netbox_dns/tables/registrar.py +20 -10
  138. netbox_dns/tables/{contact.py → registration_contact.py} +22 -11
  139. netbox_dns/tables/view.py +47 -3
  140. netbox_dns/tables/zone.py +62 -31
  141. netbox_dns/tables/zone_template.py +78 -0
  142. netbox_dns/template_content.py +124 -38
  143. netbox_dns/templates/netbox_dns/dnsseckeytemplate.html +70 -0
  144. netbox_dns/templates/netbox_dns/dnssecpolicy.html +163 -0
  145. netbox_dns/templates/netbox_dns/nameserver.html +31 -28
  146. netbox_dns/templates/netbox_dns/record/managed.html +2 -1
  147. netbox_dns/templates/netbox_dns/record/related.html +17 -6
  148. netbox_dns/templates/netbox_dns/record.html +140 -93
  149. netbox_dns/templates/netbox_dns/recordtemplate.html +96 -0
  150. netbox_dns/templates/netbox_dns/registrar.html +41 -34
  151. netbox_dns/templates/netbox_dns/registrationcontact.html +76 -0
  152. netbox_dns/templates/netbox_dns/view/button.html +10 -0
  153. netbox_dns/templates/netbox_dns/view/prefix.html +44 -0
  154. netbox_dns/templates/netbox_dns/view/related.html +33 -0
  155. netbox_dns/templates/netbox_dns/view.html +62 -18
  156. netbox_dns/templates/netbox_dns/zone/base.html +6 -3
  157. netbox_dns/templates/netbox_dns/zone/child.html +6 -5
  158. netbox_dns/templates/netbox_dns/zone/child_zone.html +18 -0
  159. netbox_dns/templates/netbox_dns/zone/delegation_record.html +18 -0
  160. netbox_dns/templates/netbox_dns/zone/managed_record.html +1 -1
  161. netbox_dns/templates/netbox_dns/zone/record.html +6 -5
  162. netbox_dns/templates/netbox_dns/zone/registration.html +43 -24
  163. netbox_dns/templates/netbox_dns/zone/rfc2317_child_zone.html +18 -0
  164. netbox_dns/templates/netbox_dns/zone.html +178 -119
  165. netbox_dns/templates/netbox_dns/zonetemplate/child.html +46 -0
  166. netbox_dns/templates/netbox_dns/zonetemplate.html +124 -0
  167. netbox_dns/templatetags/netbox_dns.py +10 -0
  168. netbox_dns/urls.py +50 -210
  169. netbox_dns/utilities/__init__.py +3 -0
  170. netbox_dns/{utilities.py → utilities/conversions.py} +55 -7
  171. netbox_dns/utilities/dns.py +11 -0
  172. netbox_dns/utilities/ipam_dnssync.py +370 -0
  173. netbox_dns/validators/__init__.py +4 -0
  174. netbox_dns/validators/dns_name.py +116 -0
  175. netbox_dns/validators/dns_value.py +147 -0
  176. netbox_dns/validators/dnssec.py +148 -0
  177. netbox_dns/validators/rfc2317.py +28 -0
  178. netbox_dns/views/__init__.py +5 -1
  179. netbox_dns/views/dnssec_key_template.py +78 -0
  180. netbox_dns/views/dnssec_policy.py +146 -0
  181. netbox_dns/views/nameserver.py +34 -15
  182. netbox_dns/views/record.py +156 -15
  183. netbox_dns/views/record_template.py +93 -0
  184. netbox_dns/views/registrar.py +32 -13
  185. netbox_dns/views/registration_contact.py +101 -0
  186. netbox_dns/views/view.py +58 -14
  187. netbox_dns/views/zone.py +130 -33
  188. netbox_dns/views/zone_template.py +82 -0
  189. netbox_plugin_dns-1.4.7.dist-info/METADATA +132 -0
  190. netbox_plugin_dns-1.4.7.dist-info/RECORD +201 -0
  191. {netbox_plugin_dns-0.21.4.dist-info → netbox_plugin_dns-1.4.7.dist-info}/WHEEL +2 -1
  192. {netbox_plugin_dns-0.21.4.dist-info → netbox_plugin_dns-1.4.7.dist-info/licenses}/LICENSE +2 -1
  193. netbox_plugin_dns-1.4.7.dist-info/top_level.txt +1 -0
  194. netbox_dns/filters/__init__.py +0 -6
  195. netbox_dns/filters/nameserver.py +0 -18
  196. netbox_dns/filters/record.py +0 -53
  197. netbox_dns/filters/view.py +0 -18
  198. netbox_dns/filters/zone.py +0 -112
  199. netbox_dns/forms/contact.py +0 -211
  200. netbox_dns/graphql/contact.py +0 -19
  201. netbox_dns/graphql/nameserver.py +0 -19
  202. netbox_dns/graphql/record.py +0 -19
  203. netbox_dns/graphql/registrar.py +0 -19
  204. netbox_dns/graphql/view.py +0 -19
  205. netbox_dns/graphql/zone.py +0 -19
  206. netbox_dns/management/commands/setup_coupling.py +0 -75
  207. netbox_dns/management/commands/update_soa.py +0 -22
  208. netbox_dns/middleware.py +0 -226
  209. netbox_dns/migrations/0001_initial.py +0 -115
  210. netbox_dns/migrations/0002_zone_default_ttl.py +0 -18
  211. netbox_dns/migrations/0003_soa_managed_records.py +0 -112
  212. netbox_dns/migrations/0004_create_ptr_for_a_aaaa_records.py +0 -80
  213. netbox_dns/migrations/0005_update_ns_records.py +0 -41
  214. netbox_dns/migrations/0006_zone_soa_serial_auto.py +0 -29
  215. netbox_dns/migrations/0007_alter_zone_soa_serial_auto.py +0 -17
  216. netbox_dns/migrations/0008_zone_status_names.py +0 -21
  217. netbox_dns/migrations/0009_netbox32.py +0 -71
  218. netbox_dns/migrations/0010_update_soa_records.py +0 -58
  219. netbox_dns/migrations/0011_add_view_model.py +0 -70
  220. netbox_dns/migrations/0012_adjust_zone_and_record.py +0 -17
  221. netbox_dns/migrations/0014_add_view_description.py +0 -16
  222. netbox_dns/migrations/0016_cleanup_ptr_records.py +0 -38
  223. netbox_dns/migrations/0017_alter_record_ttl.py +0 -17
  224. netbox_dns/migrations/0018_zone_arpa_network.py +0 -51
  225. netbox_dns/migrations/0019_update_ns_ttl.py +0 -19
  226. netbox_dns/templates/netbox_dns/contact.html +0 -71
  227. netbox_dns/templates/netbox_dns/related_dns_objects.html +0 -21
  228. netbox_dns/templatetags/view_helpers.py +0 -15
  229. netbox_dns/validators.py +0 -57
  230. netbox_dns/views/contact.py +0 -83
  231. netbox_plugin_dns-0.21.4.dist-info/METADATA +0 -101
  232. netbox_plugin_dns-0.21.4.dist-info/RECORD +0 -110
@@ -1,11 +1,93 @@
1
- from .view import ViewQuery
2
- from .nameserver import NameServerQuery
3
- from .zone import ZoneQuery
4
- from .record import RecordQuery
1
+ from typing import List
5
2
 
3
+ import strawberry
4
+ import strawberry_django
6
5
 
7
- class Query(ViewQuery, NameServerQuery, ZoneQuery, RecordQuery):
8
- pass
6
+ from .types import (
7
+ NetBoxDNSNameServerType,
8
+ NetBoxDNSViewType,
9
+ NetBoxDNSZoneType,
10
+ NetBoxDNSRecordType,
11
+ NetBoxDNSDNSSECKeyTemplateType,
12
+ NetBoxDNSDNSSECPolicyType,
13
+ NetBoxDNSRegistrationContactType,
14
+ NetBoxDNSRegistrarType,
15
+ NetBoxDNSZoneTemplateType,
16
+ NetBoxDNSRecordTemplateType,
17
+ )
9
18
 
10
19
 
11
- schema = Query
20
+ @strawberry.type(name="Query")
21
+ class NetBoxDNSNameServerQuery:
22
+ netbox_dns_nameserver: NetBoxDNSNameServerType = strawberry_django.field()
23
+ netbox_dns_nameserver_list: List[NetBoxDNSNameServerType] = (
24
+ strawberry_django.field()
25
+ )
26
+
27
+
28
+ @strawberry.type(name="Query")
29
+ class NetBoxDNSViewQuery:
30
+ netbox_dns_view: NetBoxDNSViewType = strawberry_django.field()
31
+ netbox_dns_view_list: List[NetBoxDNSViewType] = strawberry_django.field()
32
+
33
+
34
+ @strawberry.type(name="Query")
35
+ class NetBoxDNSZoneQuery:
36
+ netbox_dns_zone: NetBoxDNSZoneType = strawberry_django.field()
37
+ netbox_dns_zone_list: List[NetBoxDNSZoneType] = strawberry_django.field()
38
+
39
+
40
+ @strawberry.type(name="Query")
41
+ class NetBoxDNSRecordQuery:
42
+ netbox_dns_record: NetBoxDNSRecordType = strawberry_django.field()
43
+ netbox_dns_record_list: List[NetBoxDNSRecordType] = strawberry_django.field()
44
+
45
+
46
+ @strawberry.type(name="Query")
47
+ class NetBoxDNSDNSSECKeyTemplateQuery:
48
+ netbox_dns_dnssec_key_template: NetBoxDNSDNSSECKeyTemplateType = (
49
+ strawberry_django.field()
50
+ )
51
+ netbox_dns_dnssec_key_template_list: List[NetBoxDNSDNSSECKeyTemplateType] = (
52
+ strawberry_django.field()
53
+ )
54
+
55
+
56
+ @strawberry.type(name="Query")
57
+ class NetBoxDNSDNSSECPolicyQuery:
58
+ netbox_dns_dnssec_policy: NetBoxDNSDNSSECPolicyType = strawberry_django.field()
59
+ netbox_dns_dnssec_policy_list: List[NetBoxDNSDNSSECPolicyType] = (
60
+ strawberry_django.field()
61
+ )
62
+
63
+
64
+ @strawberry.type(name="Query")
65
+ class NetBoxDNSRegistrationContactQuery:
66
+ netbox_dns_registration_contact: NetBoxDNSRegistrationContactType = (
67
+ strawberry_django.field()
68
+ )
69
+ netbox_dns_registration_contact_list: List[NetBoxDNSRegistrationContactType] = (
70
+ strawberry_django.field()
71
+ )
72
+
73
+
74
+ @strawberry.type(name="Query")
75
+ class NetBoxDNSRegistrarQuery:
76
+ netbox_dns_registrar: NetBoxDNSRegistrarType = strawberry_django.field()
77
+ netbox_dns_registrar_list: List[NetBoxDNSRegistrarType] = strawberry_django.field()
78
+
79
+
80
+ @strawberry.type(name="Query")
81
+ class NetBoxDNSZoneTemplateQuery:
82
+ netbox_dns_zone_template: NetBoxDNSZoneTemplateType = strawberry_django.field()
83
+ netbox_dns_zone_template_list: List[NetBoxDNSZoneTemplateType] = (
84
+ strawberry_django.field()
85
+ )
86
+
87
+
88
+ @strawberry.type(name="Query")
89
+ class NetBoxDNSRecordTemplateQuery:
90
+ netbox_dns_record_template: NetBoxDNSRecordTemplateType = strawberry_django.field()
91
+ netbox_dns_record_template_list: List[NetBoxDNSRecordTemplateType] = (
92
+ strawberry_django.field()
93
+ )
@@ -0,0 +1,355 @@
1
+ from typing import Annotated, List
2
+
3
+ import strawberry
4
+ import strawberry_django
5
+
6
+ from netbox.graphql.types import NetBoxObjectType
7
+ from tenancy.graphql.types import TenantType
8
+ from ipam.graphql.types import IPAddressType, PrefixType
9
+ from netbox.graphql.scalars import BigInt
10
+
11
+ from netbox_dns.models import (
12
+ NameServer,
13
+ View,
14
+ Zone,
15
+ Record,
16
+ DNSSECKeyTemplate,
17
+ DNSSECPolicy,
18
+ RegistrationContact,
19
+ Registrar,
20
+ ZoneTemplate,
21
+ RecordTemplate,
22
+ )
23
+ from .filters import (
24
+ NetBoxDNSNameServerFilter,
25
+ NetBoxDNSViewFilter,
26
+ NetBoxDNSZoneFilter,
27
+ NetBoxDNSRecordFilter,
28
+ NetBoxDNSDNSSECKeyTemplateFilter,
29
+ NetBoxDNSDNSSECPolicyFilter,
30
+ NetBoxDNSRegistrationContactFilter,
31
+ NetBoxDNSRegistrarFilter,
32
+ NetBoxDNSZoneTemplateFilter,
33
+ NetBoxDNSRecordTemplateFilter,
34
+ )
35
+
36
+
37
+ @strawberry_django.type(NameServer, fields="__all__", filters=NetBoxDNSNameServerFilter)
38
+ class NetBoxDNSNameServerType(NetBoxObjectType):
39
+ name: str
40
+ description: str
41
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
42
+ zones: List[
43
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
44
+ ]
45
+ soa_zones: List[
46
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
47
+ ]
48
+
49
+
50
+ @strawberry_django.type(View, fields="__all__", filters=NetBoxDNSViewFilter)
51
+ class NetBoxDNSViewType(NetBoxObjectType):
52
+ name: str
53
+ description: str
54
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
55
+ prefixes: List[Annotated["PrefixType", strawberry.lazy("ipam.graphql.types")]]
56
+ ip_address_filter: str | None
57
+ zones: List[
58
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
59
+ ]
60
+
61
+
62
+ @strawberry_django.type(Zone, fields="__all__", filters=NetBoxDNSZoneFilter)
63
+ class NetBoxDNSZoneType(NetBoxObjectType):
64
+ name: str
65
+ description: str | None
66
+ status: str
67
+ active: bool
68
+ view: Annotated["NetBoxDNSViewType", strawberry.lazy("netbox_dns.graphql.types")]
69
+ nameservers: List[
70
+ Annotated[
71
+ "NetBoxDNSNameServerType", strawberry.lazy("netbox_dns.graphql.types")
72
+ ]
73
+ ]
74
+ default_ttl: BigInt
75
+ soa_ttl: BigInt
76
+ soa_mname: Annotated[
77
+ "NetBoxDNSNameServerType", strawberry.lazy("netbox_dns.graphql.types")
78
+ ]
79
+ soa_rname: str
80
+ soa_serial: BigInt
81
+ soa_refresh: BigInt
82
+ soa_retry: BigInt
83
+ soa_expire: BigInt
84
+ soa_minimum: BigInt
85
+ soa_serial_auto: bool
86
+ dnssec_policy: (
87
+ Annotated[
88
+ "NetBoxDNSDNSSECPolicyType", strawberry.lazy("netbox_dns.graphql.types")
89
+ ]
90
+ | None
91
+ )
92
+ inline_signing: bool | None
93
+ parental_agents: List[str]
94
+ registrar: (
95
+ Annotated["NetBoxDNSRegistrarType", strawberry.lazy("netbox_dns.graphql.types")]
96
+ | None
97
+ )
98
+ registry_domain_id: str | None
99
+ registrant: (
100
+ Annotated[
101
+ "NetBoxDNSRegistrationContactType",
102
+ strawberry.lazy("netbox_dns.graphql.types"),
103
+ ]
104
+ | None
105
+ )
106
+ admin_c: (
107
+ Annotated[
108
+ "NetBoxDNSRegistrationContactType",
109
+ strawberry.lazy("netbox_dns.graphql.types"),
110
+ ]
111
+ | None
112
+ )
113
+ tech_c: (
114
+ Annotated[
115
+ "NetBoxDNSRegistrationContactType",
116
+ strawberry.lazy("netbox_dns.graphql.types"),
117
+ ]
118
+ | None
119
+ )
120
+ billing_c: (
121
+ Annotated[
122
+ "NetBoxDNSRegistrationContactType",
123
+ strawberry.lazy("netbox_dns.graphql.types"),
124
+ ]
125
+ | None
126
+ )
127
+ rfc2317_prefix: str | None
128
+ rfc2317_parent_managed: str
129
+ rfc2317_parent_zone: (
130
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
131
+ | None
132
+ )
133
+ records: List[
134
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
135
+ ]
136
+ rfc2317_child_zones: List[
137
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
138
+ ]
139
+
140
+ comments: str | None
141
+
142
+ arpa_network: str | None
143
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
144
+
145
+
146
+ @strawberry_django.type(Record, fields="__all__", filters=NetBoxDNSRecordFilter)
147
+ class NetBoxDNSRecordType(NetBoxObjectType):
148
+ name: str
149
+ zone: Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
150
+ type: str
151
+ value: str
152
+ absolute_value: str
153
+ status: str
154
+ ttl: BigInt | None
155
+ managed: bool
156
+ ptr_record: (
157
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
158
+ | None
159
+ )
160
+ disable_ptr: bool
161
+ description: str | None
162
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
163
+ ip_address: str | None
164
+ ipam_ip_address: (
165
+ Annotated["IPAddressType", strawberry.lazy("ipam.graphql.types")] | None
166
+ )
167
+ rfc2317_cname_record: (
168
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
169
+ | None
170
+ )
171
+ address_records: List[
172
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
173
+ ]
174
+ rfc2317_ptr_records: List[
175
+ Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
176
+ ]
177
+
178
+
179
+ @strawberry_django.type(
180
+ DNSSECKeyTemplate, fields="__all__", filters=NetBoxDNSDNSSECKeyTemplateFilter
181
+ )
182
+ class NetBoxDNSDNSSECKeyTemplateType(NetBoxObjectType):
183
+ name: str
184
+ description: str
185
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
186
+ type: str
187
+ lifetime: BigInt | None
188
+ algorithm: str
189
+ key_size: BigInt | None
190
+
191
+
192
+ @strawberry_django.type(
193
+ DNSSECPolicy, fields="__all__", filters=NetBoxDNSDNSSECPolicyFilter
194
+ )
195
+ class NetBoxDNSDNSSECPolicyType(NetBoxObjectType):
196
+ name: str
197
+ description: str | None
198
+ status: str
199
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
200
+ inline_signing: bool
201
+ key_templates: List[
202
+ Annotated[
203
+ "NetBoxDNSDNSSECKeyTemplateType",
204
+ strawberry.lazy("netbox_dns.graphql.types"),
205
+ ]
206
+ ]
207
+ dnskey_ttl: BigInt | None
208
+ purge_keys: BigInt | None
209
+ publish_safety: BigInt | None
210
+ retire_safety: BigInt | None
211
+ signatures_jitter: BigInt | None
212
+ signatures_refresh: BigInt | None
213
+ signatures_validity: BigInt | None
214
+ signatures_validity_dnskey: BigInt | None
215
+ max_zone_ttl: BigInt | None
216
+ zone_propagation_delay: BigInt | None
217
+ create_cdnskey: bool
218
+ cds_digest_types: List[str]
219
+ parent_ds_ttl: BigInt | None
220
+ parent_propagation_delay: BigInt | None
221
+ use_nsec3: bool
222
+ nsec3_iterations: BigInt | None
223
+ nsec3_opt_out: bool | None
224
+ nsec3_salt_size: BigInt | None
225
+
226
+
227
+ @strawberry_django.type(
228
+ RegistrationContact, fields="__all__", filters=NetBoxDNSRegistrationContactFilter
229
+ )
230
+ class NetBoxDNSRegistrationContactType(NetBoxObjectType):
231
+ name: str
232
+ contact_id: str
233
+ description: str
234
+ organization: str
235
+ street: str
236
+ city: str
237
+ state_province: str
238
+ postal_code: str
239
+ country: str
240
+ phone: str
241
+ phone_ext: str
242
+ fax: str
243
+ fax_ext: str
244
+ email: str
245
+ registrant_zones: List[
246
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
247
+ ]
248
+ admin_c_zones: List[
249
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
250
+ ]
251
+ tech_c_zones: List[
252
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
253
+ ]
254
+ billing_c_zones: List[
255
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
256
+ ]
257
+
258
+
259
+ @strawberry_django.type(Registrar, fields="__all__", filters=NetBoxDNSRegistrarFilter)
260
+ class NetBoxDNSRegistrarType(NetBoxObjectType):
261
+ name: str
262
+ description: str
263
+ iana_id: int
264
+ referral_url: str
265
+ whois_server: str
266
+ address: str
267
+ abuse_email: str
268
+ abuse_phone: str
269
+ zones: List[
270
+ Annotated["NetBoxDNSZoneType", strawberry.lazy("netbox_dns.graphql.types")]
271
+ ]
272
+
273
+
274
+ @strawberry_django.type(
275
+ ZoneTemplate, fields="__all__", filters=NetBoxDNSZoneTemplateFilter
276
+ )
277
+ class NetBoxDNSZoneTemplateType(NetBoxObjectType):
278
+ name: str
279
+ nameservers: List[
280
+ Annotated[
281
+ "NetBoxDNSNameServerType", strawberry.lazy("netbox_dns.graphql.types")
282
+ ]
283
+ ]
284
+ soa_mname: (
285
+ Annotated[
286
+ "NetBoxDNSNameServerType", strawberry.lazy("netbox_dns.graphql.types")
287
+ ]
288
+ | None
289
+ )
290
+ soa_rname: str | None
291
+ dnssec_policy: (
292
+ Annotated[
293
+ "NetBoxDNSDNSSECPolicyType", strawberry.lazy("netbox_dns.graphql.types")
294
+ ]
295
+ | None
296
+ )
297
+ parental_agents: List[str]
298
+ record_templates: List[
299
+ Annotated[
300
+ "NetBoxDNSRecordTemplateType", strawberry.lazy("netbox_dns.graphql.types")
301
+ ]
302
+ ]
303
+ description: str | None
304
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
305
+ registrar: (
306
+ Annotated["NetBoxDNSRegistrarType", strawberry.lazy("netbox_dns.graphql.types")]
307
+ | None
308
+ )
309
+ registrant: (
310
+ Annotated[
311
+ "NetBoxDNSRegistrationContactType",
312
+ strawberry.lazy("netbox_dns.graphql.types"),
313
+ ]
314
+ | None
315
+ )
316
+ admin_c: (
317
+ Annotated[
318
+ "NetBoxDNSRegistrationContactType",
319
+ strawberry.lazy("netbox_dns.graphql.types"),
320
+ ]
321
+ | None
322
+ )
323
+ tech_c: (
324
+ Annotated[
325
+ "NetBoxDNSRegistrationContactType",
326
+ strawberry.lazy("netbox_dns.graphql.types"),
327
+ ]
328
+ | None
329
+ )
330
+ billing_c: (
331
+ Annotated[
332
+ "NetBoxDNSRegistrationContactType",
333
+ strawberry.lazy("netbox_dns.graphql.types"),
334
+ ]
335
+ | None
336
+ )
337
+
338
+
339
+ @strawberry_django.type(
340
+ RecordTemplate, fields="__all__", filters=NetBoxDNSRecordTemplateFilter
341
+ )
342
+ class NetBoxDNSRecordTemplateType(NetBoxObjectType):
343
+ name: str
344
+ record_name: str
345
+ type: str
346
+ value: str
347
+ ttl: BigInt | None
348
+ disable_ptr: bool
349
+ description: str | None
350
+ tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
351
+ zone_templates: List[
352
+ Annotated[
353
+ "NetBoxDNSZoneTemplateType", strawberry.lazy("netbox_dns.graphql.types")
354
+ ]
355
+ ]