nautobot-dns-models 0.2.0__tar.gz

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 (111) hide show
  1. nautobot_dns_models-0.2.0/LICENSE +15 -0
  2. nautobot_dns_models-0.2.0/PKG-INFO +77 -0
  3. nautobot_dns_models-0.2.0/README.md +52 -0
  4. nautobot_dns_models-0.2.0/nautobot_dns_models/__init__.py +32 -0
  5. nautobot_dns_models-0.2.0/nautobot_dns_models/api/__init__.py +1 -0
  6. nautobot_dns_models-0.2.0/nautobot_dns_models/api/serializers.py +126 -0
  7. nautobot_dns_models-0.2.0/nautobot_dns_models/api/urls.py +18 -0
  8. nautobot_dns_models-0.2.0/nautobot_dns_models/api/views.py +116 -0
  9. nautobot_dns_models-0.2.0/nautobot_dns_models/app-config-schema.json +1 -0
  10. nautobot_dns_models-0.2.0/nautobot_dns_models/filters.py +85 -0
  11. nautobot_dns_models-0.2.0/nautobot_dns_models/forms.py +409 -0
  12. nautobot_dns_models-0.2.0/nautobot_dns_models/migrations/0001_initial.py +460 -0
  13. nautobot_dns_models-0.2.0/nautobot_dns_models/migrations/__init__.py +0 -0
  14. nautobot_dns_models-0.2.0/nautobot_dns_models/models.py +273 -0
  15. nautobot_dns_models-0.2.0/nautobot_dns_models/navigation.py +24 -0
  16. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/404.html +1160 -0
  17. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/compatibility_matrix.html +1275 -0
  18. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/install.html +1431 -0
  19. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/release_notes/index.html +1252 -0
  20. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/release_notes/version_0.2.html +1339 -0
  21. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/uninstall.html +1361 -0
  22. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/admin/upgrade.html +1319 -0
  23. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/_mkdocstrings.css +119 -0
  24. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/extra.css +166 -0
  25. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/favicon.ico +0 -0
  26. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/images/favicon.png +0 -0
  27. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/bundle.471ce7a9.min.js +29 -0
  28. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/bundle.471ce7a9.min.js.map +7 -0
  29. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  30. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  31. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  32. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  33. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  34. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  35. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  36. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  37. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  38. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  39. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  40. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  41. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  42. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  43. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  44. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  45. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  46. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  47. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  48. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  49. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  50. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  51. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  52. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  53. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  54. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  55. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  56. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  57. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  58. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  59. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  60. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  61. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/tinyseg.js +206 -0
  62. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/lunr/wordcut.js +6708 -0
  63. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/workers/search.b8dbb3d2.min.js +42 -0
  64. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/javascripts/workers/search.b8dbb3d2.min.js.map +7 -0
  65. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/nautobot_logo.png +0 -0
  66. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/nautobot_logo.svg +131 -0
  67. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/networktocode_bw.png +0 -0
  68. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/overrides/partials/copyright.html +22 -0
  69. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/stylesheets/main.3cba04c6.min.css +1 -0
  70. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/stylesheets/main.3cba04c6.min.css.map +1 -0
  71. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/stylesheets/palette.06af60db.min.css +1 -0
  72. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/assets/stylesheets/palette.06af60db.min.css.map +1 -0
  73. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/code_reference/api.html +3414 -0
  74. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/code_reference/index.html +1252 -0
  75. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/code_reference/package.html +1447 -0
  76. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/contributing.html +1423 -0
  77. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/dev_environment.html +2227 -0
  78. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/extending.html +1335 -0
  79. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/dev/release_checklist.html +1714 -0
  80. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-record-1.png +0 -0
  81. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-record-2.png +0 -0
  82. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-record-3.png +0 -0
  83. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-zone-1.png +0 -0
  84. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-zone-2.png +0 -0
  85. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-add-zone-3.png +0 -0
  86. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/getting_started-dns-zone-nav-bar.png +0 -0
  87. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/icon-nautobot-dns-models.png +0 -0
  88. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/images/readme-1.png +0 -0
  89. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/index.html +1434 -0
  90. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/objects.inv +0 -0
  91. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/requirements.txt +7 -0
  92. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/search/search_index.json +1 -0
  93. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/sitemap.xml +98 -0
  94. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/sitemap.xml.gz +0 -0
  95. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/user/app_getting_started.html +1383 -0
  96. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/user/app_overview.html +1426 -0
  97. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/user/app_use_cases.html +1369 -0
  98. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/user/external_interactions.html +1425 -0
  99. nautobot_dns_models-0.2.0/nautobot_dns_models/static/nautobot_dns_models/docs/user/faq.html +1317 -0
  100. nautobot_dns_models-0.2.0/nautobot_dns_models/tables.py +323 -0
  101. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/__init__.py +1 -0
  102. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/fixtures.py +10 -0
  103. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_api.py +394 -0
  104. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_basic.py +37 -0
  105. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_filters.py +374 -0
  106. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_forms.py +323 -0
  107. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_models.py +188 -0
  108. nautobot_dns_models-0.2.0/nautobot_dns_models/tests/test_views.py +407 -0
  109. nautobot_dns_models-0.2.0/nautobot_dns_models/urls.py +63 -0
  110. nautobot_dns_models-0.2.0/nautobot_dns_models/views.py +388 -0
  111. nautobot_dns_models-0.2.0/pyproject.toml +193 -0
@@ -0,0 +1,15 @@
1
+ Apache Software License 2.0
2
+
3
+ Copyright (c) 2025, Network to Code, LLC
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.3
2
+ Name: nautobot-dns-models
3
+ Version: 0.2.0
4
+ Summary: Nautobot DNS Models
5
+ License: Apache-2.0
6
+ Keywords: nautobot,nautobot-app,nautobot-plugin
7
+ Author: Network to Code, LLC
8
+ Author-email: info@networktocode.com
9
+ Requires-Python: >=3.9,<3.13
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Provides-Extra: all
19
+ Requires-Dist: nautobot (>=2.4.4,<3.0.0)
20
+ Project-URL: Documentation, https://docs.nautobot.com/projects/nautobot-dns-models/en/latest/
21
+ Project-URL: Homepage, https://github.com/nautobot/nautobot-app-dns-models
22
+ Project-URL: Repository, https://github.com/nautobot/nautobot-app-dns-models
23
+ Description-Content-Type: text/markdown
24
+
25
+ # Nautobot DNS Models
26
+
27
+ <p align="center">
28
+ <img src="https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/icon-nautobot-dns-models.png" class="logo" height="200px">
29
+ <br>
30
+ <a href="https://github.com/nautobot/nautobot-app-dns-models/actions"><img src="https://github.com/nautobot/nautobot-app-dns-models/actions/workflows/ci.yml/badge.svg?branch=main"></a>
31
+ <a href="https://docs.nautobot.com/projects/dns-models/en/latest"><img src="https://readthedocs.org/projects/nautobot-app-dns-models/badge/"></a>
32
+ <a href="https://pypi.org/project/nautobot-dns-models/"><img src="https://img.shields.io/pypi/v/nautobot-dns-models"></a>
33
+ <a href="https://pypi.org/project/nautobot-dns-models/"><img src="https://img.shields.io/pypi/dm/nautobot-dns-models"></a>
34
+ <br>
35
+ An <a href="https://www.networktocode.com/nautobot/apps/">App</a> for <a href="https://nautobot.com/">Nautobot</a>.
36
+ </p>
37
+
38
+ ## Overview
39
+
40
+ The DNS models app adds specific DNS related models for managing DNS zones and records to Nautobot. The goal is to be able to manage a DNS configuration for a zone or sub-zone. These models can then be leveraged with 3rd party IPAM or DNS services in line with the rest of your network data.
41
+
42
+ ### Screenshots
43
+
44
+ More screenshots can be found in the [Using the App](https://docs.nautobot.com/projects/dns-models/en/latest/user/app_use_cases/) page in the documentation. Here's a quick overview of some of the app's added functionality:
45
+
46
+ ![Zone List View](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/readme-1.png)
47
+
48
+ ![Adding a DNS Zone](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/getting_started-add-zone-3.png)
49
+
50
+ Adding a DNS Zone
51
+
52
+ ![DNS Zone View](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/getting_started-add-record-3.png)
53
+
54
+ The DNS Zone View
55
+
56
+ ## Documentation
57
+
58
+ Full documentation for this App can be found over on the [Nautobot Docs](https://docs.nautobot.com) website:
59
+
60
+ - [User Guide](https://docs.nautobot.com/projects/dns-models/en/latest/user/app_overview/) - Overview, Using the App, Getting Started.
61
+ - [Administrator Guide](https://docs.nautobot.com/projects/dns-models/en/latest/admin/install/) - How to Install, Configure, Upgrade, or Uninstall the App.
62
+ - [Developer Guide](https://docs.nautobot.com/projects/dns-models/en/latest/dev/contributing/) - Extending the App, Code Reference, Contribution Guide.
63
+ - [Release Notes / Changelog](https://docs.nautobot.com/projects/dns-models/en/latest/admin/release_notes/).
64
+ - [Frequently Asked Questions](https://docs.nautobot.com/projects/dns-models/en/latest/user/faq/).
65
+
66
+ ### Contributing to the Documentation
67
+
68
+ You can find all the Markdown source for the App documentation under the [`docs`](https://github.com/nautobot/nautobot-app-dns-models/tree/develop/docs) folder in this repository. For simple edits, a Markdown capable editor is sufficient: clone the repository and edit away.
69
+
70
+ If you need to view the fully-generated documentation site, you can build it with [MkDocs](https://www.mkdocs.org/). A container hosting the documentation can be started using the `invoke` commands (details in the [Development Environment Guide](https://docs.nautobot.com/projects/dns-models/en/latest/dev/dev_environment/#docker-development-environment)) on [http://localhost:8001](http://localhost:8001). Using this container, as your changes to the documentation are saved, they will be automatically rebuilt and any pages currently being viewed will be reloaded in your browser.
71
+
72
+ Any PRs with fixes or improvements are very welcome!
73
+
74
+ ## Questions
75
+
76
+ For any questions or comments, please check the [FAQ](https://docs.nautobot.com/projects/dns-models/en/latest/user/faq/) first. Feel free to also swing by the [Network to Code Slack](https://networktocode.slack.com/) (channel `#nautobot`), sign up [here](http://slack.networktocode.com/) if you don't have an account.
77
+
@@ -0,0 +1,52 @@
1
+ # Nautobot DNS Models
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/icon-nautobot-dns-models.png" class="logo" height="200px">
5
+ <br>
6
+ <a href="https://github.com/nautobot/nautobot-app-dns-models/actions"><img src="https://github.com/nautobot/nautobot-app-dns-models/actions/workflows/ci.yml/badge.svg?branch=main"></a>
7
+ <a href="https://docs.nautobot.com/projects/dns-models/en/latest"><img src="https://readthedocs.org/projects/nautobot-app-dns-models/badge/"></a>
8
+ <a href="https://pypi.org/project/nautobot-dns-models/"><img src="https://img.shields.io/pypi/v/nautobot-dns-models"></a>
9
+ <a href="https://pypi.org/project/nautobot-dns-models/"><img src="https://img.shields.io/pypi/dm/nautobot-dns-models"></a>
10
+ <br>
11
+ An <a href="https://www.networktocode.com/nautobot/apps/">App</a> for <a href="https://nautobot.com/">Nautobot</a>.
12
+ </p>
13
+
14
+ ## Overview
15
+
16
+ The DNS models app adds specific DNS related models for managing DNS zones and records to Nautobot. The goal is to be able to manage a DNS configuration for a zone or sub-zone. These models can then be leveraged with 3rd party IPAM or DNS services in line with the rest of your network data.
17
+
18
+ ### Screenshots
19
+
20
+ More screenshots can be found in the [Using the App](https://docs.nautobot.com/projects/dns-models/en/latest/user/app_use_cases/) page in the documentation. Here's a quick overview of some of the app's added functionality:
21
+
22
+ ![Zone List View](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/readme-1.png)
23
+
24
+ ![Adding a DNS Zone](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/getting_started-add-zone-3.png)
25
+
26
+ Adding a DNS Zone
27
+
28
+ ![DNS Zone View](https://raw.githubusercontent.com/nautobot/nautobot-app-dns-models/develop/docs/images/getting_started-add-record-3.png)
29
+
30
+ The DNS Zone View
31
+
32
+ ## Documentation
33
+
34
+ Full documentation for this App can be found over on the [Nautobot Docs](https://docs.nautobot.com) website:
35
+
36
+ - [User Guide](https://docs.nautobot.com/projects/dns-models/en/latest/user/app_overview/) - Overview, Using the App, Getting Started.
37
+ - [Administrator Guide](https://docs.nautobot.com/projects/dns-models/en/latest/admin/install/) - How to Install, Configure, Upgrade, or Uninstall the App.
38
+ - [Developer Guide](https://docs.nautobot.com/projects/dns-models/en/latest/dev/contributing/) - Extending the App, Code Reference, Contribution Guide.
39
+ - [Release Notes / Changelog](https://docs.nautobot.com/projects/dns-models/en/latest/admin/release_notes/).
40
+ - [Frequently Asked Questions](https://docs.nautobot.com/projects/dns-models/en/latest/user/faq/).
41
+
42
+ ### Contributing to the Documentation
43
+
44
+ You can find all the Markdown source for the App documentation under the [`docs`](https://github.com/nautobot/nautobot-app-dns-models/tree/develop/docs) folder in this repository. For simple edits, a Markdown capable editor is sufficient: clone the repository and edit away.
45
+
46
+ If you need to view the fully-generated documentation site, you can build it with [MkDocs](https://www.mkdocs.org/). A container hosting the documentation can be started using the `invoke` commands (details in the [Development Environment Guide](https://docs.nautobot.com/projects/dns-models/en/latest/dev/dev_environment/#docker-development-environment)) on [http://localhost:8001](http://localhost:8001). Using this container, as your changes to the documentation are saved, they will be automatically rebuilt and any pages currently being viewed will be reloaded in your browser.
47
+
48
+ Any PRs with fixes or improvements are very welcome!
49
+
50
+ ## Questions
51
+
52
+ For any questions or comments, please check the [FAQ](https://docs.nautobot.com/projects/dns-models/en/latest/user/faq/) first. Feel free to also swing by the [Network to Code Slack](https://networktocode.slack.com/) (channel `#nautobot`), sign up [here](http://slack.networktocode.com/) if you don't have an account.
@@ -0,0 +1,32 @@
1
+ """Plugin declaration for nautobot_dns_models."""
2
+
3
+ # Metadata is inherited from Nautobot. If not including Nautobot in the environment, this should be added
4
+ try:
5
+ from importlib import metadata
6
+ except ImportError:
7
+ # Python version < 3.8
8
+ import importlib_metadata as metadata
9
+
10
+ __version__ = metadata.version(__name__)
11
+
12
+ from nautobot.apps import NautobotAppConfig
13
+
14
+
15
+ class NautobotDnsModelsConfig(NautobotAppConfig):
16
+ """Plugin configuration for the nautobot_dns_models plugin."""
17
+
18
+ name = "nautobot_dns_models"
19
+ verbose_name = "Nautobot DNS Models"
20
+ version = __version__
21
+ author = "Network to Code, LLC"
22
+ description = "Nautobot DNS Models."
23
+ base_url = "dns"
24
+ required_settings = []
25
+ min_version = "2.4.0"
26
+ max_version = "2.9999"
27
+ default_settings = {}
28
+ caching_config = {}
29
+ docs_view_name = "plugins:nautobot_dns_models:docs"
30
+
31
+
32
+ config = NautobotDnsModelsConfig # pylint:disable=invalid-name
@@ -0,0 +1 @@
1
+ """REST API module for nautobot_dns_models app."""
@@ -0,0 +1,126 @@
1
+ """API serializers for nautobot_dns_models."""
2
+
3
+ from nautobot.apps.api import NautobotModelSerializer
4
+ from rest_framework import serializers
5
+
6
+ from nautobot_dns_models import models
7
+
8
+
9
+ class DNSZoneModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
10
+ """DnsZoneModel Serializer."""
11
+
12
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:dnszonemodel-detail")
13
+
14
+ class Meta:
15
+ """Meta attributes."""
16
+
17
+ model = models.DNSZoneModel
18
+ fields = "__all__"
19
+
20
+ # Option for disabling write for certain fields:
21
+ # read_only_fields = []
22
+
23
+
24
+ class NSRecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
25
+ """NSRecordModel Serializer."""
26
+
27
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:nsrecordmodel-detail")
28
+
29
+ class Meta:
30
+ """Meta attributes."""
31
+
32
+ model = models.NSRecordModel
33
+ fields = "__all__"
34
+
35
+ # Option for disabling write for certain fields:
36
+ # read_only_fields = []
37
+
38
+
39
+ class ARecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
40
+ """ARecordModel Serializer."""
41
+
42
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:arecordmodel-detail")
43
+
44
+ class Meta:
45
+ """Meta attributes."""
46
+
47
+ model = models.ARecordModel
48
+ fields = "__all__"
49
+
50
+ # Option for disabling write for certain fields:
51
+ # read_only_fields = []
52
+
53
+
54
+ class AAAARecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
55
+ """AAAARecordModel Serializer."""
56
+
57
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:aaaarecordmodel-detail")
58
+
59
+ class Meta:
60
+ """Meta attributes."""
61
+
62
+ model = models.AAAARecordModel
63
+ fields = "__all__"
64
+
65
+ # Option for disabling write for certain fields:
66
+ # read_only_fields = []
67
+
68
+
69
+ class CNAMERecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
70
+ """CNAMERecordModel Serializer."""
71
+
72
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:cnamerecordmodel-detail")
73
+
74
+ class Meta:
75
+ """Meta attributes."""
76
+
77
+ model = models.CNAMERecordModel
78
+ fields = "__all__"
79
+
80
+ # Option for disabling write for certain fields:
81
+ # read_only_fields = []
82
+
83
+
84
+ class MXRecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
85
+ """MXRecordModel Serializer."""
86
+
87
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:mxrecordmodel-detail")
88
+
89
+ class Meta:
90
+ """Meta attributes."""
91
+
92
+ model = models.MXRecordModel
93
+ fields = "__all__"
94
+
95
+ # Option for disabling write for certain fields:
96
+ # read_only_fields = []
97
+
98
+
99
+ class TXTRecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
100
+ """TXTRecordModel Serializer."""
101
+
102
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:txtrecordmodel-detail")
103
+
104
+ class Meta:
105
+ """Meta attributes."""
106
+
107
+ model = models.TXTRecordModel
108
+ fields = "__all__"
109
+
110
+ # Option for disabling write for certain fields:
111
+ # read_only_fields = []
112
+
113
+
114
+ class PTRRecordModelSerializer(NautobotModelSerializer): # pylint: disable=too-many-ancestors
115
+ """PTRRecordModel Serializer."""
116
+
117
+ url = serializers.HyperlinkedIdentityField(view_name="plugins-api:nautobot_dns_models-api:ptrrecordmodel-detail")
118
+
119
+ class Meta:
120
+ """Meta attributes."""
121
+
122
+ model = models.PTRRecordModel
123
+ fields = "__all__"
124
+
125
+ # Option for disabling write for certain fields:
126
+ # read_only_fields = []
@@ -0,0 +1,18 @@
1
+ """Django API urlpatterns declaration for nautobot_dns_models plugin."""
2
+
3
+ from nautobot.apps.api import OrderedDefaultRouter
4
+
5
+ from nautobot_dns_models.api import views
6
+
7
+ router = OrderedDefaultRouter()
8
+ # add the name of your api endpoint, usually hyphenated model name in plural, e.g. "my-model-classes"
9
+ router.register("dns-zones", views.DNSZoneModelViewSet)
10
+ router.register("ns-records", views.NSRecordModelViewSet)
11
+ router.register("a-records", views.ARecordModelViewSet)
12
+ router.register("aaaa-records", views.AAAARecordModelViewSet)
13
+ router.register("cname-records", views.CNameRecordModelViewSet)
14
+ router.register("mx-records", views.MXRecordModelViewSet)
15
+ router.register("txt-records", views.TXTRecordModelViewSet)
16
+ router.register("ptr-records", views.PTRRecordModelViewSet)
17
+
18
+ urlpatterns = router.urls
@@ -0,0 +1,116 @@
1
+ """API views for nautobot_dns_models."""
2
+
3
+ from nautobot.apps.api import NautobotModelViewSet
4
+
5
+ from nautobot_dns_models.api.serializers import (
6
+ AAAARecordModelSerializer,
7
+ ARecordModelSerializer,
8
+ CNAMERecordModelSerializer,
9
+ DNSZoneModelSerializer,
10
+ MXRecordModelSerializer,
11
+ NSRecordModelSerializer,
12
+ PTRRecordModelSerializer,
13
+ TXTRecordModelSerializer,
14
+ )
15
+ from nautobot_dns_models.filters import (
16
+ AAAARecordModelFilterSet,
17
+ ARecordModelFilterSet,
18
+ CNAMERecordModelFilterSet,
19
+ DNSZoneModelFilterSet,
20
+ MXRecordModelFilterSet,
21
+ NSRecordModelFilterSet,
22
+ PTRRecordModelFilterSet,
23
+ TXTRecordModelFilterSet,
24
+ )
25
+ from nautobot_dns_models.models import (
26
+ AAAARecordModel,
27
+ ARecordModel,
28
+ CNAMERecordModel,
29
+ DNSZoneModel,
30
+ MXRecordModel,
31
+ NSRecordModel,
32
+ PTRRecordModel,
33
+ TXTRecordModel,
34
+ )
35
+
36
+
37
+ class DNSZoneModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
38
+ """DnsZoneModel API ViewSet."""
39
+
40
+ queryset = DNSZoneModel.objects.all()
41
+ serializer_class = DNSZoneModelSerializer
42
+ filterset_class = DNSZoneModelFilterSet
43
+
44
+ lookup_field = "pk"
45
+ # Option for modifying the default HTTP methods:
46
+ # http_method_names = ["get", "post", "put", "patch", "delete", "head", "options", "trace"]
47
+
48
+
49
+ class NSRecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
50
+ """NSRecordModel API ViewSet."""
51
+
52
+ queryset = NSRecordModel.objects.all()
53
+ serializer_class = NSRecordModelSerializer
54
+ filterset_class = NSRecordModelFilterSet
55
+
56
+ lookup_field = "pk"
57
+
58
+
59
+ class ARecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
60
+ """ARecordModel API ViewSet."""
61
+
62
+ queryset = ARecordModel.objects.all()
63
+ serializer_class = ARecordModelSerializer
64
+ filterset_class = ARecordModelFilterSet
65
+
66
+ lookup_field = "pk"
67
+
68
+
69
+ class AAAARecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
70
+ """AAAARecordModel API ViewSet."""
71
+
72
+ queryset = AAAARecordModel.objects.all()
73
+ serializer_class = AAAARecordModelSerializer
74
+ filterset_class = AAAARecordModelFilterSet
75
+
76
+ lookup_field = "pk"
77
+
78
+
79
+ class CNameRecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
80
+ """CNameRecordModel API ViewSet."""
81
+
82
+ queryset = CNAMERecordModel.objects.all()
83
+ serializer_class = CNAMERecordModelSerializer
84
+ filterset_class = CNAMERecordModelFilterSet
85
+
86
+ lookup_field = "pk"
87
+
88
+
89
+ class MXRecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
90
+ """MXRecordModel API ViewSet."""
91
+
92
+ queryset = MXRecordModel.objects.all()
93
+ serializer_class = MXRecordModelSerializer
94
+ filterset_class = MXRecordModelFilterSet
95
+
96
+ lookup_field = "pk"
97
+
98
+
99
+ class TXTRecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
100
+ """TXTRecordModel API ViewSet."""
101
+
102
+ queryset = TXTRecordModel.objects.all()
103
+ serializer_class = TXTRecordModelSerializer
104
+ filterset_class = TXTRecordModelFilterSet
105
+
106
+ lookup_field = "pk"
107
+
108
+
109
+ class PTRRecordModelViewSet(NautobotModelViewSet): # pylint: disable=too-many-ancestors
110
+ """PTRRecordModel API ViewSet."""
111
+
112
+ queryset = PTRRecordModel.objects.all()
113
+ serializer_class = PTRRecordModelSerializer
114
+ filterset_class = PTRRecordModelFilterSet
115
+
116
+ lookup_field = "pk"
@@ -0,0 +1,85 @@
1
+ """Filtering for nautobot_dns_models."""
2
+
3
+ from nautobot.extras.filters import NautobotFilterSet
4
+
5
+ from nautobot_dns_models import models
6
+
7
+
8
+ class DNSZoneModelFilterSet(NautobotFilterSet):
9
+ """Filter for DNSZoneModel."""
10
+
11
+ class Meta:
12
+ """Meta attributes for filter."""
13
+
14
+ model = models.DNSZoneModel
15
+ fields = "__all__"
16
+
17
+
18
+ class NSRecordModelFilterSet(NautobotFilterSet):
19
+ """Filter for NSRecordModel."""
20
+
21
+ class Meta:
22
+ """Meta attributes for filter."""
23
+
24
+ model = models.NSRecordModel
25
+ fields = "__all__"
26
+
27
+
28
+ class ARecordModelFilterSet(NautobotFilterSet):
29
+ """Filter for ARecordModel."""
30
+
31
+ class Meta:
32
+ """Meta attributes for filter."""
33
+
34
+ model = models.ARecordModel
35
+ fields = "__all__"
36
+
37
+
38
+ class AAAARecordModelFilterSet(NautobotFilterSet):
39
+ """Filter for AAAARecordModel."""
40
+
41
+ class Meta:
42
+ """Meta attributes for filter."""
43
+
44
+ model = models.AAAARecordModel
45
+ fields = "__all__"
46
+
47
+
48
+ class CNAMERecordModelFilterSet(NautobotFilterSet):
49
+ """Filter for CNAMERecordModel."""
50
+
51
+ class Meta:
52
+ """Meta attributes for filter."""
53
+
54
+ model = models.CNAMERecordModel
55
+ fields = "__all__"
56
+
57
+
58
+ class MXRecordModelFilterSet(NautobotFilterSet):
59
+ """Filter for MXRecordModel."""
60
+
61
+ class Meta:
62
+ """Meta attributes for filter."""
63
+
64
+ model = models.MXRecordModel
65
+ fields = "__all__"
66
+
67
+
68
+ class TXTRecordModelFilterSet(NautobotFilterSet):
69
+ """Filter for TXTRecordModel."""
70
+
71
+ class Meta:
72
+ """Meta attributes for filter."""
73
+
74
+ model = models.TXTRecordModel
75
+ fields = "__all__"
76
+
77
+
78
+ class PTRRecordModelFilterSet(NautobotFilterSet):
79
+ """Filter for PTRRecordModel."""
80
+
81
+ class Meta:
82
+ """Meta attributes for filter."""
83
+
84
+ model = models.PTRRecordModel
85
+ fields = "__all__"