netbox-plugin-dns 1.2.10__py3-none-any.whl → 1.3.0__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 +2 -2
  2. netbox_dns/api/nested_serializers.py +54 -49
  3. netbox_dns/api/serializers_/dnssec_key_template.py +22 -13
  4. netbox_dns/api/serializers_/dnssec_policy.py +89 -40
  5. netbox_dns/api/serializers_/nameserver.py +25 -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 -78
  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.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/METADATA +4 -2
  78. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/RECORD +81 -69
  79. netbox_dns/graphql/filters.py +0 -88
  80. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/WHEEL +0 -0
  81. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/licenses/LICENSE +0 -0
  82. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/top_level.txt +0 -0
netbox_dns/forms/zone.py CHANGED
@@ -1,5 +1,3 @@
1
- from packaging.version import Version
2
-
3
1
  from django import forms
4
2
  from django.db import transaction
5
3
  from django.conf import settings
@@ -23,7 +21,6 @@ from utilities.forms.fields import (
23
21
  CSVModelMultipleChoiceField,
24
22
  DynamicModelChoiceField,
25
23
  )
26
- from utilities.release import load_release_data
27
24
  from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker
28
25
  from utilities.forms.rendering import FieldSet
29
26
  from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
@@ -52,8 +49,6 @@ __all__ = (
52
49
  "ZoneBulkEditForm",
53
50
  )
54
51
 
55
- QUICK_ADD = Version(load_release_data().version) >= Version("4.2.5")
56
-
57
52
 
58
53
  class RollbackTransaction(Exception):
59
54
  pass
@@ -154,114 +149,59 @@ class ZoneTemplateUpdateMixin:
154
149
 
155
150
 
156
151
  class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
157
- view = DynamicModelChoiceField(
158
- queryset=View.objects.all(),
159
- required=True,
160
- label=_("View"),
161
- quick_add=QUICK_ADD,
162
- )
163
- name = forms.CharField(
164
- required=True,
165
- label=_("Name"),
166
- )
167
- template = DynamicModelChoiceField(
168
- queryset=ZoneTemplate.objects.all(),
169
- required=False,
170
- label=_("Template"),
171
- )
172
- status = forms.ChoiceField(
173
- choices=ZoneStatusChoices,
174
- required=False,
175
- label=_("Status"),
176
- )
177
- nameservers = DynamicModelMultipleChoiceField(
178
- queryset=NameServer.objects.all(),
179
- required=False,
180
- label=_("Nameservers"),
181
- quick_add=QUICK_ADD,
182
- )
183
- default_ttl = TimePeriodField(
184
- required=False,
185
- help_text=_("Default TTL for new records in this zone"),
186
- validators=[MinValueValidator(1)],
187
- label=_("Default TTL"),
188
- )
189
- description = forms.CharField(
190
- required=False,
191
- label=_("Description"),
192
- )
193
- soa_ttl = TimePeriodField(
194
- required=True,
195
- help_text=_("TTL for the SOA record of the zone"),
196
- validators=[MinValueValidator(1)],
197
- label=_("SOA TTL"),
198
- )
199
- soa_mname = DynamicModelChoiceField(
200
- queryset=NameServer.objects.all(),
201
- help_text=_("Primary nameserver this zone"),
202
- required=False,
203
- label=_("SOA MName"),
204
- quick_add=QUICK_ADD,
205
- )
206
- soa_rname = forms.CharField(
207
- required=False,
208
- help_text=_("Mailbox of the zone's administrator"),
209
- label=_("SOA RName"),
210
- )
211
- soa_refresh = TimePeriodField(
212
- required=True,
213
- help_text=_("Refresh interval for secondary nameservers"),
214
- validators=[MinValueValidator(1)],
215
- label=_("SOA Refresh"),
216
- )
217
- soa_retry = TimePeriodField(
218
- required=True,
219
- help_text=_("Retry interval for secondary nameservers"),
220
- validators=[MinValueValidator(1)],
221
- label=_("SOA Retry"),
222
- )
223
- soa_expire = TimePeriodField(
224
- required=True,
225
- validators=[MinValueValidator(1)],
226
- help_text=_("Expire time after which the zone is considered unavailable"),
227
- label=_("SOA Expire"),
228
- )
229
- soa_minimum = TimePeriodField(
230
- required=True,
231
- help_text=_("Minimum TTL for negative results, e.g. NXRRSET, NXDOMAIN"),
232
- validators=[MinValueValidator(1)],
233
- label=_("SOA Minimum TTL"),
234
- )
235
- soa_serial_auto = forms.BooleanField(
236
- required=False,
237
- help_text=_("Automatically generate the SOA serial number"),
238
- label=_("Generate SOA Serial"),
239
- )
240
- soa_serial = forms.IntegerField(
241
- required=False,
242
- validators=[MinValueValidator(1)],
243
- label=_("SOA Serial"),
244
- )
152
+ class Meta:
153
+ model = Zone
245
154
 
246
- parental_agents = SimpleArrayField(
247
- required=False,
248
- base_field=forms.GenericIPAddressField(),
249
- label=_("Parental Agents"),
250
- )
155
+ fields = (
156
+ "name",
157
+ "view",
158
+ "status",
159
+ "template",
160
+ "nameservers",
161
+ "default_ttl",
162
+ "description",
163
+ "soa_ttl",
164
+ "soa_mname",
165
+ "soa_rname",
166
+ "soa_serial_auto",
167
+ "soa_serial",
168
+ "soa_refresh",
169
+ "soa_retry",
170
+ "soa_expire",
171
+ "soa_minimum",
172
+ "rfc2317_prefix",
173
+ "rfc2317_parent_managed",
174
+ "dnssec_policy",
175
+ "inline_signing",
176
+ "parental_agents",
177
+ "registrar",
178
+ "registry_domain_id",
179
+ "expiration_date",
180
+ "domain_status",
181
+ "registrant",
182
+ "admin_c",
183
+ "tech_c",
184
+ "billing_c",
185
+ "tenant_group",
186
+ "tenant",
187
+ "tags",
188
+ )
251
189
 
252
- rfc2317_prefix = RFC2317NetworkFormField(
253
- required=False,
254
- validators=[validate_ipv4, validate_prefix, validate_rfc2317],
255
- help_text=_("RFC2317 IPv4 prefix with a length of at least 25 bits"),
256
- label=_("RFC2317 Prefix"),
257
- )
258
- rfc2317_parent_managed = forms.BooleanField(
259
- required=False,
260
- help_text=_(
261
- "IPv4 reverse zone for delegating the RFC2317 PTR records is managed in NetBox DNS"
262
- ),
263
- label=_("RFC2317 Parent Managed"),
264
- )
190
+ labels = {
191
+ "soa_serial_auto": _("Generate SOA Serial"),
192
+ "rfc2317_parent_managed": _("RFC2317 Parent Managed"),
193
+ }
194
+
195
+ help_texts = {
196
+ "soa_serial_auto": _("Automatically generate the SOA serial number"),
197
+ "rfc2317_parent_managed": _(
198
+ "IPv4 reverse zone for delegating the RFC2317 PTR records is managed in NetBox DNS"
199
+ ),
200
+ }
201
+
202
+ widgets = {
203
+ "expiration_date": DatePicker,
204
+ }
265
205
 
266
206
  fieldsets = (
267
207
  FieldSet(
@@ -308,8 +248,15 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
308
248
  "billing_c",
309
249
  name=_("Domain Registration"),
310
250
  ),
311
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
312
- FieldSet("tags", name=_("Tags")),
251
+ FieldSet(
252
+ "tenant_group",
253
+ "tenant",
254
+ name=_("Tenancy"),
255
+ ),
256
+ FieldSet(
257
+ "tags",
258
+ name=_("Tags"),
259
+ ),
313
260
  )
314
261
 
315
262
  def __init__(self, *args, **kwargs):
@@ -356,6 +303,96 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
356
303
  name__in=default_nameservers
357
304
  )
358
305
 
306
+ view = DynamicModelChoiceField(
307
+ queryset=View.objects.all(),
308
+ required=True,
309
+ label=_("View"),
310
+ )
311
+ name = forms.CharField(
312
+ required=True,
313
+ label=_("Name"),
314
+ )
315
+ template = DynamicModelChoiceField(
316
+ queryset=ZoneTemplate.objects.all(),
317
+ required=False,
318
+ label=_("Template"),
319
+ )
320
+ status = forms.ChoiceField(
321
+ choices=ZoneStatusChoices,
322
+ required=False,
323
+ label=_("Status"),
324
+ )
325
+ nameservers = DynamicModelMultipleChoiceField(
326
+ queryset=NameServer.objects.all(),
327
+ required=False,
328
+ label=_("Nameservers"),
329
+ )
330
+ default_ttl = TimePeriodField(
331
+ required=False,
332
+ help_text=_("Default TTL for new records in this zone"),
333
+ validators=[MinValueValidator(1)],
334
+ label=_("Default TTL"),
335
+ )
336
+ soa_ttl = TimePeriodField(
337
+ required=True,
338
+ help_text=_("TTL for the SOA record of the zone"),
339
+ validators=[MinValueValidator(1)],
340
+ label=_("SOA TTL"),
341
+ )
342
+ soa_mname = DynamicModelChoiceField(
343
+ queryset=NameServer.objects.all(),
344
+ help_text=_("Primary nameserver this zone"),
345
+ required=False,
346
+ label=_("SOA MName"),
347
+ )
348
+ soa_rname = forms.CharField(
349
+ required=False,
350
+ help_text=_("Mailbox of the zone's administrator"),
351
+ label=_("SOA RName"),
352
+ )
353
+ soa_refresh = TimePeriodField(
354
+ required=True,
355
+ help_text=_("Refresh interval for secondary nameservers"),
356
+ validators=[MinValueValidator(1)],
357
+ label=_("SOA Refresh"),
358
+ )
359
+ soa_retry = TimePeriodField(
360
+ required=True,
361
+ help_text=_("Retry interval for secondary nameservers"),
362
+ validators=[MinValueValidator(1)],
363
+ label=_("SOA Retry"),
364
+ )
365
+ soa_expire = TimePeriodField(
366
+ required=True,
367
+ validators=[MinValueValidator(1)],
368
+ help_text=_("Expire time after which the zone is considered unavailable"),
369
+ label=_("SOA Expire"),
370
+ )
371
+ soa_minimum = TimePeriodField(
372
+ required=True,
373
+ help_text=_("Minimum TTL for negative results, e.g. NXRRSET, NXDOMAIN"),
374
+ validators=[MinValueValidator(1)],
375
+ label=_("SOA Minimum TTL"),
376
+ )
377
+ soa_serial = forms.IntegerField(
378
+ required=False,
379
+ validators=[MinValueValidator(1)],
380
+ label=_("SOA Serial"),
381
+ )
382
+
383
+ parental_agents = SimpleArrayField(
384
+ required=False,
385
+ base_field=forms.GenericIPAddressField(),
386
+ label=_("Parental Agents"),
387
+ )
388
+
389
+ rfc2317_prefix = RFC2317NetworkFormField(
390
+ required=False,
391
+ validators=[validate_ipv4, validate_prefix, validate_rfc2317],
392
+ help_text=_("RFC2317 IPv4 prefix with a length of at least 25 bits"),
393
+ label=_("RFC2317 Prefix"),
394
+ )
395
+
359
396
  def clean_default_ttl(self):
360
397
  return (
361
398
  self.cleaned_data["default_ttl"]
@@ -370,52 +407,16 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
370
407
  else:
371
408
  return name
372
409
 
373
- class Meta:
374
- model = Zone
375
-
376
- fields = (
377
- "name",
378
- "view",
379
- "status",
380
- "template",
381
- "nameservers",
382
- "default_ttl",
383
- "description",
384
- "soa_ttl",
385
- "soa_mname",
386
- "soa_rname",
387
- "soa_serial_auto",
388
- "soa_serial",
389
- "soa_refresh",
390
- "soa_retry",
391
- "soa_expire",
392
- "soa_minimum",
393
- "rfc2317_prefix",
394
- "rfc2317_parent_managed",
395
- "dnssec_policy",
396
- "inline_signing",
397
- "parental_agents",
398
- "registrar",
399
- "registry_domain_id",
400
- "expiration_date",
401
- "domain_status",
402
- "registrant",
403
- "admin_c",
404
- "tech_c",
405
- "billing_c",
406
- "tenant_group",
407
- "tenant",
408
- "tags",
409
- )
410
- widgets = {
411
- "expiration_date": DatePicker,
412
- }
413
-
414
410
 
415
411
  class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
416
412
  model = Zone
413
+
417
414
  fieldsets = (
418
- FieldSet("q", "filter_id", "tag"),
415
+ FieldSet(
416
+ "q",
417
+ "filter_id",
418
+ "tag",
419
+ ),
419
420
  FieldSet(
420
421
  "view_id",
421
422
  "status",
@@ -455,7 +456,11 @@ class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
455
456
  "billing_c_id",
456
457
  name=_("Registration"),
457
458
  ),
458
- FieldSet("tenant_group_id", "tenant_id", name=_("Tenancy")),
459
+ FieldSet(
460
+ "tenant_group_id",
461
+ "tenant_id",
462
+ name=_("Tenancy"),
463
+ ),
459
464
  )
460
465
 
461
466
  view_id = DynamicModelMultipleChoiceField(
@@ -584,6 +589,43 @@ class ZoneFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
584
589
 
585
590
 
586
591
  class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
592
+ class Meta:
593
+ model = Zone
594
+
595
+ fields = (
596
+ "view",
597
+ "name",
598
+ "status",
599
+ "template",
600
+ "nameservers",
601
+ "default_ttl",
602
+ "description",
603
+ "soa_ttl",
604
+ "soa_mname",
605
+ "soa_rname",
606
+ "soa_serial_auto",
607
+ "soa_serial",
608
+ "soa_refresh",
609
+ "soa_retry",
610
+ "soa_expire",
611
+ "soa_minimum",
612
+ "dnssec_policy",
613
+ "inline_signing",
614
+ "parental_agents",
615
+ "rfc2317_prefix",
616
+ "rfc2317_parent_managed",
617
+ "registrar",
618
+ "registry_domain_id",
619
+ "expiration_date",
620
+ "domain_status",
621
+ "registrant",
622
+ "admin_c",
623
+ "tech_c",
624
+ "billing_c",
625
+ "tenant",
626
+ "tags",
627
+ )
628
+
587
629
  view = CSVModelChoiceField(
588
630
  queryset=View.objects.all(),
589
631
  required=False,
@@ -748,31 +790,64 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
748
790
  label=_("Template"),
749
791
  )
750
792
 
751
- class Meta:
752
- model = Zone
793
+ def clean_view(self):
794
+ view = self.cleaned_data.get("view")
795
+ if view is None:
796
+ return View.get_default_view()
753
797
 
754
- fields = (
798
+ return view
799
+
800
+ def clean_nameservers(self):
801
+ nameservers = self.cleaned_data.get("nameservers")
802
+ zone_defaults = settings.PLUGINS_CONFIG.get("netbox_dns")
803
+
804
+ if (
805
+ self.data.get("nameservers") is None
806
+ and zone_defaults.get("zone_nameservers") is not None
807
+ ):
808
+ nameservers = NameServer.objects.filter(
809
+ name__in=zone_defaults.get("zone_nameservers")
810
+ )
811
+
812
+ return nameservers
813
+
814
+
815
+ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
816
+ model = Zone
817
+
818
+ fieldsets = (
819
+ FieldSet(
755
820
  "view",
756
- "name",
757
821
  "status",
758
- "template",
759
822
  "nameservers",
760
823
  "default_ttl",
761
824
  "description",
825
+ name=_("Attributes"),
826
+ ),
827
+ FieldSet(
762
828
  "soa_ttl",
763
829
  "soa_mname",
764
830
  "soa_rname",
765
- "soa_serial_auto",
766
- "soa_serial",
767
831
  "soa_refresh",
768
832
  "soa_retry",
769
833
  "soa_expire",
770
834
  "soa_minimum",
835
+ "soa_serial_auto",
836
+ "soa_serial",
837
+ name=_("SOA"),
838
+ ),
839
+ FieldSet(
771
840
  "dnssec_policy",
772
841
  "inline_signing",
773
842
  "parental_agents",
843
+ name=_("DNSSEC"),
844
+ ),
845
+ FieldSet(
774
846
  "rfc2317_prefix",
775
847
  "rfc2317_parent_managed",
848
+ name=_("RFC2317"),
849
+ ),
850
+ FieldSet(
776
851
  "registrar",
777
852
  "registry_domain_id",
778
853
  "expiration_date",
@@ -781,33 +856,30 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
781
856
  "admin_c",
782
857
  "tech_c",
783
858
  "billing_c",
859
+ name=_("Domain Registration"),
860
+ ),
861
+ FieldSet(
862
+ "tenant_group",
784
863
  "tenant",
785
- "tags",
786
- )
787
-
788
- def clean_view(self):
789
- view = self.cleaned_data.get("view")
790
- if view is None:
791
- return View.get_default_view()
792
-
793
- return view
794
-
795
- def clean_nameservers(self):
796
- nameservers = self.cleaned_data.get("nameservers")
797
- zone_defaults = settings.PLUGINS_CONFIG.get("netbox_dns")
798
-
799
- if (
800
- self.data.get("nameservers") is None
801
- and zone_defaults.get("zone_nameservers") is not None
802
- ):
803
- nameservers = NameServer.objects.filter(
804
- name__in=zone_defaults.get("zone_nameservers")
805
- )
806
-
807
- return nameservers
864
+ name=_("Tenancy"),
865
+ ),
866
+ )
808
867
 
868
+ nullable_fields = (
869
+ "description",
870
+ "nameservers",
871
+ "rfc2317_prefix",
872
+ "registrar",
873
+ "expiration_date",
874
+ "domain_status",
875
+ "registry_domain_id",
876
+ "registrant",
877
+ "admin_c",
878
+ "tech_c",
879
+ "billing_c",
880
+ "tenant",
881
+ )
809
882
 
810
- class ZoneBulkEditForm(NetBoxModelBulkEditForm):
811
883
  view = DynamicModelChoiceField(
812
884
  queryset=View.objects.all(),
813
885
  required=False,
@@ -955,66 +1027,3 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
955
1027
  required=False,
956
1028
  label=_("Tenant"),
957
1029
  )
958
-
959
- model = Zone
960
-
961
- fieldsets = (
962
- FieldSet(
963
- "view",
964
- "status",
965
- "nameservers",
966
- "default_ttl",
967
- "description",
968
- name=_("Attributes"),
969
- ),
970
- FieldSet(
971
- "soa_ttl",
972
- "soa_mname",
973
- "soa_rname",
974
- "soa_refresh",
975
- "soa_retry",
976
- "soa_expire",
977
- "soa_minimum",
978
- "soa_serial_auto",
979
- "soa_serial",
980
- name=_("SOA"),
981
- ),
982
- FieldSet(
983
- "dnssec_policy",
984
- "inline_signing",
985
- "parental_agents",
986
- name=_("DNSSEC"),
987
- ),
988
- FieldSet(
989
- "rfc2317_prefix",
990
- "rfc2317_parent_managed",
991
- name=_("RFC2317"),
992
- ),
993
- FieldSet(
994
- "registrar",
995
- "registry_domain_id",
996
- "expiration_date",
997
- "domain_status",
998
- "registrant",
999
- "admin_c",
1000
- "tech_c",
1001
- "billing_c",
1002
- name=_("Domain Registration"),
1003
- ),
1004
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
1005
- )
1006
-
1007
- nullable_fields = (
1008
- "description",
1009
- "nameservers",
1010
- "rfc2317_prefix",
1011
- "registrar",
1012
- "expiration_date",
1013
- "domain_status",
1014
- "registry_domain_id",
1015
- "registrant",
1016
- "admin_c",
1017
- "tech_c",
1018
- "billing_c",
1019
- "tenant",
1020
- )