nautobot 2.4.13__py3-none-any.whl → 2.4.14__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 (356) hide show
  1. nautobot/core/graphql/generators.py +8 -0
  2. nautobot/core/graphql/schema.py +30 -30
  3. nautobot/core/management/commands/migrate.py +90 -1
  4. nautobot/core/settings.yaml +3 -3
  5. nautobot/core/tables.py +4 -4
  6. nautobot/core/testing/api.py +7 -0
  7. nautobot/core/views/utils.py +1 -1
  8. nautobot/dcim/choices.py +2 -0
  9. nautobot/dcim/constants.py +0 -16
  10. nautobot/dcim/factory.py +1 -1
  11. nautobot/dcim/templates/dcim/rack.html +2 -318
  12. nautobot/dcim/templates/dcim/rack_edit.html +2 -47
  13. nautobot/dcim/templates/dcim/rack_retrieve.html +318 -0
  14. nautobot/dcim/templates/dcim/rack_update.html +47 -0
  15. nautobot/dcim/urls.py +2 -27
  16. nautobot/dcim/utils.py +4 -30
  17. nautobot/dcim/views.py +38 -69
  18. nautobot/extras/choices.py +12 -4
  19. nautobot/extras/filters/mixins.py +8 -6
  20. nautobot/extras/forms/forms.py +9 -0
  21. nautobot/extras/forms/mixins.py +4 -2
  22. nautobot/extras/migrations/0062_collect_roles_from_related_apps_roles.py +30 -7
  23. nautobot/extras/migrations/0124_add_joblogentry_index.py +16 -0
  24. nautobot/extras/models/customfields.py +52 -3
  25. nautobot/extras/models/jobs.py +6 -0
  26. nautobot/extras/models/relationships.py +55 -6
  27. nautobot/extras/templates/extras/graphqlquery.html +2 -97
  28. nautobot/extras/templates/extras/graphqlquery_list.html +1 -0
  29. nautobot/extras/templates/extras/graphqlquery_retrieve.html +97 -0
  30. nautobot/extras/templates/extras/secretsgroup.html +2 -29
  31. nautobot/extras/templates/extras/secretsgroup_edit.html +2 -82
  32. nautobot/extras/templates/extras/secretsgroup_retrieve.html +29 -0
  33. nautobot/extras/templates/extras/secretsgroup_update.html +82 -0
  34. nautobot/extras/tests/test_customfields.py +115 -7
  35. nautobot/extras/tests/test_relationships.py +7 -1
  36. nautobot/extras/tests/test_views.py +113 -1
  37. nautobot/extras/urls.py +2 -51
  38. nautobot/extras/utils.py +4 -1
  39. nautobot/extras/views.py +39 -133
  40. nautobot/ipam/api/views.py +69 -6
  41. nautobot/ipam/tests/test_api.py +350 -0
  42. nautobot/project-static/docs/404.html +11 -34
  43. nautobot/project-static/docs/apps/index.html +11 -34
  44. nautobot/project-static/docs/apps/nautobot-apps.html +11 -34
  45. nautobot/project-static/docs/assets/javascripts/{bundle.56ea9cef.min.js → bundle.50899def.min.js} +2 -2
  46. nautobot/project-static/docs/assets/javascripts/{bundle.56ea9cef.min.js.map → bundle.50899def.min.js.map} +2 -2
  47. nautobot/project-static/docs/assets/stylesheets/{main.342714a4.min.css → main.7e37652d.min.css} +1 -1
  48. nautobot/project-static/docs/assets/stylesheets/{main.342714a4.min.css.map → main.7e37652d.min.css.map} +1 -1
  49. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +11 -34
  50. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +11 -34
  51. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +11 -34
  52. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +11 -34
  53. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +11 -34
  54. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +11 -34
  55. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +11 -34
  56. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +11 -34
  57. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +11 -34
  58. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +11 -34
  59. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +11 -34
  60. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +11 -34
  61. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +11 -34
  62. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +11 -34
  63. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +11 -34
  64. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +11 -34
  65. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +11 -34
  66. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +11 -34
  67. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +11 -34
  68. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +11 -34
  69. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +11 -34
  70. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +11 -34
  71. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +11 -34
  72. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +11 -34
  73. nautobot/project-static/docs/development/apps/api/configuration-view.html +11 -34
  74. nautobot/project-static/docs/development/apps/api/database-backend-config.html +11 -34
  75. nautobot/project-static/docs/development/apps/api/models/django-admin.html +11 -34
  76. nautobot/project-static/docs/development/apps/api/models/global-search.html +11 -34
  77. nautobot/project-static/docs/development/apps/api/models/graphql.html +11 -34
  78. nautobot/project-static/docs/development/apps/api/models/index.html +11 -34
  79. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +11 -34
  80. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +11 -34
  81. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +11 -34
  82. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +11 -34
  83. nautobot/project-static/docs/development/apps/api/platform-features/index.html +11 -34
  84. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +11 -34
  85. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +11 -34
  86. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +11 -34
  87. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +11 -34
  88. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +11 -34
  89. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +11 -34
  90. nautobot/project-static/docs/development/apps/api/prometheus.html +11 -34
  91. nautobot/project-static/docs/development/apps/api/setup.html +11 -34
  92. nautobot/project-static/docs/development/apps/api/testing.html +11 -34
  93. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +11 -34
  94. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +11 -34
  95. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +11 -34
  96. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +11 -34
  97. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +11 -34
  98. nautobot/project-static/docs/development/apps/api/views/base-template.html +11 -34
  99. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +11 -34
  100. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +11 -34
  101. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +11 -34
  102. nautobot/project-static/docs/development/apps/api/views/index.html +11 -34
  103. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +11 -34
  104. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +11 -34
  105. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +11 -34
  106. nautobot/project-static/docs/development/apps/api/views/notes.html +11 -34
  107. nautobot/project-static/docs/development/apps/api/views/rest-api.html +11 -34
  108. nautobot/project-static/docs/development/apps/api/views/urls.html +11 -34
  109. nautobot/project-static/docs/development/apps/index.html +11 -34
  110. nautobot/project-static/docs/development/apps/migration/code-updates.html +11 -34
  111. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +11 -34
  112. nautobot/project-static/docs/development/apps/migration/from-v1.html +11 -34
  113. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +11 -34
  114. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +11 -34
  115. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +11 -34
  116. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +11 -34
  117. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +11 -34
  118. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +11 -34
  119. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +11 -34
  120. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +11 -34
  121. nautobot/project-static/docs/development/apps/porting-from-netbox.html +11 -34
  122. nautobot/project-static/docs/development/core/application-registry.html +139 -133
  123. nautobot/project-static/docs/development/core/best-practices.html +11 -34
  124. nautobot/project-static/docs/development/core/bootstrap-ui.html +11 -34
  125. nautobot/project-static/docs/development/core/caching.html +11 -34
  126. nautobot/project-static/docs/development/core/controllers.html +11 -34
  127. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +11 -34
  128. nautobot/project-static/docs/development/core/generic-views.html +11 -34
  129. nautobot/project-static/docs/development/core/getting-started.html +11 -34
  130. nautobot/project-static/docs/development/core/homepage.html +11 -34
  131. nautobot/project-static/docs/development/core/index.html +11 -34
  132. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +11 -34
  133. nautobot/project-static/docs/development/core/model-checklist.html +11 -34
  134. nautobot/project-static/docs/development/core/model-features.html +11 -34
  135. nautobot/project-static/docs/development/core/natural-keys.html +11 -34
  136. nautobot/project-static/docs/development/core/navigation-menu.html +11 -34
  137. nautobot/project-static/docs/development/core/release-checklist.html +11 -34
  138. nautobot/project-static/docs/development/core/role-internals.html +11 -34
  139. nautobot/project-static/docs/development/core/settings.html +11 -34
  140. nautobot/project-static/docs/development/core/style-guide.html +11 -34
  141. nautobot/project-static/docs/development/core/templates.html +11 -34
  142. nautobot/project-static/docs/development/core/testing.html +11 -34
  143. nautobot/project-static/docs/development/core/ui-component-framework.html +11 -34
  144. nautobot/project-static/docs/development/core/user-preferences.html +11 -34
  145. nautobot/project-static/docs/development/index.html +11 -34
  146. nautobot/project-static/docs/development/jobs/getting-started.html +11 -34
  147. nautobot/project-static/docs/development/jobs/index.html +11 -34
  148. nautobot/project-static/docs/development/jobs/installation.html +11 -34
  149. nautobot/project-static/docs/development/jobs/job-extensions.html +11 -34
  150. nautobot/project-static/docs/development/jobs/job-logging.html +11 -34
  151. nautobot/project-static/docs/development/jobs/job-patterns.html +11 -34
  152. nautobot/project-static/docs/development/jobs/job-structure.html +11 -34
  153. nautobot/project-static/docs/development/jobs/migration/from-v1.html +11 -34
  154. nautobot/project-static/docs/development/jobs/testing.html +11 -34
  155. nautobot/project-static/docs/index.html +11 -34
  156. nautobot/project-static/docs/overview/application_stack.html +11 -34
  157. nautobot/project-static/docs/overview/design_philosophy.html +11 -34
  158. nautobot/project-static/docs/release-notes/index.html +11 -34
  159. nautobot/project-static/docs/release-notes/version-1.0.html +11 -34
  160. nautobot/project-static/docs/release-notes/version-1.1.html +11 -34
  161. nautobot/project-static/docs/release-notes/version-1.2.html +11 -34
  162. nautobot/project-static/docs/release-notes/version-1.3.html +11 -34
  163. nautobot/project-static/docs/release-notes/version-1.4.html +11 -34
  164. nautobot/project-static/docs/release-notes/version-1.5.html +11 -34
  165. nautobot/project-static/docs/release-notes/version-1.6.html +11 -34
  166. nautobot/project-static/docs/release-notes/version-2.0.html +11 -34
  167. nautobot/project-static/docs/release-notes/version-2.1.html +11 -34
  168. nautobot/project-static/docs/release-notes/version-2.2.html +11 -34
  169. nautobot/project-static/docs/release-notes/version-2.3.html +11 -34
  170. nautobot/project-static/docs/release-notes/version-2.4.html +171 -34
  171. nautobot/project-static/docs/requirements.txt +1 -1
  172. nautobot/project-static/docs/search/search_index.json +1 -1
  173. nautobot/project-static/docs/sitemap.xml +299 -299
  174. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  175. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +11 -34
  176. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +11 -34
  177. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +11 -34
  178. nautobot/project-static/docs/user-guide/administration/configuration/index.html +11 -34
  179. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +11 -34
  180. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +14 -37
  181. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +11 -34
  182. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +11 -34
  183. nautobot/project-static/docs/user-guide/administration/guides/docker.html +11 -34
  184. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +11 -34
  185. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +11 -34
  186. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +11 -34
  187. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +11 -34
  188. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +11 -34
  189. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +11 -34
  190. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +11 -34
  191. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +11 -34
  192. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +11 -34
  193. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +11 -34
  194. nautobot/project-static/docs/user-guide/administration/installation/index.html +11 -34
  195. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +11 -34
  196. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +11 -34
  197. nautobot/project-static/docs/user-guide/administration/installation/services.html +11 -34
  198. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +11 -34
  199. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +11 -34
  200. nautobot/project-static/docs/user-guide/administration/security/index.html +11 -34
  201. nautobot/project-static/docs/user-guide/administration/security/notices.html +11 -34
  202. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +19 -39
  203. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +11 -34
  204. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +11 -34
  205. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +11 -34
  206. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +11 -34
  207. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +11 -34
  208. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +11 -34
  209. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +11 -34
  210. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +11 -34
  211. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +11 -34
  212. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +11 -34
  213. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +11 -34
  214. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +11 -34
  215. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +11 -34
  216. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +11 -34
  217. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +11 -34
  218. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +11 -34
  219. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +11 -34
  220. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +11 -34
  221. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +11 -34
  222. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +11 -34
  223. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +11 -34
  224. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +11 -34
  225. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +11 -34
  226. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +11 -34
  227. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +11 -34
  228. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +11 -34
  229. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +11 -34
  230. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +11 -34
  231. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +11 -34
  232. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +11 -34
  233. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +11 -34
  234. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +11 -34
  235. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +11 -34
  236. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +11 -34
  237. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +11 -34
  238. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +11 -34
  239. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +11 -34
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +14 -37
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +11 -34
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +11 -34
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +19 -52
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +11 -34
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +11 -34
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +11 -34
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +11 -34
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +14 -37
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +11 -34
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulefamily.html +11 -34
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +11 -34
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +11 -34
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +11 -34
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +11 -34
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +11 -34
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +11 -34
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +11 -34
  258. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +11 -34
  259. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +11 -34
  260. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +11 -34
  261. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +11 -34
  262. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +11 -34
  263. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +11 -34
  264. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +11 -34
  265. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +11 -34
  266. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +11 -34
  267. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +11 -34
  268. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +11 -34
  269. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +11 -34
  270. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +11 -34
  271. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +11 -34
  272. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +11 -34
  273. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +11 -34
  274. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +11 -34
  275. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +11 -34
  276. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +11 -34
  277. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +11 -34
  278. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +11 -34
  279. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +11 -34
  280. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +11 -34
  281. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +11 -34
  282. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +11 -34
  283. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +11 -34
  284. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +11 -34
  285. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +11 -34
  286. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +11 -34
  287. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +11 -34
  288. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +11 -34
  289. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +11 -34
  290. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +11 -34
  291. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +11 -34
  292. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +11 -34
  293. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +11 -34
  294. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +11 -34
  295. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +11 -34
  296. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +11 -34
  297. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +11 -34
  298. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +11 -34
  299. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +11 -34
  300. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +11 -34
  301. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +11 -34
  302. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +11 -34
  303. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +11 -34
  304. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +11 -34
  305. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +11 -34
  306. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +11 -34
  307. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +11 -34
  308. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +11 -34
  309. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +11 -34
  310. nautobot/project-static/docs/user-guide/index.html +11 -34
  311. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +11 -34
  312. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +11 -34
  313. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +11 -34
  314. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +11 -34
  315. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +11 -34
  316. nautobot/project-static/docs/user-guide/platform-functionality/events.html +11 -34
  317. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +11 -34
  318. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +11 -34
  319. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +11 -34
  320. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +11 -34
  321. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +11 -34
  322. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +11 -34
  323. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +11 -34
  324. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +11 -34
  325. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +11 -34
  326. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +11 -34
  327. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +11 -34
  328. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +11 -34
  329. nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +11 -34
  330. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +11 -34
  331. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +11 -34
  332. nautobot/project-static/docs/user-guide/platform-functionality/note.html +11 -34
  333. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +11 -34
  334. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +11 -34
  335. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +11 -34
  336. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +11 -34
  337. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +11 -34
  338. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +11 -34
  339. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +11 -34
  340. nautobot/project-static/docs/user-guide/platform-functionality/role.html +11 -34
  341. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +11 -34
  342. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +11 -34
  343. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +11 -34
  344. nautobot/project-static/docs/user-guide/platform-functionality/status.html +11 -34
  345. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +11 -34
  346. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +11 -34
  347. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +11 -34
  348. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +11 -34
  349. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +11 -34
  350. nautobot/tenancy/api/views.py +2 -1
  351. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/METADATA +5 -5
  352. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/RECORD +356 -349
  353. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/LICENSE.txt +0 -0
  354. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/NOTICE +0 -0
  355. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/WHEEL +0 -0
  356. {nautobot-2.4.13.dist-info → nautobot-2.4.14.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.15">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.16">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
29
+ <link rel="stylesheet" href="../../assets/stylesheets/main.7e37652d.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20448%20512%22%3E%3C%21--%21%20Font%20Awesome%20Free%206.7.2%20by%20%40fontawesome%20-%20https%3A//fontawesome.com%20License%20-%20https%3A//fontawesome.com/license/free%20%28Icons%3A%20CC%20BY%204.0%2C%20Fonts%3A%20SIL%20OFL%201.1%2C%20Code%3A%20MIT%20License%29%20Copyright%202024%20Fonticons%2C%20Inc.--%3E%3Cpath%20d%3D%22M288%200H128c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032v132.8c0%2011.8-3.3%2023.5-9.5%2033.5L10.3%20406.2C3.6%20417.2%200%20429.7%200%20442.6%200%20480.9%2031.1%20512%2069.4%20512h309.2c38.3%200%2069.4-31.1%2069.4-69.4%200-12.8-3.6-25.4-10.3-36.4L329.5%20230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7%200%2032-14.3%2032-32S337.7%200%20320%200zm-96%20196.8V64h64v132.8c0%2023.7%206.6%2046.9%2019%2067.1l34.5%2056.1h-171l34.5-56.1c12.4-20.2%2019-43.4%2019-67.1%22/%3E%3C/svg%3E');}</style>
41
+ <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20448%20512%22%3E%3C%21--%21%20Font%20Awesome%20Free%207.0.0%20by%20%40fontawesome%20-%20https%3A//fontawesome.com%20License%20-%20https%3A//fontawesome.com/license/free%20%28Icons%3A%20CC%20BY%204.0%2C%20Fonts%3A%20SIL%20OFL%201.1%2C%20Code%3A%20MIT%20License%29%20Copyright%202025%20Fonticons%2C%20Inc.--%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M288%200H128c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032v151.5L7.5%20426.3C2.6%20435%200%20444.7%200%20454.7%200%20486.4%2025.6%20512%2057.3%20512h333.4c31.6%200%2057.3-25.6%2057.3-57.3%200-10-2.6-19.8-7.5-28.4L320%20215.5V64c17.7%200%2032-14.3%2032-32S337.7%200%20320%200zm-96%20215.5V64h64v151.5c0%2011.1%202.9%2022.1%208.4%2031.8L306%20320H142l41.6-72.7c5.5-9.7%208.4-20.6%208.4-31.8%22/%3E%3C/svg%3E');}</style>
42
42
 
43
43
 
44
44
 
@@ -220,7 +220,7 @@
220
220
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
221
221
  <div class="md-source__icon md-icon">
222
222
 
223
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
223
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
224
224
  </div>
225
225
  <div class="md-source__repository">
226
226
  GitHub
@@ -392,7 +392,7 @@
392
392
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
393
393
  <div class="md-source__icon md-icon">
394
394
 
395
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
395
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
396
396
  </div>
397
397
  <div class="md-source__repository">
398
398
  GitHub
@@ -4004,29 +4004,6 @@
4004
4004
 
4005
4005
 
4006
4006
 
4007
- <li class="md-nav__item">
4008
- <a href="../../user-guide/core-data-model/dcim/inventoryitem.html" class="md-nav__link">
4009
-
4010
-
4011
-
4012
- <span class="md-ellipsis">
4013
- Inventory Item
4014
-
4015
- </span>
4016
-
4017
-
4018
- </a>
4019
- </li>
4020
-
4021
-
4022
-
4023
-
4024
-
4025
-
4026
-
4027
-
4028
-
4029
-
4030
4007
  <li class="md-nav__item">
4031
4008
  <a href="../../user-guide/core-data-model/dcim/modulebay.html" class="md-nav__link">
4032
4009
 
@@ -8993,6 +8970,15 @@
8993
8970
  </span>
8994
8971
  </a>
8995
8972
 
8973
+ </li>
8974
+
8975
+ <li class="md-nav__item">
8976
+ <a href="#feature_models" class="md-nav__link">
8977
+ <span class="md-ellipsis">
8978
+ feature_models
8979
+ </span>
8980
+ </a>
8981
+
8996
8982
  </li>
8997
8983
 
8998
8984
  <li class="md-nav__item">
@@ -10231,6 +10217,15 @@
10231
10217
  </span>
10232
10218
  </a>
10233
10219
 
10220
+ </li>
10221
+
10222
+ <li class="md-nav__item">
10223
+ <a href="#feature_models" class="md-nav__link">
10224
+ <span class="md-ellipsis">
10225
+ feature_models
10226
+ </span>
10227
+ </a>
10228
+
10234
10229
  </li>
10235
10230
 
10236
10231
  <li class="md-nav__item">
@@ -10382,119 +10377,130 @@
10382
10377
  <a id="__codelineno-2-29" name="__codelineno-2-29" href="#__codelineno-2-29"></a> <span class="p">}</span>
10383
10378
  <a id="__codelineno-2-30" name="__codelineno-2-30" href="#__codelineno-2-30"></a><span class="p">}</span>
10384
10379
  </code></pre></div>
10380
+ <h3 id="feature_models"><code>feature_models</code><a class="headerlink" href="#feature_models" title="Permanent link">&para;</a></h3>
10381
+ <details class="version-added">
10382
+ <summary>Added in version 2.4.14</summary>
10383
+ </details>
10384
+ <p>A dictionary of particular features (e.g. "graphql") mapped to the set of Nautobot model classes which support each such feature. For example:</p>
10385
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="kn">from</span> <span class="nn">nautobot.extras.registry</span> <span class="kn">import</span> <span class="n">registry</span>
10386
+ <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">registry</span><span class="p">[</span><span class="s2">&quot;feature_models&quot;</span><span class="p">][</span><span class="s2">&quot;graphql&quot;</span><span class="p">]</span>
10387
+ <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="p">[</span><span class="o">&lt;</span><span class="k">class</span> <span class="err">&#39;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">extras</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">change_logging</span><span class="o">.</span><span class="n">ObjectChange</span><span class="s1">&#39;&gt;, &lt;class &#39;</span><span class="n">nautobot</span><span class="o">.</span><span class="n">extras</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">customfields</span><span class="o">.</span><span class="n">ComputedField</span><span class="s1">&#39;&gt;, &lt;class &#39;</span><span class="n">nautobot</span><span class="o">.</span><span class="n">extras</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">customfields</span><span class="o">.</span><span class="n">CustomFieldChoice</span><span class="s1">&#39;&gt;, &lt;class &#39;</span><span class="n">nautobot</span><span class="o">.</span><span class="n">extras</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">roles</span><span class="o">.</span><span class="n">Role</span><span class="s1">&#39;&gt;, ...</span>
10388
+ </code></pre></div>
10389
+ <p>Useful as an alternative to <code>model_features</code> (<a href="#model_features">below</a>) for cases where direct access to the Django model classes is desired, such as in generating the GraphQL schema.</p>
10385
10390
  <h3 id="jobs"><code>jobs</code><a class="headerlink" href="#jobs" title="Permanent link">&para;</a></h3>
10386
10391
  <details class="version-added">
10387
10392
  <summary>Added in version 2.2.3</summary>
10388
10393
  </details>
10389
10394
  <p>A dictionary of registered <a href="../jobs/index.html">Job classes</a>, indexed by their <a href="../../user-guide/platform-functionality/jobs/models.html#understanding-job-class-paths">class path</a>. For example:</p>
10390
- <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="p">{</span>
10391
- <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a> <span class="s2">&quot;nautobot.core.jobs.ExportObjectList&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExportObjectList</span><span class="s2">&quot;&gt;,</span>
10392
- <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a> <span class="s2">&quot;nautobot.core.jobs.GitRepositorySync&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">GitRepositorySync</span><span class="s2">&quot;&gt;,</span>
10393
- <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> <span class="s2">&quot;nautobot.core.jobs.GitRepositoryDryRun&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">GitRepositoryDryRun</span><span class="s2">&quot;&gt;,</span>
10394
- <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> <span class="s2">&quot;nautobot.core.jobs.ImportObjects&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ImportObjects</span><span class="s2">&quot;&gt;,</span>
10395
- <a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> <span class="s2">&quot;example_app.jobs.ExampleDryRunJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleDryRunJob</span><span class="s2">&quot;&gt;,</span>
10396
- <a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> <span class="s2">&quot;example_app.jobs.ExampleJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleJob</span><span class="s2">&quot;&gt;,</span>
10397
- <a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a> <span class="s2">&quot;example_app.jobs.ExampleHiddenJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleHiddenJob</span><span class="s2">&quot;&gt;,</span>
10398
- <a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a> <span class="s2">&quot;example_app.jobs.ExampleLoggingJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleLoggingJob</span><span class="s2">&quot;&gt;,</span>
10399
- <a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a> <span class="s2">&quot;example_app.jobs.ExampleFileInputOutputJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleFileInputOutputJob</span><span class="s2">&quot;&gt;,</span>
10400
- <a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a> <span class="s2">&quot;example_app.jobs.ExampleJobHookReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleJobHookReceiver</span><span class="s2">&quot;&gt;,</span>
10401
- <a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a> <span class="s2">&quot;example_app.jobs.ExampleSimpleJobButtonReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleSimpleJobButtonReceiver</span><span class="s2">&quot;&gt;,</span>
10402
- <a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a> <span class="s2">&quot;example_app.jobs.ExampleComplexJobButtonReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleComplexJobButtonReceiver</span><span class="s2">&quot;&gt;</span>
10403
- <a id="__codelineno-3-14" name="__codelineno-3-14" href="#__codelineno-3-14"></a><span class="p">}</span>
10395
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="p">{</span>
10396
+ <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a> <span class="s2">&quot;nautobot.core.jobs.ExportObjectList&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExportObjectList</span><span class="s2">&quot;&gt;,</span>
10397
+ <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> <span class="s2">&quot;nautobot.core.jobs.GitRepositorySync&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">GitRepositorySync</span><span class="s2">&quot;&gt;,</span>
10398
+ <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> <span class="s2">&quot;nautobot.core.jobs.GitRepositoryDryRun&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">GitRepositoryDryRun</span><span class="s2">&quot;&gt;,</span>
10399
+ <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> <span class="s2">&quot;nautobot.core.jobs.ImportObjects&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">nautobot</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ImportObjects</span><span class="s2">&quot;&gt;,</span>
10400
+ <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> <span class="s2">&quot;example_app.jobs.ExampleDryRunJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleDryRunJob</span><span class="s2">&quot;&gt;,</span>
10401
+ <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> <span class="s2">&quot;example_app.jobs.ExampleJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleJob</span><span class="s2">&quot;&gt;,</span>
10402
+ <a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> <span class="s2">&quot;example_app.jobs.ExampleHiddenJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleHiddenJob</span><span class="s2">&quot;&gt;,</span>
10403
+ <a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> <span class="s2">&quot;example_app.jobs.ExampleLoggingJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleLoggingJob</span><span class="s2">&quot;&gt;,</span>
10404
+ <a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a> <span class="s2">&quot;example_app.jobs.ExampleFileInputOutputJob&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleFileInputOutputJob</span><span class="s2">&quot;&gt;,</span>
10405
+ <a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a> <span class="s2">&quot;example_app.jobs.ExampleJobHookReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleJobHookReceiver</span><span class="s2">&quot;&gt;,</span>
10406
+ <a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a> <span class="s2">&quot;example_app.jobs.ExampleSimpleJobButtonReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleSimpleJobButtonReceiver</span><span class="s2">&quot;&gt;,</span>
10407
+ <a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a> <span class="s2">&quot;example_app.jobs.ExampleComplexJobButtonReceiver&quot;</span><span class="p">:</span> <span class="o">&lt;</span><span class="k">class</span> <span class="err">&quot;</span><span class="nc">example_app</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">ExampleComplexJobButtonReceiver</span><span class="s2">&quot;&gt;</span>
10408
+ <a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="p">}</span>
10404
10409
  </code></pre></div>
10405
10410
  <div class="admonition caution">
10406
10411
  <p class="admonition-title">Caution</p>
10407
10412
  <p>This registry entry should be treated as a cache and as an implementation detail; in general you should prefer the use of the <code>nautobot.apps.get_jobs()</code> and/or <code>nautobot.apps.get_job()</code> APIs in order to retrieve specific Job classes.</p>
10408
10413
  </div>
10409
10414
  <h3 id="model_features"><code>model_features</code><a class="headerlink" href="#model_features" title="Permanent link">&para;</a></h3>
10410
- <p>A dictionary of particular features (e.g. custom fields) mapped to the Nautobot models which support them, arranged by app. For example:</p>
10411
- <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="p">{</span>
10412
- <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a> <span class="s1">&#39;custom_fields&#39;</span><span class="p">:</span> <span class="p">{</span>
10413
- <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> <span class="s1">&#39;circuits&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;provider&#39;</span><span class="p">,</span> <span class="s1">&#39;circuit&#39;</span><span class="p">],</span>
10414
- <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> <span class="s1">&#39;dcim&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">,</span> <span class="s1">&#39;rack&#39;</span><span class="p">,</span> <span class="s1">&#39;devicetype&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span>
10415
- <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> <span class="o">...</span>
10416
- <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> <span class="p">},</span>
10417
- <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> <span class="s1">&#39;webhooks&#39;</span><span class="p">:</span> <span class="p">{</span>
10418
- <a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> <span class="o">...</span>
10419
- <a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> <span class="p">},</span>
10420
- <a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a> <span class="o">...</span>
10421
- <a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a><span class="p">}</span>
10415
+ <p>A dictionary of particular features (e.g. custom fields) mapped to the names of Nautobot models which support them, arranged by app. For example:</p>
10416
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="p">{</span>
10417
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a> <span class="s1">&#39;custom_fields&#39;</span><span class="p">:</span> <span class="p">{</span>
10418
+ <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> <span class="s1">&#39;circuits&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;provider&#39;</span><span class="p">,</span> <span class="s1">&#39;circuit&#39;</span><span class="p">],</span>
10419
+ <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="s1">&#39;dcim&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;location&#39;</span><span class="p">,</span> <span class="s1">&#39;rack&#39;</span><span class="p">,</span> <span class="s1">&#39;devicetype&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span>
10420
+ <a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="o">...</span>
10421
+ <a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="p">},</span>
10422
+ <a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="s1">&#39;webhooks&#39;</span><span class="p">:</span> <span class="p">{</span>
10423
+ <a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> <span class="o">...</span>
10424
+ <a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> <span class="p">},</span>
10425
+ <a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a> <span class="o">...</span>
10426
+ <a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="p">}</span>
10422
10427
  </code></pre></div>
10423
10428
  <p>For more information visit <a href="model-features.html">model-features</a>.</p>
10429
+ <p>In cases where grouping by app is not important, and direct access to the Django model classes is desired, the <code>feature_models</code> registry entry (<a href="#feature_models">above</a>) may be used as an alternative in recent versions of Nautobot.</p>
10424
10430
  <h3 id="nav_menu"><code>nav_menu</code><a class="headerlink" href="#nav_menu" title="Permanent link">&para;</a></h3>
10425
10431
  <p>Navigation menu items provided by Nautobot applications. Each app may register its navbar configuration inside of the <code>nav_menu</code> dictionary using <code>navigation.py</code>. Tabs are stored in the top level moving down to groups, items and buttons. Tabs, groups and items can be modified by using the key values inside other core applications and Apps. The <code>nav_menu</code> dict should never be modified directly.</p>
10426
10432
  <p>Example:</p>
10427
- <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="p">{</span>
10428
- <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a> <span class="s2">&quot;tabs&quot;</span><span class="p">:</span> <span class="p">{</span>
10429
- <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> <span class="s2">&quot;tab_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10430
- <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10431
- <a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10432
- <a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="s2">&quot;groups&quot;</span><span class="p">:</span> <span class="p">{</span>
10433
- <a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="s2">&quot;group_1&quot;</span><span class="p">:{</span>
10434
- <a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10435
- <a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10436
- <a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{</span>
10437
- <a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a> <span class="s2">&quot;item_link_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10438
- <a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a> <span class="s2">&quot;link_text&quot;</span><span class="p">:</span> <span class="s2">&quot;Item 1&quot;</span><span class="p">,</span>
10439
- <a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10440
- <a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10441
- <a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{</span>
10442
- <a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a> <span class="s2">&quot;button_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10443
- <a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10444
- <a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10445
- <a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_1&quot;</span><span class="p">,</span>
10446
- <a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10447
- <a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10448
- <a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a> <span class="p">},</span>
10449
- <a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a> <span class="s2">&quot;button_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10450
- <a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10451
- <a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10452
- <a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_2&quot;</span><span class="p">,</span>
10453
- <a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10454
- <a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10455
- <a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a> <span class="p">}</span>
10456
- <a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a> <span class="p">}</span>
10457
- <a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a> <span class="p">},</span>
10458
- <a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a> <span class="s2">&quot;item_link_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10459
- <a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a> <span class="s2">&quot;link_text&quot;</span><span class="p">:</span> <span class="s2">&quot;Item 2&quot;</span><span class="p">,</span>
10460
- <a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10461
- <a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10462
- <a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{</span>
10463
- <a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a> <span class="s2">&quot;button_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10464
- <a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10465
- <a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10466
- <a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_1&quot;</span><span class="p">,</span>
10467
- <a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10468
- <a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10469
- <a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a> <span class="p">},</span>
10470
- <a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a> <span class="s2">&quot;button_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10471
- <a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10472
- <a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10473
- <a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_2&quot;</span><span class="p">,</span>
10474
- <a id="__codelineno-5-48" name="__codelineno-5-48" href="#__codelineno-5-48"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10475
- <a id="__codelineno-5-49" name="__codelineno-5-49" href="#__codelineno-5-49"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10476
- <a id="__codelineno-5-50" name="__codelineno-5-50" href="#__codelineno-5-50"></a> <span class="p">}</span>
10477
- <a id="__codelineno-5-51" name="__codelineno-5-51" href="#__codelineno-5-51"></a> <span class="p">}</span>
10478
- <a id="__codelineno-5-52" name="__codelineno-5-52" href="#__codelineno-5-52"></a> <span class="p">},</span>
10479
- <a id="__codelineno-5-53" name="__codelineno-5-53" href="#__codelineno-5-53"></a> <span class="p">}</span>
10480
- <a id="__codelineno-5-54" name="__codelineno-5-54" href="#__codelineno-5-54"></a> <span class="p">}</span>
10481
- <a id="__codelineno-5-55" name="__codelineno-5-55" href="#__codelineno-5-55"></a> <span class="p">}</span>
10482
- <a id="__codelineno-5-56" name="__codelineno-5-56" href="#__codelineno-5-56"></a> <span class="p">}</span>
10483
- <a id="__codelineno-5-57" name="__codelineno-5-57" href="#__codelineno-5-57"></a> <span class="p">}</span>
10484
- <a id="__codelineno-5-58" name="__codelineno-5-58" href="#__codelineno-5-58"></a><span class="p">}</span>
10433
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="p">{</span>
10434
+ <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a> <span class="s2">&quot;tabs&quot;</span><span class="p">:</span> <span class="p">{</span>
10435
+ <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a> <span class="s2">&quot;tab_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10436
+ <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10437
+ <a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10438
+ <a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a> <span class="s2">&quot;groups&quot;</span><span class="p">:</span> <span class="p">{</span>
10439
+ <a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> <span class="s2">&quot;group_1&quot;</span><span class="p">:{</span>
10440
+ <a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10441
+ <a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10442
+ <a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{</span>
10443
+ <a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a> <span class="s2">&quot;item_link_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10444
+ <a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a> <span class="s2">&quot;link_text&quot;</span><span class="p">:</span> <span class="s2">&quot;Item 1&quot;</span><span class="p">,</span>
10445
+ <a id="__codelineno-6-13" name="__codelineno-6-13" href="#__codelineno-6-13"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10446
+ <a id="__codelineno-6-14" name="__codelineno-6-14" href="#__codelineno-6-14"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10447
+ <a id="__codelineno-6-15" name="__codelineno-6-15" href="#__codelineno-6-15"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{</span>
10448
+ <a id="__codelineno-6-16" name="__codelineno-6-16" href="#__codelineno-6-16"></a> <span class="s2">&quot;button_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10449
+ <a id="__codelineno-6-17" name="__codelineno-6-17" href="#__codelineno-6-17"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10450
+ <a id="__codelineno-6-18" name="__codelineno-6-18" href="#__codelineno-6-18"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10451
+ <a id="__codelineno-6-19" name="__codelineno-6-19" href="#__codelineno-6-19"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_1&quot;</span><span class="p">,</span>
10452
+ <a id="__codelineno-6-20" name="__codelineno-6-20" href="#__codelineno-6-20"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10453
+ <a id="__codelineno-6-21" name="__codelineno-6-21" href="#__codelineno-6-21"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10454
+ <a id="__codelineno-6-22" name="__codelineno-6-22" href="#__codelineno-6-22"></a> <span class="p">},</span>
10455
+ <a id="__codelineno-6-23" name="__codelineno-6-23" href="#__codelineno-6-23"></a> <span class="s2">&quot;button_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10456
+ <a id="__codelineno-6-24" name="__codelineno-6-24" href="#__codelineno-6-24"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10457
+ <a id="__codelineno-6-25" name="__codelineno-6-25" href="#__codelineno-6-25"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10458
+ <a id="__codelineno-6-26" name="__codelineno-6-26" href="#__codelineno-6-26"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_2&quot;</span><span class="p">,</span>
10459
+ <a id="__codelineno-6-27" name="__codelineno-6-27" href="#__codelineno-6-27"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10460
+ <a id="__codelineno-6-28" name="__codelineno-6-28" href="#__codelineno-6-28"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10461
+ <a id="__codelineno-6-29" name="__codelineno-6-29" href="#__codelineno-6-29"></a> <span class="p">}</span>
10462
+ <a id="__codelineno-6-30" name="__codelineno-6-30" href="#__codelineno-6-30"></a> <span class="p">}</span>
10463
+ <a id="__codelineno-6-31" name="__codelineno-6-31" href="#__codelineno-6-31"></a> <span class="p">},</span>
10464
+ <a id="__codelineno-6-32" name="__codelineno-6-32" href="#__codelineno-6-32"></a> <span class="s2">&quot;item_link_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10465
+ <a id="__codelineno-6-33" name="__codelineno-6-33" href="#__codelineno-6-33"></a> <span class="s2">&quot;link_text&quot;</span><span class="p">:</span> <span class="s2">&quot;Item 2&quot;</span><span class="p">,</span>
10466
+ <a id="__codelineno-6-34" name="__codelineno-6-34" href="#__codelineno-6-34"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10467
+ <a id="__codelineno-6-35" name="__codelineno-6-35" href="#__codelineno-6-35"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10468
+ <a id="__codelineno-6-36" name="__codelineno-6-36" href="#__codelineno-6-36"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{</span>
10469
+ <a id="__codelineno-6-37" name="__codelineno-6-37" href="#__codelineno-6-37"></a> <span class="s2">&quot;button_1&quot;</span><span class="p">:</span> <span class="p">{</span>
10470
+ <a id="__codelineno-6-38" name="__codelineno-6-38" href="#__codelineno-6-38"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10471
+ <a id="__codelineno-6-39" name="__codelineno-6-39" href="#__codelineno-6-39"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10472
+ <a id="__codelineno-6-40" name="__codelineno-6-40" href="#__codelineno-6-40"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_1&quot;</span><span class="p">,</span>
10473
+ <a id="__codelineno-6-41" name="__codelineno-6-41" href="#__codelineno-6-41"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
10474
+ <a id="__codelineno-6-42" name="__codelineno-6-42" href="#__codelineno-6-42"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10475
+ <a id="__codelineno-6-43" name="__codelineno-6-43" href="#__codelineno-6-43"></a> <span class="p">},</span>
10476
+ <a id="__codelineno-6-44" name="__codelineno-6-44" href="#__codelineno-6-44"></a> <span class="s2">&quot;button_2&quot;</span><span class="p">:</span> <span class="p">{</span>
10477
+ <a id="__codelineno-6-45" name="__codelineno-6-45" href="#__codelineno-6-45"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="s2">&quot;success&quot;</span><span class="p">,</span>
10478
+ <a id="__codelineno-6-46" name="__codelineno-6-46" href="#__codelineno-6-46"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="s2">&quot;mdi-plus-thick&quot;</span><span class="p">,</span>
10479
+ <a id="__codelineno-6-47" name="__codelineno-6-47" href="#__codelineno-6-47"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="s2">&quot;button_link_2&quot;</span><span class="p">,</span>
10480
+ <a id="__codelineno-6-48" name="__codelineno-6-48" href="#__codelineno-6-48"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
10481
+ <a id="__codelineno-6-49" name="__codelineno-6-49" href="#__codelineno-6-49"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="p">[],</span>
10482
+ <a id="__codelineno-6-50" name="__codelineno-6-50" href="#__codelineno-6-50"></a> <span class="p">}</span>
10483
+ <a id="__codelineno-6-51" name="__codelineno-6-51" href="#__codelineno-6-51"></a> <span class="p">}</span>
10484
+ <a id="__codelineno-6-52" name="__codelineno-6-52" href="#__codelineno-6-52"></a> <span class="p">},</span>
10485
+ <a id="__codelineno-6-53" name="__codelineno-6-53" href="#__codelineno-6-53"></a> <span class="p">}</span>
10486
+ <a id="__codelineno-6-54" name="__codelineno-6-54" href="#__codelineno-6-54"></a> <span class="p">}</span>
10487
+ <a id="__codelineno-6-55" name="__codelineno-6-55" href="#__codelineno-6-55"></a> <span class="p">}</span>
10488
+ <a id="__codelineno-6-56" name="__codelineno-6-56" href="#__codelineno-6-56"></a> <span class="p">}</span>
10489
+ <a id="__codelineno-6-57" name="__codelineno-6-57" href="#__codelineno-6-57"></a> <span class="p">}</span>
10490
+ <a id="__codelineno-6-58" name="__codelineno-6-58" href="#__codelineno-6-58"></a><span class="p">}</span>
10485
10491
  </code></pre></div>
10486
10492
  <h3 id="plugin_custom_validators"><code>plugin_custom_validators</code><a class="headerlink" href="#plugin_custom_validators" title="Permanent link">&para;</a></h3>
10487
10493
  <p>App <a href="../apps/api/platform-features/custom-validators.html">custom validator classes</a> that provide additional data model validation logic. Implemented as a dictionary mapping data model names to a list of <code>CustomValidator</code> subclasses, for example:</p>
10488
- <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="p">{</span>
10489
- <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a> <span class="s1">&#39;circuits.circuit&#39;</span><span class="p">:</span> <span class="p">[</span><span class="n">CircuitMustHaveDescriptionValidator</span><span class="p">],</span>
10490
- <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a> <span class="s1">&#39;dcim.location&#39;</span><span class="p">:</span> <span class="p">[</span><span class="n">LocationMustHaveTenantValidator</span><span class="p">,</span> <span class="n">LocationNameMustIncludeCountryCodeValidator</span><span class="p">],</span>
10491
- <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="p">}</span>
10494
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="p">{</span>
10495
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a> <span class="s1">&#39;circuits.circuit&#39;</span><span class="p">:</span> <span class="p">[</span><span class="n">CircuitMustHaveDescriptionValidator</span><span class="p">],</span>
10496
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a> <span class="s1">&#39;dcim.location&#39;</span><span class="p">:</span> <span class="p">[</span><span class="n">LocationMustHaveTenantValidator</span><span class="p">,</span> <span class="n">LocationNameMustIncludeCountryCodeValidator</span><span class="p">],</span>
10497
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="p">}</span>
10492
10498
  </code></pre></div>
10493
10499
  <h3 id="plugin_graphql_types"><code>plugin_graphql_types</code><a class="headerlink" href="#plugin_graphql_types" title="Permanent link">&para;</a></h3>
10494
10500
  <p>List of GraphQL Type objects that will be added to the GraphQL schema. GraphQL objects that are defined in an App will be automatically registered into this registry. An example:</p>
10495
- <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="p">[</span>
10496
- <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a> <span class="o">&lt;</span><span class="n">DjangoObjectType</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">DjangoObjectType</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">OptimizedDjangoObjectType</span><span class="o">&gt;</span>
10497
- <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="p">]</span>
10501
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="p">[</span>
10502
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a> <span class="o">&lt;</span><span class="n">DjangoObjectType</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">DjangoObjectType</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">OptimizedDjangoObjectType</span><span class="o">&gt;</span>
10503
+ <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="p">]</span>
10498
10504
  </code></pre></div>
10499
10505
  <details class="version-removed">
10500
10506
  <summary>Removed in version 2.0.0</summary>
@@ -10502,14 +10508,14 @@
10502
10508
  </details>
10503
10509
  <h3 id="plugin_template_extensions"><code>plugin_template_extensions</code><a class="headerlink" href="#plugin_template_extensions" title="Permanent link">&para;</a></h3>
10504
10510
  <p>App content that gets embedded into core Nautobot templates. The store comprises Nautobot models registered as dictionary keys, each pointing to a list of applicable template extension classes that exist. An example:</p>
10505
- <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="p">{</span>
10506
- <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a> <span class="s1">&#39;dcim.location&#39;</span><span class="p">:</span> <span class="p">[</span>
10507
- <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span>
10508
- <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> <span class="p">],</span>
10509
- <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a> <span class="s1">&#39;dcim.rack&#39;</span><span class="p">:</span> <span class="p">[</span>
10510
- <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span>
10511
- <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a> <span class="p">],</span>
10512
- <a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="p">}</span>
10511
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="p">{</span>
10512
+ <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a> <span class="s1">&#39;dcim.location&#39;</span><span class="p">:</span> <span class="p">[</span>
10513
+ <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span>
10514
+ <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a> <span class="p">],</span>
10515
+ <a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a> <span class="s1">&#39;dcim.rack&#39;</span><span class="p">:</span> <span class="p">[</span>
10516
+ <a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">TemplateExtension</span><span class="o">&gt;</span><span class="p">,</span>
10517
+ <a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a> <span class="p">],</span>
10518
+ <a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="p">}</span>
10513
10519
  </code></pre></div>
10514
10520
 
10515
10521
 
@@ -10607,7 +10613,7 @@
10607
10613
 
10608
10614
 
10609
10615
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
10610
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
10616
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
10611
10617
  </a>
10612
10618
 
10613
10619
 
@@ -10615,7 +10621,7 @@
10615
10621
 
10616
10622
 
10617
10623
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
10618
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
10624
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M549.7 124.1c-6.2-23.7-24.8-42.3-48.3-48.6C458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5c-23.5 6.3-42 24.9-48.3 48.6C15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8C117.3 448 288.1 448 288.1 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6V175.2l142.7 81.2z"/></svg>
10619
10625
  </a>
10620
10626
 
10621
10627
 
@@ -10623,7 +10629,7 @@
10623
10629
 
10624
10630
 
10625
10631
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
10626
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
10632
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268h47.1v47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1s47.1 21.2 47.1 47.1v117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1s21.2-47 47.1-47S212 53.2 212 79.1v47.1h-47.1zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244H47.1C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1zm189 47.1c0-25.9 21.2-47.1 47.1-47.1s47 21.2 47 47.1-21.2 47.1-47.1 47.1h-47.1v-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9V79.1c0-25.9 21.2-47.1 47.1-47.1s47.1 21.2 47.1 47.1zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1s-21.2 47-47.1 47-47.1-21.2-47.1-47.1v-47.1h47.1zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1s21.2-47.1 47.1-47.1h117.8c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1z"/></svg>
10627
10633
  </a>
10628
10634
 
10629
10635
 
@@ -10631,7 +10637,7 @@
10631
10637
 
10632
10638
 
10633
10639
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
10634
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
10640
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
10635
10641
  </a>
10636
10642
 
10637
10643
 
@@ -10639,7 +10645,7 @@
10639
10645
 
10640
10646
 
10641
10647
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
10642
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
10648
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg>
10643
10649
  </a>
10644
10650
 
10645
10651
  </div>
@@ -10659,7 +10665,7 @@
10659
10665
  <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
10660
10666
 
10661
10667
 
10662
- <script src="../../assets/javascripts/bundle.56ea9cef.min.js"></script>
10668
+ <script src="../../assets/javascripts/bundle.50899def.min.js"></script>
10663
10669
 
10664
10670
 
10665
10671
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});