nautobot 2.4.13__py3-none-any.whl → 2.4.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (463) hide show
  1. nautobot/apps/choices.py +8 -0
  2. nautobot/apps/ui.py +14 -0
  3. nautobot/core/api/views.py +2 -0
  4. nautobot/core/choices.py +4 -0
  5. nautobot/core/filters.py +21 -41
  6. nautobot/core/graphql/generators.py +8 -0
  7. nautobot/core/graphql/schema.py +30 -30
  8. nautobot/core/management/commands/check_job_approval_status.py +47 -0
  9. nautobot/core/management/commands/generate_test_data.py +1 -1
  10. nautobot/core/management/commands/migrate.py +90 -1
  11. nautobot/core/models/tree_queries.py +17 -0
  12. nautobot/core/settings.py +2 -2
  13. nautobot/core/settings.yaml +3 -3
  14. nautobot/core/tables.py +29 -6
  15. nautobot/core/templates/base_django.html +1 -1
  16. nautobot/core/templates/components/panel/header_extra_content_table.html +1 -1
  17. nautobot/core/templates/generic/object_list.html +17 -20
  18. nautobot/core/templates/inc/breadcrumbs.html +14 -0
  19. nautobot/core/templatetags/buttons.py +2 -4
  20. nautobot/core/templatetags/helpers.py +29 -6
  21. nautobot/core/templatetags/ui_framework.py +21 -0
  22. nautobot/core/testing/api.py +7 -0
  23. nautobot/core/testing/filters.py +20 -3
  24. nautobot/core/testing/forms.py +1 -1
  25. nautobot/core/tests/integration/test_filters.py +2 -2
  26. nautobot/core/tests/test_breadcrumbs.py +366 -0
  27. nautobot/core/tests/test_commands.py +40 -0
  28. nautobot/core/tests/test_filters.py +51 -1
  29. nautobot/core/tests/test_forms.py +1 -1
  30. nautobot/core/tests/test_graphql.py +4 -4
  31. nautobot/core/tests/test_titles.py +183 -0
  32. nautobot/core/tests/test_tree_queries.py +30 -0
  33. nautobot/core/tests/test_views.py +2 -2
  34. nautobot/core/tests/test_views_utils.py +1 -1
  35. nautobot/core/ui/breadcrumbs.py +538 -0
  36. nautobot/core/ui/bulk_buttons.py +53 -0
  37. nautobot/core/ui/object_detail.py +31 -8
  38. nautobot/core/ui/titles.py +127 -0
  39. nautobot/core/ui/utils.py +25 -0
  40. nautobot/core/utils/migrations.py +1 -1
  41. nautobot/core/views/__init__.py +1 -1
  42. nautobot/core/views/mixins.py +26 -1
  43. nautobot/core/views/renderers.py +20 -2
  44. nautobot/core/views/utils.py +14 -13
  45. nautobot/dcim/api/serializers.py +9 -0
  46. nautobot/dcim/choices.py +55 -0
  47. nautobot/dcim/constants.py +0 -16
  48. nautobot/dcim/factory.py +1 -1
  49. nautobot/dcim/filters/__init__.py +15 -3
  50. nautobot/dcim/forms.py +120 -7
  51. nautobot/dcim/management/commands/trace_paths.py +1 -1
  52. nautobot/dcim/migrations/0072_alter_powerfeed_options_and_more.py +97 -0
  53. nautobot/dcim/models/device_component_templates.py +8 -0
  54. nautobot/dcim/models/device_components.py +31 -12
  55. nautobot/dcim/models/devices.py +1 -1
  56. nautobot/dcim/models/power.py +171 -10
  57. nautobot/dcim/models/racks.py +7 -4
  58. nautobot/dcim/tables/devices.py +2 -0
  59. nautobot/dcim/tables/devicetypes.py +1 -0
  60. nautobot/dcim/tables/power.py +30 -2
  61. nautobot/dcim/templates/dcim/device.html +2 -2
  62. nautobot/dcim/templates/dcim/devicetype_retrieve.html +1 -214
  63. nautobot/dcim/templates/dcim/location_retrieve.html +2 -2
  64. nautobot/dcim/templates/dcim/powerfeed_edit.html +8 -0
  65. nautobot/dcim/templates/dcim/powerfeed_retrieve.html +1 -1
  66. nautobot/dcim/templates/dcim/rack.html +2 -318
  67. nautobot/dcim/templates/dcim/rack_edit.html +2 -47
  68. nautobot/dcim/templates/dcim/rack_retrieve.html +318 -0
  69. nautobot/dcim/templates/dcim/rack_update.html +47 -0
  70. nautobot/dcim/tests/integration/test_device_bulk_operations.py +61 -0
  71. nautobot/dcim/tests/test_api.py +24 -4
  72. nautobot/dcim/tests/test_filters.py +91 -13
  73. nautobot/dcim/tests/test_models.py +262 -0
  74. nautobot/dcim/tests/test_views.py +20 -12
  75. nautobot/dcim/urls.py +2 -27
  76. nautobot/dcim/utils.py +13 -30
  77. nautobot/dcim/views.py +428 -146
  78. nautobot/extras/choices.py +12 -4
  79. nautobot/extras/factory.py +19 -20
  80. nautobot/extras/filters/__init__.py +3 -2
  81. nautobot/extras/filters/mixins.py +23 -7
  82. nautobot/extras/forms/__init__.py +2 -1
  83. nautobot/extras/forms/forms.py +71 -0
  84. nautobot/extras/forms/mixins.py +4 -2
  85. nautobot/extras/managers.py +4 -1
  86. nautobot/extras/migrations/0062_collect_roles_from_related_apps_roles.py +30 -7
  87. nautobot/extras/migrations/0124_add_joblogentry_index.py +16 -0
  88. nautobot/extras/migrations/0125_jobresult_date_started.py +18 -0
  89. nautobot/extras/models/customfields.py +53 -5
  90. nautobot/extras/models/datasources.py +1 -2
  91. nautobot/extras/models/jobs.py +13 -3
  92. nautobot/extras/models/relationships.py +55 -6
  93. nautobot/extras/plugins/views.py +24 -1
  94. nautobot/extras/secrets/__init__.py +1 -1
  95. nautobot/extras/tables.py +9 -0
  96. nautobot/extras/templates/extras/customfield.html +2 -129
  97. nautobot/extras/templates/extras/customfield_edit.html +2 -108
  98. nautobot/extras/templates/extras/customfield_retrieve.html +129 -0
  99. nautobot/extras/templates/extras/customfield_update.html +108 -0
  100. nautobot/extras/templates/extras/graphqlquery.html +2 -97
  101. nautobot/extras/templates/extras/graphqlquery_list.html +1 -0
  102. nautobot/extras/templates/extras/graphqlquery_retrieve.html +97 -0
  103. nautobot/extras/templates/extras/inc/jobresult.html +7 -3
  104. nautobot/extras/templates/extras/jobresult.html +2 -155
  105. nautobot/extras/templates/extras/jobresult_retrieve.html +155 -0
  106. nautobot/extras/templates/extras/marketplace.html +5 -6
  107. nautobot/extras/templates/extras/note.html +2 -53
  108. nautobot/extras/templates/extras/note_retrieve.html +53 -0
  109. nautobot/extras/templates/extras/plugins_list.html +5 -6
  110. nautobot/extras/templates/extras/secretsgroup.html +2 -29
  111. nautobot/extras/templates/extras/secretsgroup_edit.html +2 -82
  112. nautobot/extras/templates/extras/secretsgroup_retrieve.html +29 -0
  113. nautobot/extras/templates/extras/secretsgroup_update.html +82 -0
  114. nautobot/extras/templatetags/custom_links.py +2 -2
  115. nautobot/extras/templatetags/job_buttons.py +1 -1
  116. nautobot/extras/templatetags/plugins.py +1 -1
  117. nautobot/extras/tests/integration/test_computedfields.py +2 -2
  118. nautobot/extras/tests/integration/test_customfields.py +14 -11
  119. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  120. nautobot/extras/tests/integration/test_notes.py +1 -1
  121. nautobot/extras/tests/integration/test_plugins.py +6 -6
  122. nautobot/extras/tests/integration/test_relationships.py +2 -2
  123. nautobot/extras/tests/test_customfields.py +115 -7
  124. nautobot/extras/tests/test_filters.py +9 -0
  125. nautobot/extras/tests/test_forms.py +2 -2
  126. nautobot/extras/tests/test_plugins.py +2 -3
  127. nautobot/extras/tests/test_relationships.py +14 -8
  128. nautobot/extras/tests/test_views.py +285 -2
  129. nautobot/extras/urls.py +5 -110
  130. nautobot/extras/utils.py +5 -2
  131. nautobot/extras/views.py +116 -311
  132. nautobot/ipam/api/views.py +69 -6
  133. nautobot/ipam/tables.py +8 -15
  134. nautobot/ipam/tests/migration/test_migrations.py +8 -8
  135. nautobot/ipam/tests/test_api.py +352 -2
  136. nautobot/ipam/tests/test_models.py +1 -1
  137. nautobot/project-static/docs/404.html +34 -34
  138. nautobot/project-static/docs/apps/index.html +34 -34
  139. nautobot/project-static/docs/apps/nautobot-apps.html +34 -34
  140. nautobot/project-static/docs/assets/_mkdocstrings.css +44 -6
  141. nautobot/project-static/docs/assets/javascripts/{bundle.56ea9cef.min.js → bundle.50899def.min.js} +2 -2
  142. nautobot/project-static/docs/assets/javascripts/{bundle.56ea9cef.min.js.map → bundle.50899def.min.js.map} +2 -2
  143. nautobot/project-static/docs/assets/stylesheets/{main.342714a4.min.css → main.7e37652d.min.css} +1 -1
  144. nautobot/project-static/docs/assets/stylesheets/{main.342714a4.min.css.map → main.7e37652d.min.css.map} +1 -1
  145. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +39 -34
  146. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +36 -34
  147. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +139 -54
  148. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +48 -38
  149. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +50 -40
  150. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +36 -34
  151. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +35 -34
  152. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +43 -39
  153. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +52 -42
  154. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +50 -41
  155. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +54 -44
  156. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +85 -93
  157. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +154 -62
  158. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +54 -46
  159. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +146 -87
  160. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +240 -70
  161. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +38 -35
  162. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +41 -35
  163. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +173 -52
  164. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +269 -85
  165. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +5987 -2643
  166. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +36 -34
  167. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +165 -89
  168. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +161 -69
  169. nautobot/project-static/docs/development/apps/api/configuration-view.html +34 -34
  170. nautobot/project-static/docs/development/apps/api/database-backend-config.html +34 -34
  171. nautobot/project-static/docs/development/apps/api/models/django-admin.html +34 -34
  172. nautobot/project-static/docs/development/apps/api/models/global-search.html +34 -34
  173. nautobot/project-static/docs/development/apps/api/models/graphql.html +34 -34
  174. nautobot/project-static/docs/development/apps/api/models/index.html +34 -34
  175. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +34 -34
  176. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +34 -34
  177. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +34 -34
  178. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +34 -34
  179. nautobot/project-static/docs/development/apps/api/platform-features/index.html +34 -34
  180. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +34 -34
  181. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +34 -34
  182. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +34 -34
  183. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +34 -34
  184. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +34 -34
  185. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +34 -34
  186. nautobot/project-static/docs/development/apps/api/prometheus.html +34 -34
  187. nautobot/project-static/docs/development/apps/api/setup.html +34 -34
  188. nautobot/project-static/docs/development/apps/api/testing.html +34 -34
  189. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +34 -34
  190. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +34 -34
  191. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +34 -34
  192. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +34 -34
  193. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +34 -34
  194. nautobot/project-static/docs/development/apps/api/views/base-template.html +34 -34
  195. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +34 -34
  196. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +34 -34
  197. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +34 -34
  198. nautobot/project-static/docs/development/apps/api/views/index.html +34 -34
  199. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +34 -34
  200. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +42 -36
  201. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +34 -34
  202. nautobot/project-static/docs/development/apps/api/views/notes.html +34 -34
  203. nautobot/project-static/docs/development/apps/api/views/rest-api.html +34 -34
  204. nautobot/project-static/docs/development/apps/api/views/urls.html +34 -34
  205. nautobot/project-static/docs/development/apps/index.html +34 -34
  206. nautobot/project-static/docs/development/apps/migration/code-updates.html +34 -34
  207. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +34 -34
  208. nautobot/project-static/docs/development/apps/migration/from-v1.html +34 -34
  209. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +34 -34
  210. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +34 -34
  211. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +34 -34
  212. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +34 -34
  213. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +37 -37
  214. nautobot/project-static/docs/development/apps/migration/ui-component-framework/breadcrumbs-titles.html +10544 -0
  215. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +34 -34
  216. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +34 -34
  217. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +34 -34
  218. nautobot/project-static/docs/development/apps/porting-from-netbox.html +37 -37
  219. nautobot/project-static/docs/development/core/application-registry.html +162 -133
  220. nautobot/project-static/docs/development/core/best-practices.html +34 -34
  221. nautobot/project-static/docs/development/core/bootstrap-ui.html +34 -34
  222. nautobot/project-static/docs/development/core/caching.html +34 -34
  223. nautobot/project-static/docs/development/core/controllers.html +34 -34
  224. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +34 -34
  225. nautobot/project-static/docs/development/core/generic-views.html +34 -34
  226. nautobot/project-static/docs/development/core/getting-started.html +34 -34
  227. nautobot/project-static/docs/development/core/homepage.html +34 -34
  228. nautobot/project-static/docs/development/core/index.html +34 -34
  229. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +34 -34
  230. nautobot/project-static/docs/development/core/model-checklist.html +34 -34
  231. nautobot/project-static/docs/development/core/model-features.html +34 -34
  232. nautobot/project-static/docs/development/core/natural-keys.html +34 -34
  233. nautobot/project-static/docs/development/core/navigation-menu.html +34 -34
  234. nautobot/project-static/docs/development/core/release-checklist.html +34 -34
  235. nautobot/project-static/docs/development/core/role-internals.html +34 -34
  236. nautobot/project-static/docs/development/core/settings.html +34 -34
  237. nautobot/project-static/docs/development/core/style-guide.html +34 -34
  238. nautobot/project-static/docs/development/core/templates.html +34 -34
  239. nautobot/project-static/docs/development/core/testing.html +34 -34
  240. nautobot/project-static/docs/development/core/ui-component-framework.html +724 -289
  241. nautobot/project-static/docs/development/core/user-preferences.html +34 -34
  242. nautobot/project-static/docs/development/index.html +34 -34
  243. nautobot/project-static/docs/development/jobs/getting-started.html +34 -34
  244. nautobot/project-static/docs/development/jobs/index.html +34 -34
  245. nautobot/project-static/docs/development/jobs/installation.html +34 -34
  246. nautobot/project-static/docs/development/jobs/job-extensions.html +34 -34
  247. nautobot/project-static/docs/development/jobs/job-logging.html +34 -34
  248. nautobot/project-static/docs/development/jobs/job-patterns.html +34 -34
  249. nautobot/project-static/docs/development/jobs/job-structure.html +34 -34
  250. nautobot/project-static/docs/development/jobs/migration/from-v1.html +34 -34
  251. nautobot/project-static/docs/development/jobs/testing.html +34 -34
  252. nautobot/project-static/docs/index.html +34 -34
  253. nautobot/project-static/docs/media/development/core/ui-component-framework/breadcrumbs-titles-data-flow.png +0 -0
  254. nautobot/project-static/docs/media/power_distribution.png +0 -0
  255. nautobot/project-static/docs/objects.inv +0 -0
  256. nautobot/project-static/docs/overview/application_stack.html +34 -34
  257. nautobot/project-static/docs/overview/design_philosophy.html +34 -34
  258. nautobot/project-static/docs/release-notes/index.html +34 -34
  259. nautobot/project-static/docs/release-notes/version-1.0.html +34 -34
  260. nautobot/project-static/docs/release-notes/version-1.1.html +34 -34
  261. nautobot/project-static/docs/release-notes/version-1.2.html +34 -34
  262. nautobot/project-static/docs/release-notes/version-1.3.html +34 -34
  263. nautobot/project-static/docs/release-notes/version-1.4.html +34 -34
  264. nautobot/project-static/docs/release-notes/version-1.5.html +34 -34
  265. nautobot/project-static/docs/release-notes/version-1.6.html +34 -34
  266. nautobot/project-static/docs/release-notes/version-2.0.html +34 -34
  267. nautobot/project-static/docs/release-notes/version-2.1.html +34 -34
  268. nautobot/project-static/docs/release-notes/version-2.2.html +34 -34
  269. nautobot/project-static/docs/release-notes/version-2.3.html +34 -34
  270. nautobot/project-static/docs/release-notes/version-2.4.html +402 -34
  271. nautobot/project-static/docs/requirements.txt +3 -3
  272. nautobot/project-static/docs/search/search_index.json +1 -1
  273. nautobot/project-static/docs/sitemap.xml +303 -299
  274. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  275. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +34 -34
  276. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +34 -34
  277. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +34 -34
  278. nautobot/project-static/docs/user-guide/administration/configuration/index.html +34 -34
  279. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +34 -34
  280. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +37 -37
  281. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +34 -34
  282. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +34 -34
  283. nautobot/project-static/docs/user-guide/administration/guides/docker.html +34 -34
  284. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +34 -34
  285. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +34 -34
  286. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +34 -34
  287. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +34 -34
  288. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +34 -34
  289. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +34 -34
  290. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +34 -34
  291. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +34 -34
  292. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +34 -34
  293. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +34 -34
  294. nautobot/project-static/docs/user-guide/administration/installation/index.html +34 -34
  295. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +34 -34
  296. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +34 -34
  297. nautobot/project-static/docs/user-guide/administration/installation/services.html +34 -34
  298. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +34 -34
  299. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +34 -34
  300. nautobot/project-static/docs/user-guide/administration/security/index.html +34 -34
  301. nautobot/project-static/docs/user-guide/administration/security/notices.html +34 -34
  302. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +296 -251
  303. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +34 -34
  304. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +34 -34
  305. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +34 -34
  306. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +34 -34
  307. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +34 -34
  308. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +34 -34
  309. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +34 -34
  310. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +34 -34
  311. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +34 -34
  312. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +34 -34
  313. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +34 -34
  314. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +34 -34
  315. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +34 -34
  316. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +34 -34
  317. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +34 -34
  318. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +34 -34
  319. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +34 -34
  320. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +34 -34
  321. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +34 -34
  322. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +34 -34
  323. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +34 -34
  324. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +34 -34
  325. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +34 -34
  326. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +34 -34
  327. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +34 -34
  328. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +34 -34
  329. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +34 -34
  330. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +34 -34
  331. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +34 -34
  332. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +34 -34
  333. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +34 -34
  334. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +34 -34
  335. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +34 -34
  336. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +34 -34
  337. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +34 -34
  338. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +34 -34
  339. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +34 -34
  340. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +37 -37
  341. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +34 -34
  342. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +34 -34
  343. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +42 -52
  344. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +34 -34
  345. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +34 -34
  346. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +34 -34
  347. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +34 -34
  348. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +37 -37
  349. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +34 -34
  350. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulefamily.html +34 -34
  351. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +34 -34
  352. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +34 -34
  353. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +316 -39
  354. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +35 -35
  355. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +34 -34
  356. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +147 -37
  357. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +52 -35
  358. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +51 -34
  359. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +34 -34
  360. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +34 -34
  361. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +34 -34
  362. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +34 -34
  363. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +34 -34
  364. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +34 -34
  365. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +34 -34
  366. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +34 -34
  367. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +34 -34
  368. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +34 -34
  369. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +34 -34
  370. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +34 -34
  371. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +34 -34
  372. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +34 -34
  373. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +34 -34
  374. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +34 -34
  375. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +34 -34
  376. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +34 -34
  377. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +34 -34
  378. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +34 -34
  379. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +34 -34
  380. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +34 -34
  381. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +34 -34
  382. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +34 -34
  383. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +34 -34
  384. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +34 -34
  385. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +34 -34
  386. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +34 -34
  387. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +34 -34
  388. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +34 -34
  389. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +34 -34
  390. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +34 -34
  391. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +34 -34
  392. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +34 -34
  393. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +34 -34
  394. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +34 -34
  395. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +34 -34
  396. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +34 -34
  397. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +34 -34
  398. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +34 -34
  399. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +34 -34
  400. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +34 -34
  401. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +34 -34
  402. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +34 -34
  403. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +34 -34
  404. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +34 -34
  405. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +34 -34
  406. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +34 -34
  407. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +34 -34
  408. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +34 -34
  409. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +34 -34
  410. nautobot/project-static/docs/user-guide/index.html +34 -34
  411. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +34 -34
  412. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +34 -34
  413. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +34 -34
  414. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +34 -34
  415. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +34 -34
  416. nautobot/project-static/docs/user-guide/platform-functionality/events.html +34 -34
  417. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +34 -34
  418. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +34 -34
  419. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +34 -34
  420. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +34 -34
  421. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +34 -34
  422. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +34 -34
  423. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +34 -34
  424. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +35 -35
  425. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +34 -34
  426. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +34 -34
  427. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +34 -34
  428. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +34 -34
  429. nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +34 -34
  430. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +34 -34
  431. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +34 -34
  432. nautobot/project-static/docs/user-guide/platform-functionality/note.html +34 -34
  433. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +34 -34
  434. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +34 -34
  435. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +34 -34
  436. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +34 -34
  437. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +34 -34
  438. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +34 -34
  439. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +34 -34
  440. nautobot/project-static/docs/user-guide/platform-functionality/role.html +34 -34
  441. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +34 -34
  442. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +34 -34
  443. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +34 -34
  444. nautobot/project-static/docs/user-guide/platform-functionality/status.html +34 -34
  445. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +34 -34
  446. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +34 -34
  447. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +34 -34
  448. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +34 -34
  449. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +34 -34
  450. nautobot/tenancy/api/views.py +2 -1
  451. nautobot/users/tests/test_api.py +2 -2
  452. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -252
  453. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -75
  454. nautobot/virtualization/templates/virtualization/virtualmachine_retrieve.html +252 -0
  455. nautobot/virtualization/templates/virtualization/virtualmachine_update.html +75 -0
  456. nautobot/virtualization/urls.py +3 -61
  457. nautobot/virtualization/views.py +48 -72
  458. {nautobot-2.4.13.dist-info → nautobot-2.4.15.dist-info}/METADATA +27 -27
  459. {nautobot-2.4.13.dist-info → nautobot-2.4.15.dist-info}/RECORD +463 -439
  460. {nautobot-2.4.13.dist-info → nautobot-2.4.15.dist-info}/LICENSE.txt +0 -0
  461. {nautobot-2.4.13.dist-info → nautobot-2.4.15.dist-info}/NOTICE +0 -0
  462. {nautobot-2.4.13.dist-info → nautobot-2.4.15.dist-info}/WHEEL +0 -0
  463. {nautobot-2.4.13.dist-info → nautobot-2.4.15.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
 
@@ -9663,6 +9640,29 @@
9663
9640
 
9664
9641
 
9665
9642
 
9643
+
9644
+
9645
+
9646
+
9647
+
9648
+
9649
+ <li class="md-nav__item">
9650
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
9651
+
9652
+
9653
+
9654
+ <span class="md-ellipsis">
9655
+ Breadcrumbs and titles
9656
+
9657
+ </span>
9658
+
9659
+
9660
+ </a>
9661
+ </li>
9662
+
9663
+
9664
+
9665
+
9666
9666
  </ul>
9667
9667
  </nav>
9668
9668
 
@@ -12002,6 +12002,7 @@
12002
12002
 
12003
12003
 
12004
12004
 
12005
+
12005
12006
  <div class="doc doc-children">
12006
12007
 
12007
12008
 
@@ -12037,6 +12038,7 @@
12037
12038
 
12038
12039
 
12039
12040
 
12041
+
12040
12042
  <div class="doc doc-children">
12041
12043
 
12042
12044
 
@@ -12068,7 +12070,7 @@
12068
12070
 
12069
12071
  <div class="doc doc-contents ">
12070
12072
  <p class="doc doc-class-bases">
12071
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12073
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12072
12074
 
12073
12075
 
12074
12076
  <p>Add one or more components (e.g. interfaces, console ports, etc.) to a set of Devices or VirtualMachines.</p>
@@ -12081,6 +12083,7 @@
12081
12083
 
12082
12084
 
12083
12085
 
12086
+
12084
12087
  <div class="doc doc-children">
12085
12088
 
12086
12089
 
@@ -12112,7 +12115,7 @@
12112
12115
 
12113
12116
  <div class="doc doc-contents ">
12114
12117
  <p class="doc doc-class-bases">
12115
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12118
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12116
12119
 
12117
12120
 
12118
12121
  <p>Create new objects in bulk.</p>
@@ -12130,6 +12133,7 @@ template_name: The name of the template</p>
12130
12133
 
12131
12134
 
12132
12135
 
12136
+
12133
12137
  <div class="doc doc-children">
12134
12138
 
12135
12139
 
@@ -12161,7 +12165,7 @@ template_name: The name of the template</p>
12161
12165
 
12162
12166
  <div class="doc doc-contents ">
12163
12167
  <p class="doc doc-class-bases">
12164
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
12168
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
12165
12169
 
12166
12170
 
12167
12171
  <p>Delete objects in bulk.</p>
@@ -12179,6 +12183,7 @@ template_name: The name of the template</p>
12179
12183
 
12180
12184
 
12181
12185
 
12186
+
12182
12187
  <div class="doc doc-children">
12183
12188
 
12184
12189
 
@@ -12202,6 +12207,7 @@ template_name: The name of the template</p>
12202
12207
 
12203
12208
  <p>Provide a standard bulk delete form if none has been specified for the view</p>
12204
12209
 
12210
+
12205
12211
  </div>
12206
12212
 
12207
12213
  </div>
@@ -12227,7 +12233,7 @@ template_name: The name of the template</p>
12227
12233
 
12228
12234
  <div class="doc doc-contents ">
12229
12235
  <p class="doc doc-class-bases">
12230
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
12236
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
12231
12237
 
12232
12238
 
12233
12239
  <p>Edit objects in bulk.</p>
@@ -12245,6 +12251,7 @@ template_name: The name of the template</p>
12245
12251
 
12246
12252
 
12247
12253
 
12254
+
12248
12255
  <div class="doc doc-children">
12249
12256
 
12250
12257
 
@@ -12268,6 +12275,7 @@ template_name: The name of the template</p>
12268
12275
 
12269
12276
  <p>Extra actions after a form is saved</p>
12270
12277
 
12278
+
12271
12279
  </div>
12272
12280
 
12273
12281
  </div>
@@ -12293,7 +12301,7 @@ template_name: The name of the template</p>
12293
12301
 
12294
12302
  <div class="doc doc-contents ">
12295
12303
  <p class="doc doc-class-bases">
12296
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12304
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12297
12305
 
12298
12306
 
12299
12307
  <p>Import objects in bulk (CSV format).</p>
@@ -12310,6 +12318,7 @@ template_name: The name of the template</p>
12310
12318
 
12311
12319
 
12312
12320
 
12321
+
12313
12322
  <div class="doc doc-children">
12314
12323
 
12315
12324
 
@@ -12341,7 +12350,7 @@ template_name: The name of the template</p>
12341
12350
 
12342
12351
  <div class="doc doc-contents ">
12343
12352
  <p class="doc doc-class-bases">
12344
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12353
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12345
12354
 
12346
12355
 
12347
12356
  <p>An extendable view for renaming objects in bulk.</p>
@@ -12354,6 +12363,7 @@ template_name: The name of the template</p>
12354
12363
 
12355
12364
 
12356
12365
 
12366
+
12357
12367
  <div class="doc doc-children">
12358
12368
 
12359
12369
 
@@ -12395,7 +12405,7 @@ template_name: The name of the template</p>
12395
12405
  <code>selected_objects</code>
12396
12406
  </td>
12397
12407
  <td>
12398
- <code>list[BaseModel]</code>
12408
+ <code><span title="list">list</span>[<span title="BaseModel">BaseModel</span>]</code>
12399
12409
  </td>
12400
12410
  <td>
12401
12411
  <div class="doc-md-description">
@@ -12421,7 +12431,7 @@ template_name: The name of the template</p>
12421
12431
  <tbody>
12422
12432
  <tr class="doc-section-item">
12423
12433
  <td>
12424
- <code>str</code>
12434
+ <code><span title="str">str</span></code>
12425
12435
  </td>
12426
12436
  <td>
12427
12437
  <div class="doc-md-description">
@@ -12432,6 +12442,7 @@ template_name: The name of the template</p>
12432
12442
  </tbody>
12433
12443
  </table>
12434
12444
 
12445
+
12435
12446
  </div>
12436
12447
 
12437
12448
  </div>
@@ -12457,7 +12468,7 @@ template_name: The name of the template</p>
12457
12468
 
12458
12469
  <div class="doc doc-contents ">
12459
12470
  <p class="doc doc-class-bases">
12460
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12471
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12461
12472
 
12462
12473
 
12463
12474
  <p>Add one or more components (e.g. interfaces, console ports, etc.) to a Device or VirtualMachine.</p>
@@ -12470,6 +12481,7 @@ template_name: The name of the template</p>
12470
12481
 
12471
12482
 
12472
12483
 
12484
+
12473
12485
  <div class="doc doc-children">
12474
12486
 
12475
12487
 
@@ -12521,6 +12533,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12521
12533
 
12522
12534
 
12523
12535
 
12536
+
12524
12537
  <div class="doc doc-children">
12525
12538
 
12526
12539
 
@@ -12544,6 +12557,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12544
12557
 
12545
12558
  <p>Return the specific permission necessary to perform the requested action on an object.</p>
12546
12559
 
12560
+
12547
12561
  </div>
12548
12562
 
12549
12563
  </div>
@@ -12581,6 +12595,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12581
12595
 
12582
12596
 
12583
12597
 
12598
+
12584
12599
  </div>
12585
12600
 
12586
12601
  </div>
@@ -12609,6 +12624,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12609
12624
 
12610
12625
 
12611
12626
 
12627
+
12612
12628
  <div class="doc doc-children">
12613
12629
 
12614
12630
 
@@ -12653,6 +12669,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12653
12669
 
12654
12670
 
12655
12671
 
12672
+
12656
12673
  <div class="doc doc-children">
12657
12674
 
12658
12675
 
@@ -12676,6 +12693,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12676
12693
 
12677
12694
  <p>Helper function to construct and paginate the table for rendering used in the ObjectListView, ObjectBulkUpdateView and ObjectBulkDestroyView.</p>
12678
12695
 
12696
+
12679
12697
  </div>
12680
12698
 
12681
12699
  </div>
@@ -12694,6 +12712,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
12694
12712
  <p>Helper function to gather the user's permissions to add, change, delete and view the model,
12695
12713
  and then render the action buttons accordingly allowed in the ObjectListView UI.</p>
12696
12714
 
12715
+
12697
12716
  </div>
12698
12717
 
12699
12718
  </div>
@@ -12713,6 +12732,7 @@ and then render the action buttons accordingly allowed in the ObjectListView UI.
12713
12732
  context variable contains template context needed to render Nautobot generic templates / circuits templates.
12714
12733
  Override this function to add additional key/value pair to pass it to your templates.</p>
12715
12734
 
12735
+
12716
12736
  </div>
12717
12737
 
12718
12738
  </div>
@@ -12731,6 +12751,7 @@ Override this function to add additional key/value pair to pass it to your templ
12731
12751
  <p>Helper function to obtain the filter_form_class,
12732
12752
  and then initialize and return the filter_form used in the ObjectListView UI.</p>
12733
12753
 
12754
+
12734
12755
  </div>
12735
12756
 
12736
12757
  </div>
@@ -12748,6 +12769,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12748
12769
 
12749
12770
  <p>Overrode render() from BrowsableAPIRenderer to set self.template with NautobotViewSet's get_template_name() before it is rendered.</p>
12750
12771
 
12772
+
12751
12773
  </div>
12752
12774
 
12753
12775
  </div>
@@ -12765,6 +12787,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12765
12787
 
12766
12788
  <p>Verify actions in self.action_buttons are valid view actions.</p>
12767
12789
 
12790
+
12768
12791
  </div>
12769
12792
 
12770
12793
  </div>
@@ -12790,7 +12813,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12790
12813
 
12791
12814
  <div class="doc doc-contents ">
12792
12815
  <p class="doc doc-class-bases">
12793
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectDetailViewMixin" href="#nautobot.apps.views.ObjectDetailViewMixin">ObjectDetailViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectListViewMixin" href="#nautobot.apps.views.ObjectListViewMixin">ObjectListViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectEditViewMixin" href="#nautobot.apps.views.ObjectEditViewMixin">ObjectEditViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectDestroyViewMixin" href="#nautobot.apps.views.ObjectDestroyViewMixin">ObjectDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkDestroyViewMixin" href="#nautobot.apps.views.ObjectBulkDestroyViewMixin">ObjectBulkDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkCreateViewMixin" href="#nautobot.apps.views.ObjectBulkCreateViewMixin">ObjectBulkCreateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkUpdateViewMixin" href="#nautobot.apps.views.ObjectBulkUpdateViewMixin">ObjectBulkUpdateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectChangeLogViewMixin" href="#nautobot.apps.views.ObjectChangeLogViewMixin">ObjectChangeLogViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectNotesViewMixin" href="#nautobot.apps.views.ObjectNotesViewMixin">ObjectNotesViewMixin</a></code></p>
12816
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectDetailViewMixin (nautobot.core.views.mixins.ObjectDetailViewMixin)" href="#nautobot.apps.views.ObjectDetailViewMixin">ObjectDetailViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectListViewMixin (nautobot.core.views.mixins.ObjectListViewMixin)" href="#nautobot.apps.views.ObjectListViewMixin">ObjectListViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectEditViewMixin (nautobot.core.views.mixins.ObjectEditViewMixin)" href="#nautobot.apps.views.ObjectEditViewMixin">ObjectEditViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectDestroyViewMixin (nautobot.core.views.mixins.ObjectDestroyViewMixin)" href="#nautobot.apps.views.ObjectDestroyViewMixin">ObjectDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectBulkDestroyViewMixin (nautobot.core.views.mixins.ObjectBulkDestroyViewMixin)" href="#nautobot.apps.views.ObjectBulkDestroyViewMixin">ObjectBulkDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectBulkCreateViewMixin (nautobot.core.views.mixins.ObjectBulkCreateViewMixin)" href="#nautobot.apps.views.ObjectBulkCreateViewMixin">ObjectBulkCreateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectBulkUpdateViewMixin (nautobot.core.views.mixins.ObjectBulkUpdateViewMixin)" href="#nautobot.apps.views.ObjectBulkUpdateViewMixin">ObjectBulkUpdateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectChangeLogViewMixin (nautobot.core.views.mixins.ObjectChangeLogViewMixin)" href="#nautobot.apps.views.ObjectChangeLogViewMixin">ObjectChangeLogViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectNotesViewMixin (nautobot.core.views.mixins.ObjectNotesViewMixin)" href="#nautobot.apps.views.ObjectNotesViewMixin">ObjectNotesViewMixin</a></code></p>
12794
12817
 
12795
12818
 
12796
12819
  <p>Nautobot BaseViewSet that is intended for UI use only. It provides default Nautobot functionalities such as
@@ -12805,6 +12828,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12805
12828
 
12806
12829
 
12807
12830
 
12831
+
12808
12832
  <div class="doc doc-children">
12809
12833
 
12810
12834
 
@@ -12836,7 +12860,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12836
12860
 
12837
12861
  <div class="doc doc-contents ">
12838
12862
  <p class="doc doc-class-bases">
12839
- Bases: <code><span title="rest_framework.viewsets.GenericViewSet">GenericViewSet</span></code>, <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><span title="django.views.generic.edit.FormView">FormView</span></code></p>
12863
+ Bases: <code><span title="rest_framework.viewsets.GenericViewSet">GenericViewSet</span></code>, <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><span title="django.views.generic.edit.FormView">FormView</span></code></p>
12840
12864
 
12841
12865
 
12842
12866
  <p>NautobotViewSetMixin is an aggregation of various mixins from DRF, Django and Nautobot to acheive the desired behavior pattern for NautobotUIViewSet</p>
@@ -12849,6 +12873,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12849
12873
 
12850
12874
 
12851
12875
 
12876
+
12852
12877
  <div class="doc doc-children">
12853
12878
 
12854
12879
 
@@ -12872,6 +12897,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12872
12897
 
12873
12898
  <p>Check whether the user has the permissions needed to perform certain actions.</p>
12874
12899
 
12900
+
12875
12901
  </div>
12876
12902
 
12877
12903
  </div>
@@ -12891,6 +12917,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
12891
12917
  Used to determine whether the user has permissions to a view and object-level permissions.
12892
12918
  Using AccessMixin handle_no_permission() to deal with Object-Level permissions and API-Level permissions in one pass.</p>
12893
12919
 
12920
+
12894
12921
  </div>
12895
12922
 
12896
12923
  </div>
@@ -12908,6 +12935,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
12908
12935
 
12909
12936
  <p>Extra actions after a form is saved</p>
12910
12937
 
12938
+
12911
12939
  </div>
12912
12940
 
12913
12941
  </div>
@@ -12925,6 +12953,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
12925
12953
 
12926
12954
  <p>Handle invalid forms.</p>
12927
12955
 
12956
+
12928
12957
  </div>
12929
12958
 
12930
12959
  </div>
@@ -12943,6 +12972,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
12943
12972
  <p>Generic method to save the object from form.
12944
12973
  Should be overriden by user if customization is needed.</p>
12945
12974
 
12975
+
12946
12976
  </div>
12947
12977
 
12948
12978
  </div>
@@ -12960,6 +12990,7 @@ Should be overriden by user if customization is needed.</p>
12960
12990
 
12961
12991
  <p>Handle valid forms and redirect to success_url.</p>
12962
12992
 
12993
+
12963
12994
  </div>
12964
12995
 
12965
12996
  </div>
@@ -12977,6 +13008,7 @@ Should be overriden by user if customization is needed.</p>
12977
13008
 
12978
13009
  <p>Helper method for retrieving action and if action not set defaulting to action name.</p>
12979
13010
 
13011
+
12980
13012
  </div>
12981
13013
 
12982
13014
  </div>
@@ -12996,6 +13028,7 @@ Should be overriden by user if customization is needed.</p>
12996
13028
  request: The current request
12997
13029
  instance: The object being viewed</p>
12998
13030
 
13031
+
12999
13032
  </div>
13000
13033
 
13001
13034
  </div>
@@ -13013,6 +13046,7 @@ instance: The object being viewed</p>
13013
13046
 
13014
13047
  <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
13015
13048
 
13049
+
13016
13050
  </div>
13017
13051
 
13018
13052
  </div>
@@ -13031,6 +13065,7 @@ instance: The object being viewed</p>
13031
13065
  <p>Helper function to get form for different views if specified.
13032
13066
  If not, return instantiated form using form_class.</p>
13033
13067
 
13068
+
13034
13069
  </div>
13035
13070
 
13036
13071
  </div>
@@ -13048,6 +13083,7 @@ If not, return instantiated form using form_class.</p>
13048
13083
 
13049
13084
  <p>Helper function to get form_class for different views.</p>
13050
13085
 
13086
+
13051
13087
  </div>
13052
13088
 
13053
13089
  </div>
@@ -13068,6 +13104,7 @@ You may want to override this if you need to provide non-standard
13068
13104
  queryset lookups. Eg if objects are referenced using multiple
13069
13105
  keyword arguments in the url conf.</p>
13070
13106
 
13107
+
13071
13108
  </div>
13072
13109
 
13073
13110
  </div>
@@ -13087,6 +13124,7 @@ keyword arguments in the url conf.</p>
13087
13124
  <p>:param model: A model or instance
13088
13125
  :param actions: A list of actions to perform on the model</p>
13089
13126
 
13127
+
13090
13128
  </div>
13091
13129
 
13092
13130
  </div>
@@ -13110,6 +13148,7 @@ directly, as <code>self.queryset</code> gets evaluated only once, and those resu
13110
13148
  are cached for all subsequent requests.
13111
13149
  Override the original <code>get_queryset()</code> to apply permission specific to the user and action.</p>
13112
13150
 
13151
+
13113
13152
  </div>
13114
13153
 
13115
13154
  </div>
@@ -13127,6 +13166,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13127
13166
 
13128
13167
  <p>Obtain the permissions needed to perform certain actions on a model.</p>
13129
13168
 
13169
+
13130
13170
  </div>
13131
13171
 
13132
13172
  </div>
@@ -13152,7 +13192,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13152
13192
 
13153
13193
  <div class="doc doc-contents ">
13154
13194
  <p class="doc doc-class-bases">
13155
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
13195
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
13156
13196
 
13157
13197
 
13158
13198
  <p>UI mixin to bulk create model instances.</p>
@@ -13166,6 +13206,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13166
13206
 
13167
13207
 
13168
13208
 
13209
+
13169
13210
  <div class="doc doc-children">
13170
13211
 
13171
13212
 
@@ -13197,7 +13238,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13197
13238
 
13198
13239
  <div class="doc doc-contents ">
13199
13240
  <p class="doc doc-class-bases">
13200
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkDestroyModelMixin" href="api.html#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
13241
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BulkDestroyModelMixin (nautobot.core.api.views.BulkDestroyModelMixin)" href="api.html#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
13201
13242
 
13202
13243
 
13203
13244
  <p>UI mixin to bulk destroy model instances.</p>
@@ -13210,6 +13251,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13210
13251
 
13211
13252
 
13212
13253
 
13254
+
13213
13255
  <div class="doc doc-children">
13214
13256
 
13215
13257
 
@@ -13235,6 +13277,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
13235
13277
  The function exist to keep the DRF's get/post pattern of {action}/perform_{action}, we will need it when we transition from using forms to serializers in the UI.
13236
13278
  User should override this function to handle any actions as needed before bulk destroy.</p>
13237
13279
 
13280
+
13238
13281
  </div>
13239
13282
 
13240
13283
  </div>
@@ -13253,6 +13296,7 @@ User should override this function to handle any actions as needed before bulk d
13253
13296
  <p>request.POST "_delete": Function to render the user selection of objects in a table form/BulkDestroyConfirmationForm via Response that is passed to NautobotHTMLRenderer.
13254
13297
  request.POST "_confirm": Function to validate the table form/BulkDestroyConfirmationForm and to perform the action of bulk destroy. Render the form with errors if exceptions are raised.</p>
13255
13298
 
13299
+
13256
13300
  </div>
13257
13301
 
13258
13302
  </div>
@@ -13278,7 +13322,7 @@ request.POST "_confirm": Function to validate the table form/BulkDestroyConfirma
13278
13322
 
13279
13323
  <div class="doc doc-contents ">
13280
13324
  <p class="doc doc-class-bases">
13281
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkUpdateModelMixin" href="api.html#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
13325
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BulkUpdateModelMixin (nautobot.core.api.views.BulkUpdateModelMixin)" href="api.html#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
13282
13326
 
13283
13327
 
13284
13328
  <p>UI mixin to bulk update model instances.</p>
@@ -13291,6 +13335,7 @@ request.POST "_confirm": Function to validate the table form/BulkDestroyConfirma
13291
13335
 
13292
13336
 
13293
13337
 
13338
+
13294
13339
  <div class="doc doc-children">
13295
13340
 
13296
13341
 
@@ -13316,6 +13361,7 @@ request.POST "_confirm": Function to validate the table form/BulkDestroyConfirma
13316
13361
  The function exist to keep the DRF's get/post pattern of {action}/perform_{action}, we will need it when we transition from using forms to serializers in the UI.
13317
13362
  User should override this function to handle any actions as needed before bulk update.</p>
13318
13363
 
13364
+
13319
13365
  </div>
13320
13366
 
13321
13367
  </div>
@@ -13334,6 +13380,7 @@ User should override this function to handle any actions as needed before bulk u
13334
13380
  <p>request.POST "_edit": Function to render the user selection of objects in a table form/BulkUpdateForm via Response that is passed to NautobotHTMLRenderer.
13335
13381
  request.POST "_apply": Function to validate the table form/BulkUpdateForm and to perform the action of bulk update. Render the form with errors if exceptions are raised.</p>
13336
13382
 
13383
+
13337
13384
  </div>
13338
13385
 
13339
13386
  </div>
@@ -13359,7 +13406,7 @@ request.POST "_apply": Function to validate the table form/BulkUpdateForm and to
13359
13406
 
13360
13407
  <div class="doc doc-contents ">
13361
13408
  <p class="doc doc-class-bases">
13362
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
13409
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
13363
13410
 
13364
13411
 
13365
13412
  <p>UI mixin to list a model's changelog queryset.</p>
@@ -13378,6 +13425,7 @@ will be used, as per <code>get_base_template()</code>.</p>
13378
13425
 
13379
13426
 
13380
13427
 
13428
+
13381
13429
  <div class="doc doc-children">
13382
13430
 
13383
13431
 
@@ -13409,7 +13457,7 @@ will be used, as per <code>get_base_template()</code>.</p>
13409
13457
 
13410
13458
  <div class="doc doc-contents ">
13411
13459
  <p class="doc doc-class-bases">
13412
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13460
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13413
13461
 
13414
13462
 
13415
13463
  <p>Delete a single object.</p>
@@ -13424,6 +13472,7 @@ template_name: The name of the template</p>
13424
13472
 
13425
13473
 
13426
13474
 
13475
+
13427
13476
  <div class="doc doc-children">
13428
13477
 
13429
13478
 
@@ -13447,6 +13496,7 @@ template_name: The name of the template</p>
13447
13496
 
13448
13497
  <p>Retrieve an object based on <code>kwargs</code>.</p>
13449
13498
 
13499
+
13450
13500
  </div>
13451
13501
 
13452
13502
  </div>
@@ -13472,7 +13522,7 @@ template_name: The name of the template</p>
13472
13522
 
13473
13523
  <div class="doc doc-contents ">
13474
13524
  <p class="doc doc-class-bases">
13475
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.DestroyModelMixin">DestroyModelMixin</span></code></p>
13525
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.DestroyModelMixin">DestroyModelMixin</span></code></p>
13476
13526
 
13477
13527
 
13478
13528
  <p>UI mixin to destroy a model instance.</p>
@@ -13485,6 +13535,7 @@ template_name: The name of the template</p>
13485
13535
 
13486
13536
 
13487
13537
 
13538
+
13488
13539
  <div class="doc doc-children">
13489
13540
 
13490
13541
 
@@ -13510,6 +13561,7 @@ template_name: The name of the template</p>
13510
13561
  request.POST: call perform_destroy() which validates the form and perform the action of delete.
13511
13562
  Override to add more variables to Response</p>
13512
13563
 
13564
+
13513
13565
  </div>
13514
13566
 
13515
13567
  </div>
@@ -13527,6 +13579,7 @@ Override to add more variables to Response</p>
13527
13579
 
13528
13580
  <p>Function to validate the ObjectDeleteConfirmationForm and to delete the object.</p>
13529
13581
 
13582
+
13530
13583
  </div>
13531
13584
 
13532
13585
  </div>
@@ -13552,7 +13605,7 @@ Override to add more variables to Response</p>
13552
13605
 
13553
13606
  <div class="doc doc-contents ">
13554
13607
  <p class="doc doc-class-bases">
13555
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.RetrieveModelMixin">RetrieveModelMixin</span></code></p>
13608
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.RetrieveModelMixin">RetrieveModelMixin</span></code></p>
13556
13609
 
13557
13610
 
13558
13611
  <p>UI mixin to retrieve a model instance.</p>
@@ -13565,6 +13618,7 @@ Override to add more variables to Response</p>
13565
13618
 
13566
13619
 
13567
13620
 
13621
+
13568
13622
  <div class="doc doc-children">
13569
13623
 
13570
13624
 
@@ -13588,6 +13642,7 @@ Override to add more variables to Response</p>
13588
13642
 
13589
13643
  <p>Retrieve a model instance.</p>
13590
13644
 
13645
+
13591
13646
  </div>
13592
13647
 
13593
13648
  </div>
@@ -13613,7 +13668,7 @@ Override to add more variables to Response</p>
13613
13668
 
13614
13669
  <div class="doc doc-contents ">
13615
13670
  <p class="doc doc-class-bases">
13616
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.generic.GenericView" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
13671
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GenericView (nautobot.core.views.generic.GenericView)" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
13617
13672
 
13618
13673
 
13619
13674
  <p>Present a list of dynamic groups associated to a particular object.</p>
@@ -13634,6 +13689,7 @@ will be used, as per <code>get_base_template()</code>.</p>
13634
13689
 
13635
13690
 
13636
13691
 
13692
+
13637
13693
  <div class="doc doc-children">
13638
13694
 
13639
13695
 
@@ -13665,7 +13721,7 @@ will be used, as per <code>get_base_template()</code>.</p>
13665
13721
 
13666
13722
  <div class="doc doc-contents ">
13667
13723
  <p class="doc doc-class-bases">
13668
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13724
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13669
13725
 
13670
13726
 
13671
13727
  <p>Create or edit a single object.</p>
@@ -13681,6 +13737,7 @@ template_name: The name of the template</p>
13681
13737
 
13682
13738
 
13683
13739
 
13740
+
13684
13741
  <div class="doc doc-children">
13685
13742
 
13686
13743
 
@@ -13721,7 +13778,7 @@ template_name: The name of the template</p>
13721
13778
  <code>request</code>
13722
13779
  </td>
13723
13780
  <td>
13724
- <code>HttpRequest</code>
13781
+ <code><span title="HttpRequest">HttpRequest</span></code>
13725
13782
  </td>
13726
13783
  <td>
13727
13784
  <div class="doc-md-description">
@@ -13763,7 +13820,7 @@ template_name: The name of the template</p>
13763
13820
  <tbody>
13764
13821
  <tr class="doc-section-item">
13765
13822
  <td>
13766
- <code>dict</code>
13823
+ <code><span title="dict">dict</span></code>
13767
13824
  </td>
13768
13825
  <td>
13769
13826
  <div class="doc-md-description">
@@ -13774,6 +13831,7 @@ template_name: The name of the template</p>
13774
13831
  </tbody>
13775
13832
  </table>
13776
13833
 
13834
+
13777
13835
  </div>
13778
13836
 
13779
13837
  </div>
@@ -13791,6 +13849,7 @@ template_name: The name of the template</p>
13791
13849
 
13792
13850
  <p>Retrieve an object based on <code>kwargs</code>.</p>
13793
13851
 
13852
+
13794
13853
  </div>
13795
13854
 
13796
13855
  </div>
@@ -13808,6 +13867,7 @@ template_name: The name of the template</p>
13808
13867
 
13809
13868
  <p>Callback after the form is successfully saved but before redirecting the user.</p>
13810
13869
 
13870
+
13811
13871
  </div>
13812
13872
 
13813
13873
  </div>
@@ -13833,7 +13893,7 @@ template_name: The name of the template</p>
13833
13893
 
13834
13894
  <div class="doc doc-contents ">
13835
13895
  <p class="doc doc-class-bases">
13836
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.CreateModelMixin">CreateModelMixin</span></code>, <code><span title="rest_framework.mixins.UpdateModelMixin">UpdateModelMixin</span></code></p>
13896
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.CreateModelMixin">CreateModelMixin</span></code>, <code><span title="rest_framework.mixins.UpdateModelMixin">UpdateModelMixin</span></code></p>
13837
13897
 
13838
13898
 
13839
13899
  <p>UI mixin to create or update a model instance.</p>
@@ -13846,6 +13906,7 @@ template_name: The name of the template</p>
13846
13906
 
13847
13907
 
13848
13908
 
13909
+
13849
13910
  <div class="doc doc-children">
13850
13911
 
13851
13912
 
@@ -13871,6 +13932,7 @@ template_name: The name of the template</p>
13871
13932
  request.POST: call perform_create() which validates the form and perform the action of create.
13872
13933
  Override to add more variables to Response.</p>
13873
13934
 
13935
+
13874
13936
  </div>
13875
13937
 
13876
13938
  </div>
@@ -13888,6 +13950,7 @@ Override to add more variables to Response.</p>
13888
13950
 
13889
13951
  <p>Append extra message at the end of create or update success message.</p>
13890
13952
 
13953
+
13891
13954
  </div>
13892
13955
 
13893
13956
  </div>
@@ -13905,6 +13968,7 @@ Override to add more variables to Response.</p>
13905
13968
 
13906
13969
  <p>Context variables for this extra message.</p>
13907
13970
 
13971
+
13908
13972
  </div>
13909
13973
 
13910
13974
  </div>
@@ -13922,6 +13986,7 @@ Override to add more variables to Response.</p>
13922
13986
 
13923
13987
  <p>Function to validate the ObjectForm and to create a new object.</p>
13924
13988
 
13989
+
13925
13990
  </div>
13926
13991
 
13927
13992
  </div>
@@ -13939,6 +14004,7 @@ Override to add more variables to Response.</p>
13939
14004
 
13940
14005
  <p>Function to validate the ObjectEditForm and to update/partial_update an existing object.</p>
13941
14006
 
14007
+
13942
14008
  </div>
13943
14009
 
13944
14010
  </div>
@@ -13958,6 +14024,7 @@ Override to add more variables to Response.</p>
13958
14024
  request.POST: call perform_update() which validates the form and perform the action of update/partial_update of an existing object.
13959
14025
  Override to add more variables to Response.</p>
13960
14026
 
14027
+
13961
14028
  </div>
13962
14029
 
13963
14030
  </div>
@@ -13983,7 +14050,7 @@ Override to add more variables to Response.</p>
13983
14050
 
13984
14051
  <div class="doc doc-contents ">
13985
14052
  <p class="doc doc-class-bases">
13986
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
14053
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13987
14054
 
13988
14055
 
13989
14056
  <p>Import a single object (YAML or JSON format).</p>
@@ -14000,6 +14067,7 @@ template_name: The name of the template</p>
14000
14067
 
14001
14068
 
14002
14069
 
14070
+
14003
14071
  <div class="doc doc-children">
14004
14072
 
14005
14073
 
@@ -14031,7 +14099,7 @@ template_name: The name of the template</p>
14031
14099
 
14032
14100
  <div class="doc doc-contents ">
14033
14101
  <p class="doc doc-class-bases">
14034
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
14102
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
14035
14103
 
14036
14104
 
14037
14105
  <p>List a series of objects.</p>
@@ -14054,6 +14122,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14054
14122
 
14055
14123
 
14056
14124
 
14125
+
14057
14126
  <div class="doc doc-children">
14058
14127
 
14059
14128
 
@@ -14077,6 +14146,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14077
14146
 
14078
14147
  <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
14079
14148
 
14149
+
14080
14150
  </div>
14081
14151
 
14082
14152
  </div>
@@ -14094,6 +14164,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14094
14164
 
14095
14165
  <p>Export the queryset of objects as concatenated YAML documents.</p>
14096
14166
 
14167
+
14097
14168
  </div>
14098
14169
 
14099
14170
  </div>
@@ -14111,6 +14182,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14111
14182
 
14112
14183
  <p>Verify actions in self.action_buttons are valid view actions.</p>
14113
14184
 
14185
+
14114
14186
  </div>
14115
14187
 
14116
14188
  </div>
@@ -14136,7 +14208,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14136
14208
 
14137
14209
  <div class="doc doc-contents ">
14138
14210
  <p class="doc doc-class-bases">
14139
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.ListModelMixin">ListModelMixin</span></code></p>
14211
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.ListModelMixin">ListModelMixin</span></code></p>
14140
14212
 
14141
14213
 
14142
14214
  <p>UI mixin to list a model queryset</p>
@@ -14149,6 +14221,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14149
14221
 
14150
14222
 
14151
14223
 
14224
+
14152
14225
  <div class="doc doc-children">
14153
14226
 
14154
14227
 
@@ -14172,6 +14245,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14172
14245
 
14173
14246
  <p>Filter a query with request querystrings.</p>
14174
14247
 
14248
+
14175
14249
  </div>
14176
14250
 
14177
14251
  </div>
@@ -14189,6 +14263,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14189
14263
 
14190
14264
  <p>List the model instances.</p>
14191
14265
 
14266
+
14192
14267
  </div>
14193
14268
 
14194
14269
  </div>
@@ -14206,6 +14281,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14206
14281
 
14207
14282
  <p>Export the queryset of objects as concatenated YAML documents.</p>
14208
14283
 
14284
+
14209
14285
  </div>
14210
14286
 
14211
14287
  </div>
@@ -14231,7 +14307,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
14231
14307
 
14232
14308
  <div class="doc doc-contents ">
14233
14309
  <p class="doc doc-class-bases">
14234
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.generic.GenericView" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
14310
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GenericView (nautobot.core.views.generic.GenericView)" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
14235
14311
 
14236
14312
 
14237
14313
  <p>Present a list of notes associated to a particular object.</p>
@@ -14250,6 +14326,7 @@ will be used, as per <code>get_base_template()</code>.</p>
14250
14326
 
14251
14327
 
14252
14328
 
14329
+
14253
14330
  <div class="doc doc-children">
14254
14331
 
14255
14332
 
@@ -14281,7 +14358,7 @@ will be used, as per <code>get_base_template()</code>.</p>
14281
14358
 
14282
14359
  <div class="doc doc-contents ">
14283
14360
  <p class="doc doc-class-bases">
14284
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
14361
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.NautobotViewSetMixin (nautobot.core.views.mixins.NautobotViewSetMixin)" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
14285
14362
 
14286
14363
 
14287
14364
  <p>UI Mixin for an Object's Notes.</p>
@@ -14300,6 +14377,7 @@ will be used, as per <code>get_base_template()</code>.</p>
14300
14377
 
14301
14378
 
14302
14379
 
14380
+
14303
14381
  <div class="doc doc-children">
14304
14382
 
14305
14383
 
@@ -14351,6 +14429,7 @@ to return only those objects on which the user is permitted to perform the speci
14351
14429
 
14352
14430
 
14353
14431
 
14432
+
14354
14433
  <div class="doc doc-children">
14355
14434
 
14356
14435
 
@@ -14374,6 +14453,7 @@ to return only those objects on which the user is permitted to perform the speci
14374
14453
 
14375
14454
  <p>Return the specific permission necessary to perform the requested action on an object.</p>
14376
14455
 
14456
+
14377
14457
  </div>
14378
14458
 
14379
14459
  </div>
@@ -14399,7 +14479,7 @@ to return only those objects on which the user is permitted to perform the speci
14399
14479
 
14400
14480
  <div class="doc doc-contents ">
14401
14481
  <p class="doc doc-class-bases">
14402
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
14482
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
14403
14483
 
14404
14484
 
14405
14485
  <p>Retrieve a single object for display.</p>
@@ -14414,6 +14494,7 @@ template_name: Name of the template to use</p>
14414
14494
 
14415
14495
 
14416
14496
 
14497
+
14417
14498
  <div class="doc doc-children">
14418
14499
 
14419
14500
 
@@ -14437,6 +14518,7 @@ template_name: Name of the template to use</p>
14437
14518
 
14438
14519
  <p>Generic GET handler for accessing an object.</p>
14439
14520
 
14521
+
14440
14522
  </div>
14441
14523
 
14442
14524
  </div>
@@ -14471,7 +14553,7 @@ template_name: Name of the template to use</p>
14471
14553
  <code>request</code>
14472
14554
  </td>
14473
14555
  <td>
14474
- <code>Request</code>
14556
+ <code><span title="Request">Request</span></code>
14475
14557
  </td>
14476
14558
  <td>
14477
14559
  <div class="doc-md-description">
@@ -14513,7 +14595,7 @@ template_name: Name of the template to use</p>
14513
14595
  <tbody>
14514
14596
  <tr class="doc-section-item">
14515
14597
  <td>
14516
- <code>dict</code>
14598
+ <code><span title="dict">dict</span></code>
14517
14599
  </td>
14518
14600
  <td>
14519
14601
  <div class="doc-md-description">
@@ -14524,6 +14606,7 @@ template_name: Name of the template to use</p>
14524
14606
  </tbody>
14525
14607
  </table>
14526
14608
 
14609
+
14527
14610
  </div>
14528
14611
 
14529
14612
  </div>
@@ -14541,6 +14624,7 @@ template_name: Name of the template to use</p>
14541
14624
 
14542
14625
  <p>Return self.template_name if set. Otherwise, resolve the template path by model app_label and name.</p>
14543
14626
 
14627
+
14544
14628
  </div>
14545
14629
 
14546
14630
  </div>
@@ -14574,6 +14658,7 @@ Returns:
14574
14658
  (Union[HttpResponseForbidden,redirect]): HttpResponseForbidden if user does not have permission to run the job,
14575
14659
  otherwise redirect to the job result page.</p>
14576
14660
 
14661
+
14577
14662
  </div>
14578
14663
 
14579
14664
  </div>
@@ -14608,7 +14693,7 @@ Returns:
14608
14693
  <code>filters</code>
14609
14694
  </td>
14610
14695
  <td>
14611
- <code>OrderedDict</code>
14696
+ <code><span title="OrderedDict">OrderedDict</span></code>
14612
14697
  </td>
14613
14698
  <td>
14614
14699
  <div class="doc-md-description">
@@ -14624,7 +14709,7 @@ Returns:
14624
14709
  <code>field_name</code>
14625
14710
  </td>
14626
14711
  <td>
14627
- <code>str</code>
14712
+ <code><span title="str">str</span></code>
14628
14713
  </td>
14629
14714
  <td>
14630
14715
  <div class="doc-md-description">
@@ -14640,7 +14725,7 @@ Returns:
14640
14725
  <code>values</code>
14641
14726
  </td>
14642
14727
  <td>
14643
- <code>list[str]</code>
14728
+ <code><span title="list">list</span>[<span title="str">str</span>]</code>
14644
14729
  </td>
14645
14730
  <td>
14646
14731
  <div class="doc-md-description">
@@ -14666,7 +14751,7 @@ Returns:
14666
14751
  <tbody>
14667
14752
  <tr class="doc-section-item">
14668
14753
  <td>
14669
- <code>dict</code>
14754
+ <code><span title="dict">dict</span></code>
14670
14755
  </td>
14671
14756
  <td>
14672
14757
  <div class="doc-md-description">
@@ -14680,6 +14765,7 @@ Returns:
14680
14765
  </tbody>
14681
14766
  </table>
14682
14767
 
14768
+
14683
14769
  </div>
14684
14770
 
14685
14771
  </div>
@@ -14699,6 +14785,7 @@ Returns:
14699
14785
  <p>Encapsulate any data which contains a comma within double quotes.</p>
14700
14786
  <p>Obsolete, as CSV rendering in Nautobot core is now handled by nautobot.core.api.renderers.NautobotCSVRenderer.</p>
14701
14787
 
14788
+
14702
14789
  </div>
14703
14790
 
14704
14791
  </div>
@@ -14716,6 +14803,7 @@ Returns:
14716
14803
 
14717
14804
  <p>From the given serializer class, build a list of field dicts suitable for rendering in the CSV import form.</p>
14718
14805
 
14806
+
14719
14807
  </div>
14720
14808
 
14721
14809
  </div>
@@ -14735,6 +14823,7 @@ Returns:
14735
14823
  <p>If a key is specified, return the value for that key.
14736
14824
  Otherwise return the value for either of the keys <code>"obj"</code> or <code>"object"</code> as default behavior.</p>
14737
14825
 
14826
+
14738
14827
  </div>
14739
14828
 
14740
14829
  </div>
@@ -14757,6 +14846,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
14757
14846
  4. PAGINATE_COUNT global setting.
14758
14847
  </code></pre></div>
14759
14848
 
14849
+
14760
14850
  </div>
14761
14851
 
14762
14852
  </div>
@@ -14774,6 +14864,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
14774
14864
 
14775
14865
  <p>Generate a user-friendly error message in response to a ProtectedError exception.</p>
14776
14866
 
14867
+
14777
14868
  </div>
14778
14869
 
14779
14870
  </div>
@@ -14792,6 +14883,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
14792
14883
  <p>Compile an object's <code>clone_fields</code> list into a string of URL query parameters. Tags are automatically cloned where
14793
14884
  applicable.</p>
14794
14885
 
14886
+
14795
14887
  </div>
14796
14888
 
14797
14889
  </div>
@@ -14899,7 +14991,7 @@ applicable.</p>
14899
14991
 
14900
14992
 
14901
14993
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
14902
- <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>
14994
+ <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>
14903
14995
  </a>
14904
14996
 
14905
14997
 
@@ -14907,7 +14999,7 @@ applicable.</p>
14907
14999
 
14908
15000
 
14909
15001
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
14910
- <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>
15002
+ <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>
14911
15003
  </a>
14912
15004
 
14913
15005
 
@@ -14915,7 +15007,7 @@ applicable.</p>
14915
15007
 
14916
15008
 
14917
15009
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
14918
- <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>
15010
+ <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>
14919
15011
  </a>
14920
15012
 
14921
15013
 
@@ -14923,7 +15015,7 @@ applicable.</p>
14923
15015
 
14924
15016
 
14925
15017
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
14926
- <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>
15018
+ <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>
14927
15019
  </a>
14928
15020
 
14929
15021
 
@@ -14931,7 +15023,7 @@ applicable.</p>
14931
15023
 
14932
15024
 
14933
15025
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
14934
- <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>
15026
+ <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>
14935
15027
  </a>
14936
15028
 
14937
15029
  </div>
@@ -14951,7 +15043,7 @@ applicable.</p>
14951
15043
  <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>
14952
15044
 
14953
15045
 
14954
- <script src="../../../assets/javascripts/bundle.56ea9cef.min.js"></script>
15046
+ <script src="../../../assets/javascripts/bundle.50899def.min.js"></script>
14955
15047
 
14956
15048
 
14957
15049
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});