netbox-plugin-dns 1.2.7b3__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.
- netbox_dns/__init__.py +55 -29
- netbox_dns/api/field_serializers.py +25 -0
- netbox_dns/api/serializers_/dnssec_key_template.py +2 -0
- netbox_dns/api/serializers_/dnssec_policy.py +13 -0
- netbox_dns/api/serializers_/record.py +2 -0
- netbox_dns/api/serializers_/record_template.py +2 -0
- netbox_dns/api/serializers_/zone.py +10 -1
- netbox_dns/choices/dnssec_key_template.py +2 -2
- netbox_dns/choices/dnssec_policy.py +2 -2
- netbox_dns/choices/record.py +64 -19
- netbox_dns/choices/utilities.py +4 -26
- netbox_dns/choices/zone.py +96 -1
- netbox_dns/fields/timeperiod.py +6 -12
- netbox_dns/filtersets/dnssec_key_template.py +2 -2
- netbox_dns/filtersets/dnssec_policy.py +6 -6
- netbox_dns/filtersets/zone.py +7 -2
- netbox_dns/filtersets/zone_template.py +2 -2
- netbox_dns/forms/dnssec_key_template.py +3 -2
- netbox_dns/forms/dnssec_policy.py +9 -6
- netbox_dns/forms/nameserver.py +2 -0
- netbox_dns/forms/record_template.py +1 -0
- netbox_dns/forms/zone.py +78 -15
- netbox_dns/forms/zone_template.py +9 -0
- netbox_dns/graphql/enums.py +41 -0
- netbox_dns/graphql/filter_lookups.py +13 -0
- netbox_dns/graphql/filters/__init__.py +12 -0
- netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
- netbox_dns/graphql/filters/dnssec_policy.py +123 -0
- netbox_dns/graphql/filters/nameserver.py +32 -0
- netbox_dns/graphql/filters/record.py +89 -0
- netbox_dns/graphql/filters/record_template.py +55 -0
- netbox_dns/graphql/filters/registrar.py +30 -0
- netbox_dns/graphql/filters/registration_contact.py +27 -0
- netbox_dns/graphql/filters/view.py +28 -0
- netbox_dns/graphql/filters/zone.py +146 -0
- netbox_dns/graphql/filters/zone_template.py +97 -0
- netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
- netbox_dns/locale/fr/LC_MESSAGES/django.mo +0 -0
- netbox_dns/migrations/0018_zone_domain_status_zone_expiration_date.py +23 -0
- netbox_dns/models/dnssec_key_template.py +0 -5
- netbox_dns/models/dnssec_policy.py +0 -5
- netbox_dns/models/nameserver.py +0 -5
- netbox_dns/models/record.py +4 -6
- netbox_dns/models/record_template.py +0 -5
- netbox_dns/models/registrar.py +0 -5
- netbox_dns/models/registration_contact.py +0 -5
- netbox_dns/models/view.py +0 -5
- netbox_dns/models/zone.py +44 -7
- netbox_dns/models/zone_template.py +1 -6
- netbox_dns/tables/zone.py +6 -1
- netbox_dns/template_content.py +2 -1
- netbox_dns/templates/netbox_dns/zone/registration.html +19 -0
- netbox_dns/urls.py +7 -0
- netbox_dns/utilities/conversions.py +13 -0
- netbox_dns/validators/dns_value.py +3 -0
- netbox_dns/views/dnssec_key_template.py +0 -9
- netbox_dns/views/dnssec_policy.py +0 -9
- netbox_dns/views/nameserver.py +0 -9
- netbox_dns/views/record.py +0 -9
- netbox_dns/views/record_template.py +0 -3
- netbox_dns/views/registrar.py +0 -3
- netbox_dns/views/registration_contact.py +0 -3
- netbox_dns/views/view.py +0 -9
- netbox_dns/views/zone.py +11 -11
- netbox_dns/views/zone_template.py +0 -4
- {netbox_plugin_dns-1.2.7b3.dist-info → netbox_plugin_dns-1.3b1.dist-info}/METADATA +5 -3
- {netbox_plugin_dns-1.2.7b3.dist-info → netbox_plugin_dns-1.3b1.dist-info}/RECORD +70 -56
- {netbox_plugin_dns-1.2.7b3.dist-info → netbox_plugin_dns-1.3b1.dist-info}/WHEEL +1 -1
- netbox_dns/graphql/filters.py +0 -88
- {netbox_plugin_dns-1.2.7b3.dist-info → netbox_plugin_dns-1.3b1.dist-info/licenses}/LICENSE +0 -0
- {netbox_plugin_dns-1.2.7b3.dist-info → netbox_plugin_dns-1.3b1.dist-info}/top_level.txt +0 -0
|
@@ -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()
|
|
@@ -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()
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by Django 5.1.7 on 2025-04-03 13:43
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("netbox_dns", "0017_dnssec_policy_zone_zone_template"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name="zone",
|
|
15
|
+
name="domain_status",
|
|
16
|
+
field=models.CharField(blank=True, max_length=50, null=True),
|
|
17
|
+
),
|
|
18
|
+
migrations.AddField(
|
|
19
|
+
model_name="zone",
|
|
20
|
+
name="expiration_date",
|
|
21
|
+
field=models.DateField(blank=True, null=True),
|
|
22
|
+
),
|
|
23
|
+
]
|
|
@@ -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
|
|
@@ -87,10 +86,6 @@ class DNSSECKeyTemplate(ContactsMixin, NetBoxModel):
|
|
|
87
86
|
def __str__(self):
|
|
88
87
|
return f"{str(self.name)} [{self.type}]"
|
|
89
88
|
|
|
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
89
|
def get_type_color(self):
|
|
95
90
|
return DNSSECKeyTemplateTypeChoices.colors.get(self.type)
|
|
96
91
|
|