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
 
@@ -9594,6 +9571,29 @@
9594
9571
 
9595
9572
 
9596
9573
 
9574
+
9575
+
9576
+
9577
+
9578
+
9579
+
9580
+ <li class="md-nav__item">
9581
+ <a href="../../../development/apps/migration/ui-component-framework/breadcrumbs-titles.html" class="md-nav__link">
9582
+
9583
+
9584
+
9585
+ <span class="md-ellipsis">
9586
+ Breadcrumbs and titles
9587
+
9588
+ </span>
9589
+
9590
+
9591
+ </a>
9592
+ </li>
9593
+
9594
+
9595
+
9596
+
9597
9597
  </ul>
9598
9598
  </nav>
9599
9599
 
@@ -11864,6 +11864,7 @@
11864
11864
 
11865
11865
 
11866
11866
 
11867
+
11867
11868
  <div class="doc doc-children">
11868
11869
 
11869
11870
 
@@ -11899,6 +11900,7 @@
11899
11900
 
11900
11901
 
11901
11902
 
11903
+
11902
11904
  <div class="doc doc-children">
11903
11905
 
11904
11906
 
@@ -11930,7 +11932,7 @@
11930
11932
 
11931
11933
  <div class="doc doc-contents ">
11932
11934
  <p class="doc doc-class-bases">
11933
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.OptInFieldsMixin" href="#nautobot.apps.api.OptInFieldsMixin">OptInFieldsMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedModelSerializer">HyperlinkedModelSerializer</span></code></p>
11935
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.OptInFieldsMixin (nautobot.core.api.serializers.OptInFieldsMixin)" href="#nautobot.apps.api.OptInFieldsMixin">OptInFieldsMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedModelSerializer">HyperlinkedModelSerializer</span></code></p>
11934
11936
 
11935
11937
 
11936
11938
  <p>This base serializer implements common fields and logic for all ModelSerializers.</p>
@@ -11955,6 +11957,7 @@
11955
11957
 
11956
11958
 
11957
11959
 
11960
+
11958
11961
  <div class="doc doc-children">
11959
11962
 
11960
11963
 
@@ -11980,6 +11983,7 @@
11980
11983
  <div class="doc doc-contents ">
11981
11984
 
11982
11985
  <p>Return whether this is a nested serializer.</p>
11986
+
11983
11987
  </div>
11984
11988
 
11985
11989
  </div>
@@ -12001,6 +12005,7 @@
12001
12005
  <p>The force_csv kwarg allows you to force _is_csv_request() to evaluate True without passing a Request object,
12002
12006
  which is necessary to be able to export appropriately structured CSV from a Job that doesn't have a Request.</p>
12003
12007
 
12008
+
12004
12009
  </div>
12005
12010
 
12006
12011
  </div>
@@ -12018,6 +12023,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12018
12023
 
12019
12024
  <p>Return a two tuple of (cls, kwargs) to build a serializer field with.</p>
12020
12025
 
12026
+
12021
12027
  </div>
12022
12028
 
12023
12029
  </div>
@@ -12035,6 +12041,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12035
12041
 
12036
12042
  <p>Create a property field for model methods and properties.</p>
12037
12043
 
12044
+
12038
12045
  </div>
12039
12046
 
12040
12047
  </div>
@@ -12052,6 +12059,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12052
12059
 
12053
12060
  <p>Override DRF's default relational-field construction to be app-aware.</p>
12054
12061
 
12062
+
12055
12063
  </div>
12056
12064
 
12057
12065
  </div>
@@ -12069,6 +12077,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12069
12077
 
12070
12078
  <p>Override DRF's default 'url' field construction to be app-aware.</p>
12071
12079
 
12080
+
12072
12081
  </div>
12073
12082
 
12074
12083
  </div>
@@ -12086,6 +12095,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12086
12095
 
12087
12096
  <p>Prepend or append the given field_name to <code>fields</code> and optionally self.Meta.opt_in_fields as well.</p>
12088
12097
 
12098
+
12089
12099
  </div>
12090
12100
 
12091
12101
  </div>
@@ -12103,6 +12113,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
12103
12113
 
12104
12114
  <p>Return either the <code>display</code> property of the instance or <code>str(instance)</code></p>
12105
12115
 
12116
+
12106
12117
  </div>
12107
12118
 
12108
12119
  </div>
@@ -12125,6 +12136,7 @@ like</code>display<code>,</code>created<code>, and</code>last_updated`. However,
12125
12136
  <p>The other purpose of this method now is to manipulate the set of fields that "<strong>all</strong>" actually means as a
12126
12137
  way of <em>excluding</em> fields that we <em>don't</em> want to include by default for performance or data exposure reasons.</p>
12127
12138
 
12139
+
12128
12140
  </div>
12129
12141
 
12130
12142
  </div>
@@ -12167,6 +12179,7 @@ or more JSON objects, each specifying the UUID of an object to be deleted. For e
12167
12179
 
12168
12180
 
12169
12181
 
12182
+
12170
12183
  <div class="doc doc-children">
12171
12184
 
12172
12185
 
@@ -12222,6 +12235,7 @@ For example:</p>
12222
12235
 
12223
12236
 
12224
12237
 
12238
+
12225
12239
  <div class="doc doc-children">
12226
12240
 
12227
12241
 
@@ -12268,6 +12282,7 @@ For example:</p>
12268
12282
 
12269
12283
 
12270
12284
 
12285
+
12271
12286
  <div class="doc doc-children">
12272
12287
 
12273
12288
 
@@ -12312,6 +12327,7 @@ For example:</p>
12312
12327
 
12313
12328
 
12314
12329
 
12330
+
12315
12331
  <div class="doc doc-children">
12316
12332
 
12317
12333
 
@@ -12343,7 +12359,7 @@ For example:</p>
12343
12359
 
12344
12360
  <div class="doc doc-contents ">
12345
12361
  <p class="doc doc-class-bases">
12346
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
12362
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ValidatedModelSerializer (nautobot.core.api.serializers.ValidatedModelSerializer)" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
12347
12363
 
12348
12364
 
12349
12365
  <p>Extends ModelSerializer to render any CustomFields and their values associated with an object.</p>
@@ -12356,6 +12372,7 @@ For example:</p>
12356
12372
 
12357
12373
 
12358
12374
 
12375
+
12359
12376
  <div class="doc doc-children">
12360
12377
 
12361
12378
 
@@ -12379,6 +12396,7 @@ For example:</p>
12379
12396
 
12380
12397
  <p>Ensure that "custom_fields" and "computed_fields" are included appropriately.</p>
12381
12398
 
12399
+
12382
12400
  </div>
12383
12401
 
12384
12402
  </div>
@@ -12404,7 +12422,7 @@ For example:</p>
12404
12422
 
12405
12423
  <div class="doc doc-contents ">
12406
12424
  <p class="doc doc-class-bases">
12407
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSet" href="#nautobot.apps.api.ModelViewSet">ModelViewSet</a></code></p>
12425
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ModelViewSet (nautobot.core.api.views.ModelViewSet)" href="#nautobot.apps.api.ModelViewSet">ModelViewSet</a></code></p>
12408
12426
 
12409
12427
 
12410
12428
  <p>Include the applicable set of CustomFields in the ModelViewSet context.</p>
@@ -12417,6 +12435,7 @@ For example:</p>
12417
12435
 
12418
12436
 
12419
12437
 
12438
+
12420
12439
  <div class="doc doc-children">
12421
12440
 
12422
12441
 
@@ -12448,7 +12467,7 @@ For example:</p>
12448
12467
 
12449
12468
  <div class="doc doc-contents ">
12450
12469
  <p class="doc doc-class-bases">
12451
- Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkUpdateModelMixin" href="#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkDestroyModelMixin" href="#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSetMixin" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ModelViewSet">ModelViewSet</span></code></p>
12470
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BulkUpdateModelMixin (nautobot.core.api.views.BulkUpdateModelMixin)" href="#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BulkDestroyModelMixin (nautobot.core.api.views.BulkDestroyModelMixin)" href="#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ModelViewSetMixin (nautobot.core.api.views.ModelViewSetMixin)" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ModelViewSet">ModelViewSet</span></code></p>
12452
12471
 
12453
12472
 
12454
12473
  <p>Extend DRF's ModelViewSet to support bulk update and delete functions.</p>
@@ -12461,6 +12480,7 @@ For example:</p>
12461
12480
 
12462
12481
 
12463
12482
 
12483
+
12464
12484
  <div class="doc doc-children">
12465
12485
 
12466
12486
 
@@ -12501,6 +12521,7 @@ For example:</p>
12501
12521
 
12502
12522
 
12503
12523
 
12524
+
12504
12525
  <div class="doc doc-children">
12505
12526
 
12506
12527
 
@@ -12524,6 +12545,7 @@ For example:</p>
12524
12545
 
12525
12546
  <p>Extend rest_framework.generics.GenericAPIView.get_object to allow "pk" lookups to use a composite-key.</p>
12526
12547
 
12548
+
12527
12549
  </div>
12528
12550
 
12529
12551
  </div>
@@ -12542,6 +12564,7 @@ For example:</p>
12542
12564
  <p>Attempt to optimize the queryset based on the fields present in the associated serializer.</p>
12543
12565
  <p>See similar logic in nautobot.core.tables.BaseTable.</p>
12544
12566
 
12567
+
12545
12568
  </div>
12546
12569
 
12547
12570
  </div>
@@ -12560,6 +12583,7 @@ For example:</p>
12560
12583
  <p>Runs anything that needs to occur prior to calling the method handler.</p>
12561
12584
  <p>Override of internal Django Rest Framework API.</p>
12562
12585
 
12586
+
12563
12587
  </div>
12564
12588
 
12565
12589
  </div>
@@ -12579,6 +12603,7 @@ For example:</p>
12579
12603
  <p>Subclasses (such as nautobot.extras.api.views.JobModelViewSet) may wish to override this.</p>
12580
12604
  <p>Called by initial(), below.</p>
12581
12605
 
12606
+
12582
12607
  </div>
12583
12608
 
12584
12609
  </div>
@@ -12617,6 +12642,7 @@ For example:</p>
12617
12642
 
12618
12643
 
12619
12644
 
12645
+
12620
12646
  <div class="doc doc-children">
12621
12647
 
12622
12648
 
@@ -12640,6 +12666,7 @@ For example:</p>
12640
12666
 
12641
12667
  <p>Overload default choices handling to also accept a callable.</p>
12642
12668
 
12669
+
12643
12670
  </div>
12644
12671
 
12645
12672
  </div>
@@ -12678,6 +12705,7 @@ For example:</p>
12678
12705
 
12679
12706
 
12680
12707
 
12708
+
12681
12709
  <div class="doc doc-children">
12682
12710
 
12683
12711
 
@@ -12703,6 +12731,7 @@ For example:</p>
12703
12731
  <div class="doc doc-contents ">
12704
12732
 
12705
12733
  <p>Custom property for convenience.</p>
12734
+
12706
12735
  </div>
12707
12736
 
12708
12737
  </div>
@@ -12724,6 +12753,7 @@ For example:</p>
12724
12753
  <div class="doc doc-contents ">
12725
12754
 
12726
12755
  <p>Custom property for convenience.</p>
12756
+
12727
12757
  </div>
12728
12758
 
12729
12759
  </div>
@@ -12749,6 +12779,7 @@ docstring of the <code>NautobotModelViewSet</code> class, which isn't very usefu
12749
12779
  we only use the docstring of the view itself (ignoring its parent class docstrings), or if none exists, we
12750
12780
  make an attempt at rendering a basically accurate default description.</p>
12751
12781
 
12782
+
12752
12783
  </div>
12753
12784
 
12754
12785
  </div>
@@ -12766,6 +12797,7 @@ make an attempt at rendering a basically accurate default description.</p>
12766
12797
 
12767
12798
  <p>Nautobot's custom bulk operations, even though they return a list of records, are NOT filterable.</p>
12768
12799
 
12800
+
12769
12801
  </div>
12770
12802
 
12771
12803
  </div>
@@ -12787,6 +12819,7 @@ about operationId collisions, e.g. between DELETE /api/dcim/devices/ and DELETE
12787
12819
  both get resolved to the same "dcim_devices_destroy" operation-id and this would make drf-spectacular complain.</p>
12788
12820
  <p>With this extension, the bulk endpoints automatically get a different operation-id from the non-bulk endpoints.</p>
12789
12821
 
12822
+
12790
12823
  </div>
12791
12824
 
12792
12825
  </div>
@@ -12809,6 +12842,7 @@ WritableFooSerializer class in order to more accurately represent the available
12809
12842
  <p>We also override for the case where the endpoint is one of Nautobot's custom bulk API endpoints, which
12810
12843
  require a list of serializers as input, rather than a single one.</p>
12811
12844
 
12845
+
12812
12846
  </div>
12813
12847
 
12814
12848
  </div>
@@ -12828,6 +12862,7 @@ require a list of serializers as input, rather than a single one.</p>
12828
12862
  <p>We override the default drf-spectacular behavior for the case where the endpoint describes a write request
12829
12863
  to a bulk endpoint, which returns a list of serializers, rather than a single one.</p>
12830
12864
 
12865
+
12831
12866
  </div>
12832
12867
 
12833
12868
  </div>
@@ -12846,6 +12881,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
12846
12881
  <p>Get the serializer's ref_name Meta attribute if set, or else derive a ref_name automatically.</p>
12847
12882
  <p>Based on drf_yasg.utils.get_serializer_ref_name().</p>
12848
12883
 
12884
+
12849
12885
  </div>
12850
12886
 
12851
12887
  </div>
@@ -12864,6 +12900,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
12864
12900
  <p>Given a FooSerializer instance, look up or construct a [Bulk]WritableFooSerializer class if necessary.</p>
12865
12901
  <p>If no [Bulk]WritableFooSerializer class is needed, returns None instead.</p>
12866
12902
 
12903
+
12867
12904
  </div>
12868
12905
 
12869
12906
  </div>
@@ -12883,6 +12920,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
12883
12920
  <p>drf-spectacular clears the <code>required</code> list for any partial serializers in its <code>_map_basic_serializer()</code>,
12884
12921
  but Nautobot bulk partial updates require the <code>id</code> field to be specified for each object to update.</p>
12885
12922
 
12923
+
12886
12924
  </div>
12887
12925
 
12888
12926
  </div>
@@ -12921,6 +12959,7 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
12921
12959
 
12922
12960
 
12923
12961
 
12962
+
12924
12963
  <div class="doc doc-children">
12925
12964
 
12926
12965
 
@@ -12946,6 +12985,7 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
12946
12985
  <p>TODO: it would be more elegant if our serializer fields knew how to deserialize the CSV data themselves;
12947
12986
  could we then literally have the parser just return list(reader) and not need this function at all?</p>
12948
12987
 
12988
+
12949
12989
  </div>
12950
12990
 
12951
12991
  </div>
@@ -12971,7 +13011,7 @@ could we then literally have the parser just return list(reader) and not need th
12971
13011
 
12972
13012
  <div class="doc doc-contents ">
12973
13013
  <p class="doc doc-class-bases">
12974
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.mixins.WritableSerializerMixin" href="#nautobot.apps.api.WritableSerializerMixin">WritableSerializerMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedRelatedField">HyperlinkedRelatedField</span></code></p>
13014
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.WritableSerializerMixin (nautobot.core.api.mixins.WritableSerializerMixin)" href="#nautobot.apps.api.WritableSerializerMixin">WritableSerializerMixin</a></code>, <code><span title="rest_framework.serializers.HyperlinkedRelatedField">HyperlinkedRelatedField</span></code></p>
12975
13015
 
12976
13016
 
12977
13017
  <p>Extend HyperlinkedRelatedField to include URL namespace-awareness, add 'object_type' field, and read composite-keys.</p>
@@ -12984,6 +13024,7 @@ could we then literally have the parser just return list(reader) and not need th
12984
13024
 
12985
13025
 
12986
13026
 
13027
+
12987
13028
  <div class="doc doc-children">
12988
13029
 
12989
13030
 
@@ -13008,6 +13049,7 @@ could we then literally have the parser just return list(reader) and not need th
13008
13049
  <p>Override DRF's namespace-unaware default view_name logic for HyperlinkedRelatedField.</p>
13009
13050
  <p>DRF defaults to '{model_name}-detail' instead of '{app_label}:{model_name}-detail'.</p>
13010
13051
 
13052
+
13011
13053
  </div>
13012
13054
 
13013
13055
  </div>
@@ -13025,6 +13067,7 @@ could we then literally have the parser just return list(reader) and not need th
13025
13067
 
13026
13068
  <p>Convert potentially nested representation to a model instance.</p>
13027
13069
 
13070
+
13028
13071
  </div>
13029
13072
 
13030
13073
  </div>
@@ -13042,6 +13085,7 @@ could we then literally have the parser just return list(reader) and not need th
13042
13085
 
13043
13086
  <p>Convert URL representation to a brief nested representation.</p>
13044
13087
 
13088
+
13045
13089
  </div>
13046
13090
 
13047
13091
  </div>
@@ -13067,7 +13111,7 @@ could we then literally have the parser just return list(reader) and not need th
13067
13111
 
13068
13112
  <div class="doc doc-contents ">
13069
13113
  <p class="doc doc-class-bases">
13070
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.RelationshipModelSerializerMixin" href="#nautobot.apps.api.RelationshipModelSerializerMixin">RelationshipModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.CustomFieldModelSerializerMixin" href="#nautobot.apps.api.CustomFieldModelSerializerMixin">CustomFieldModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.NotesSerializerMixin" href="#nautobot.apps.api.NotesSerializerMixin">NotesSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
13114
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.RelationshipModelSerializerMixin (nautobot.core.api.serializers.RelationshipModelSerializerMixin)" href="#nautobot.apps.api.RelationshipModelSerializerMixin">RelationshipModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.CustomFieldModelSerializerMixin (nautobot.core.api.serializers.CustomFieldModelSerializerMixin)" href="#nautobot.apps.api.CustomFieldModelSerializerMixin">CustomFieldModelSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.NotesSerializerMixin (nautobot.core.api.serializers.NotesSerializerMixin)" href="#nautobot.apps.api.NotesSerializerMixin">NotesSerializerMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ValidatedModelSerializer (nautobot.core.api.serializers.ValidatedModelSerializer)" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
13071
13115
 
13072
13116
 
13073
13117
  <p>Base class to use for serializers based on OrganizationalModel or PrimaryModel.</p>
@@ -13081,6 +13125,7 @@ could we then literally have the parser just return list(reader) and not need th
13081
13125
 
13082
13126
 
13083
13127
 
13128
+
13084
13129
  <div class="doc doc-children">
13085
13130
 
13086
13131
 
@@ -13112,7 +13157,7 @@ could we then literally have the parser just return list(reader) and not need th
13112
13157
 
13113
13158
  <div class="doc doc-contents ">
13114
13159
  <p class="doc doc-class-bases">
13115
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.api.views.NotesViewSetMixin" href="#nautobot.apps.api.NotesViewSetMixin">NotesViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.api.views.CustomFieldModelViewSet" href="#nautobot.apps.api.CustomFieldModelViewSet">CustomFieldModelViewSet</a></code></p>
13160
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.NotesViewSetMixin (nautobot.extras.api.views.NotesViewSetMixin)" href="#nautobot.apps.api.NotesViewSetMixin">NotesViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.CustomFieldModelViewSet (nautobot.extras.api.views.CustomFieldModelViewSet)" href="#nautobot.apps.api.CustomFieldModelViewSet">CustomFieldModelViewSet</a></code></p>
13116
13161
 
13117
13162
 
13118
13163
  <p>Base class to use for API ViewSets based on OrganizationalModel or PrimaryModel.</p>
@@ -13126,6 +13171,7 @@ could we then literally have the parser just return list(reader) and not need th
13126
13171
 
13127
13172
 
13128
13173
 
13174
+
13129
13175
  <div class="doc doc-children">
13130
13176
 
13131
13177
 
@@ -13157,7 +13203,7 @@ could we then literally have the parser just return list(reader) and not need th
13157
13203
 
13158
13204
  <div class="doc doc-contents ">
13159
13205
  <p class="doc doc-class-bases">
13160
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13206
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BaseModelSerializer (nautobot.core.api.serializers.BaseModelSerializer)" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13161
13207
 
13162
13208
 
13163
13209
  <p>Extend Serializer with a <code>notes</code> field.</p>
@@ -13170,6 +13216,7 @@ could we then literally have the parser just return list(reader) and not need th
13170
13216
 
13171
13217
 
13172
13218
 
13219
+
13173
13220
  <div class="doc doc-children">
13174
13221
 
13175
13222
 
@@ -13193,6 +13240,7 @@ could we then literally have the parser just return list(reader) and not need th
13193
13240
 
13194
13241
  <p>Ensure that fields includes "notes_url" field if applicable.</p>
13195
13242
 
13243
+
13196
13244
  </div>
13197
13245
 
13198
13246
  </div>
@@ -13227,6 +13275,7 @@ could we then literally have the parser just return list(reader) and not need th
13227
13275
 
13228
13276
 
13229
13277
 
13278
+
13230
13279
  <div class="doc doc-children">
13231
13280
 
13232
13281
 
@@ -13262,6 +13311,7 @@ could we then literally have the parser just return list(reader) and not need th
13262
13311
 
13263
13312
 
13264
13313
 
13314
+
13265
13315
  <div class="doc doc-children">
13266
13316
 
13267
13317
 
@@ -13294,6 +13344,7 @@ could we then literally have the parser just return list(reader) and not need th
13294
13344
 
13295
13345
  <p>API methods for returning or creating notes on an object.</p>
13296
13346
 
13347
+
13297
13348
  </div>
13298
13349
 
13299
13350
  </div>
@@ -13311,6 +13362,7 @@ could we then literally have the parser just return list(reader) and not need th
13311
13362
 
13312
13363
  <p>Apply "view" permissions on the POST /notes/ endpoint, otherwise as ModelViewSetMixin.</p>
13313
13364
 
13365
+
13314
13366
  </div>
13315
13367
 
13316
13368
  </div>
@@ -13349,6 +13401,7 @@ could we then literally have the parser just return list(reader) and not need th
13349
13401
 
13350
13402
 
13351
13403
 
13404
+
13352
13405
  <div class="doc doc-children">
13353
13406
 
13354
13407
 
@@ -13372,6 +13425,7 @@ could we then literally have the parser just return list(reader) and not need th
13372
13425
 
13373
13426
  <p>Default read_only to True as this should never be a writable field.</p>
13374
13427
 
13428
+
13375
13429
  </div>
13376
13430
 
13377
13431
  </div>
@@ -13390,6 +13444,7 @@ could we then literally have the parser just return list(reader) and not need th
13390
13444
  <p>Get the content-type of this serializer's model.</p>
13391
13445
  <p>Implemented this way because <code>_value</code> may be None when generating the schema.</p>
13392
13446
 
13447
+
13393
13448
  </div>
13394
13449
 
13395
13450
  </div>
@@ -13427,6 +13482,7 @@ could we then literally have the parser just return list(reader) and not need th
13427
13482
 
13428
13483
 
13429
13484
 
13485
+
13430
13486
  <div class="doc doc-children">
13431
13487
 
13432
13488
 
@@ -13460,6 +13516,7 @@ could we then literally have the parser just return list(reader) and not need th
13460
13516
  <p>As an example, if the serializer specifies that <code>opt_in_fields = ["computed_fields"]</code>
13461
13517
  but <code>computed_fields</code> is not specified in the <code>?include</code> query parameter, <code>computed_fields</code> will be popped
13462
13518
  from the list of fields.</p>
13519
+
13463
13520
  </div>
13464
13521
 
13465
13522
  </div>
@@ -13498,6 +13555,7 @@ from the list of fields.</p>
13498
13555
 
13499
13556
 
13500
13557
 
13558
+
13501
13559
  <div class="doc doc-children">
13502
13560
 
13503
13561
 
@@ -13521,6 +13579,7 @@ from the list of fields.</p>
13521
13579
 
13522
13580
  <p>Wrap DRF's DefaultRouter to return an alphabetized list of endpoints.</p>
13523
13581
 
13582
+
13524
13583
  </div>
13525
13584
 
13526
13585
  </div>
@@ -13539,6 +13598,7 @@ from the list of fields.</p>
13539
13598
  <p>Override DRF's BaseRouter.register() to bypass an unnecessary restriction added in version 3.15.0.</p>
13540
13599
  <p>(Reference: https://github.com/encode/django-rest-framework/pull/8438)</p>
13541
13600
 
13601
+
13542
13602
  </div>
13543
13603
 
13544
13604
  </div>
@@ -13564,7 +13624,7 @@ from the list of fields.</p>
13564
13624
 
13565
13625
  <div class="doc doc-contents ">
13566
13626
  <p class="doc doc-class-bases">
13567
- Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSetMixin" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ReadOnlyModelViewSet">ReadOnlyModelViewSet</span></code></p>
13627
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ModelViewSetMixin (nautobot.core.api.views.ModelViewSetMixin)" href="#nautobot.apps.api.ModelViewSetMixin">ModelViewSetMixin</a></code>, <code><span title="rest_framework.viewsets.ReadOnlyModelViewSet">ReadOnlyModelViewSet</span></code></p>
13568
13628
 
13569
13629
 
13570
13630
  <p>Extend DRF's ReadOnlyModelViewSet to support queryset restriction.</p>
@@ -13577,6 +13637,7 @@ from the list of fields.</p>
13577
13637
 
13578
13638
 
13579
13639
 
13640
+
13580
13641
  <div class="doc doc-children">
13581
13642
 
13582
13643
 
@@ -13608,7 +13669,7 @@ from the list of fields.</p>
13608
13669
 
13609
13670
  <div class="doc doc-contents ">
13610
13671
  <p class="doc doc-class-bases">
13611
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
13672
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.ValidatedModelSerializer (nautobot.core.api.serializers.ValidatedModelSerializer)" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
13612
13673
 
13613
13674
 
13614
13675
  <p>Extend ValidatedModelSerializer with a <code>relationships</code> field.</p>
@@ -13621,6 +13682,7 @@ from the list of fields.</p>
13621
13682
 
13622
13683
 
13623
13684
 
13685
+
13624
13686
  <div class="doc doc-children">
13625
13687
 
13626
13688
 
@@ -13644,6 +13706,7 @@ from the list of fields.</p>
13644
13706
 
13645
13707
  <p>Ensure that "relationships" is included as an opt-in field on root serializers.</p>
13646
13708
 
13709
+
13647
13710
  </div>
13648
13711
 
13649
13712
  </div>
@@ -13683,6 +13746,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13683
13746
 
13684
13747
 
13685
13748
 
13749
+
13686
13750
  <div class="doc doc-children">
13687
13751
 
13688
13752
 
@@ -13714,7 +13778,8 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13714
13778
 
13715
13779
  <div class="doc doc-contents ">
13716
13780
  <p class="doc doc-class-bases">
13717
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13781
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BaseModelSerializer (nautobot.core.api.BaseModelSerializer)" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13782
+
13718
13783
 
13719
13784
 
13720
13785
 
@@ -13748,6 +13813,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13748
13813
 
13749
13814
  <p>Ensure that 'tags' field is always present except on nested serializers.</p>
13750
13815
 
13816
+
13751
13817
  </div>
13752
13818
 
13753
13819
  </div>
@@ -13784,6 +13850,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13784
13850
 
13785
13851
 
13786
13852
 
13853
+
13787
13854
  </div>
13788
13855
 
13789
13856
  </div>
@@ -13801,7 +13868,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13801
13868
 
13802
13869
  <div class="doc doc-contents ">
13803
13870
  <p class="doc doc-class-bases">
13804
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13871
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BaseModelSerializer (nautobot.core.api.serializers.BaseModelSerializer)" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13805
13872
 
13806
13873
 
13807
13874
  <p>Add a <code>tree_depth</code> field to non-nested model serializers based on django-tree-queries.</p>
@@ -13814,6 +13881,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13814
13881
 
13815
13882
 
13816
13883
 
13884
+
13817
13885
  <div class="doc doc-children">
13818
13886
 
13819
13887
 
@@ -13837,6 +13905,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13837
13905
 
13838
13906
  <p>Ensure that "tree_depth" is included on root serializers only, as nested objects are not annotated.</p>
13839
13907
 
13908
+
13840
13909
  </div>
13841
13910
 
13842
13911
  </div>
@@ -13854,6 +13923,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13854
13923
 
13855
13924
  <p>The <code>tree_depth</code> is not a database field, but an annotation automatically added by django-tree-queries.</p>
13856
13925
 
13926
+
13857
13927
  </div>
13858
13928
 
13859
13929
  </div>
@@ -13879,7 +13949,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
13879
13949
 
13880
13950
  <div class="doc doc-contents ">
13881
13951
  <p class="doc doc-class-bases">
13882
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13952
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BaseModelSerializer (nautobot.core.api.serializers.BaseModelSerializer)" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13883
13953
 
13884
13954
 
13885
13955
  <p>Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
@@ -13893,6 +13963,7 @@ validation. (DRF does not do this by default; see https://github.com/encode/djan
13893
13963
 
13894
13964
 
13895
13965
 
13966
+
13896
13967
  <div class="doc doc-children">
13897
13968
 
13898
13969
 
@@ -13924,7 +13995,7 @@ validation. (DRF does not do this by default; see https://github.com/encode/djan
13924
13995
 
13925
13996
  <div class="doc doc-contents ">
13926
13997
  <p class="doc doc-class-bases">
13927
- Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13998
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.api.BaseModelSerializer (nautobot.core.api.serializers.BaseModelSerializer)" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
13928
13999
 
13929
14000
 
13930
14001
  <p>Returns a nested representation of an object on read, but accepts either the nested representation or the
@@ -13942,6 +14013,7 @@ which of several possible nested serializers are in use for a given attribute.</
13942
14013
 
13943
14014
 
13944
14015
 
14016
+
13945
14017
  <div class="doc doc-children">
13946
14018
 
13947
14019
 
@@ -13990,6 +14062,7 @@ vs
13990
14062
 
13991
14063
 
13992
14064
 
14065
+
13993
14066
  <div class="doc doc-children">
13994
14067
 
13995
14068
 
@@ -14013,6 +14086,7 @@ vs
14013
14086
 
14014
14087
  <p>Retrieve an unique object based on a dictionary of data attributes and raise errors accordingly if the object is not found.</p>
14015
14088
 
14089
+
14016
14090
  </div>
14017
14091
 
14018
14092
  </div>
@@ -14032,6 +14106,7 @@ vs
14032
14106
  If it is a dictionary, we return it after remove non-filter fields.
14033
14107
  If it is a primary key, we return a dictionary object formatted like this {"pk": pk}</p>
14034
14108
 
14109
+
14035
14110
  </div>
14036
14111
 
14037
14112
  </div>
@@ -14050,6 +14125,7 @@ If it is a primary key, we return a dictionary object formatted like this {"pk":
14050
14125
  <p>Make output from a WritableSerializer "round-trip" capable by automatically stripping from the
14051
14126
  data any serializer fields that do not correspond to a specific model field</p>
14052
14127
 
14128
+
14053
14129
  </div>
14054
14130
 
14055
14131
  </div>
@@ -14067,6 +14143,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14067
14143
 
14068
14144
  <p>Return an object or a list of objects based on a dictionary of data attributes or an UUID.</p>
14069
14145
 
14146
+
14070
14147
  </div>
14071
14148
 
14072
14149
  </div>
@@ -14109,6 +14186,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14109
14186
  <div class="highlight"><pre><span></span><code>Device.objects.filter(**dict_to_filter(attrs_dict))
14110
14187
  </code></pre></div>
14111
14188
 
14189
+
14112
14190
  </div>
14113
14191
 
14114
14192
  </div>
@@ -14126,6 +14204,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14126
14204
 
14127
14205
  <p>Dynamically import a class from an absolute path string</p>
14128
14206
 
14207
+
14129
14208
  </div>
14130
14209
 
14131
14210
  </div>
@@ -14160,7 +14239,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14160
14239
  <code>serializer_choices</code>
14161
14240
  </td>
14162
14241
  <td>
14163
- <code>tuple</code>
14242
+ <code><span title="tuple">tuple</span></code>
14164
14243
  </td>
14165
14244
  <td>
14166
14245
  <div class="doc-md-description">
@@ -14176,7 +14255,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14176
14255
  <code>api_version</code>
14177
14256
  </td>
14178
14257
  <td>
14179
- <code>str</code>
14258
+ <code><span title="str">str</span></code>
14180
14259
  </td>
14181
14260
  <td>
14182
14261
  <div class="doc-md-description">
@@ -14202,7 +14281,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14202
14281
  <tbody>
14203
14282
  <tr class="doc-section-item">
14204
14283
  <td>
14205
- <code>Serializer</code>
14284
+ <code><span title="Serializer">Serializer</span></code>
14206
14285
  </td>
14207
14286
  <td>
14208
14287
  <div class="doc-md-description">
@@ -14213,6 +14292,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14213
14292
  </tbody>
14214
14293
  </table>
14215
14294
 
14295
+
14216
14296
  </div>
14217
14297
 
14218
14298
  </div>
@@ -14242,7 +14322,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14242
14322
  <tbody>
14243
14323
  <tr class="doc-section-item">
14244
14324
  <td>
14245
- <code>SerializerNotFound</code>
14325
+ <code><span title="SerializerNotFound">SerializerNotFound</span></code>
14246
14326
  </td>
14247
14327
  <td>
14248
14328
  <div class="doc-md-description">
@@ -14253,6 +14333,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14253
14333
  </tbody>
14254
14334
  </table>
14255
14335
 
14336
+
14256
14337
  </div>
14257
14338
 
14258
14339
  </div>
@@ -14270,6 +14351,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14270
14351
 
14271
14352
  <p>Derive the view name from its associated model, if it has one. Fall back to DRF's built-in <code>get_view_name</code>.</p>
14272
14353
 
14354
+
14273
14355
  </div>
14274
14356
 
14275
14357
  </div>
@@ -14287,6 +14369,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14287
14369
 
14288
14370
  <p>Return True of the request is being made via the REST API.</p>
14289
14371
 
14372
+
14290
14373
  </div>
14291
14374
 
14292
14375
  </div>
@@ -14304,6 +14387,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14304
14387
 
14305
14388
  <p>Handle exceptions and return a useful error message for REST API requests.</p>
14306
14389
 
14390
+
14307
14391
  </div>
14308
14392
 
14309
14393
  </div>
@@ -14354,7 +14438,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14354
14438
  <code>serializer_choices</code>
14355
14439
  </td>
14356
14440
  <td>
14357
- <code>tuple</code>
14441
+ <code><span title="tuple">tuple</span></code>
14358
14442
  </td>
14359
14443
  <td>
14360
14444
  <div class="doc-md-description">
@@ -14370,7 +14454,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14370
14454
  <code>default_serializer</code>
14371
14455
  </td>
14372
14456
  <td>
14373
- <code>Serializer</code>
14457
+ <code><span title="Serializer">Serializer</span></code>
14374
14458
  </td>
14375
14459
  <td>
14376
14460
  <div class="doc-md-description">
@@ -14384,6 +14468,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14384
14468
  </tbody>
14385
14469
  </table>
14386
14470
 
14471
+
14387
14472
  </div>
14388
14473
 
14389
14474
  </div>
@@ -14491,7 +14576,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14491
14576
 
14492
14577
 
14493
14578
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
14494
- <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>
14579
+ <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>
14495
14580
  </a>
14496
14581
 
14497
14582
 
@@ -14499,7 +14584,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14499
14584
 
14500
14585
 
14501
14586
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
14502
- <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>
14587
+ <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>
14503
14588
  </a>
14504
14589
 
14505
14590
 
@@ -14507,7 +14592,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14507
14592
 
14508
14593
 
14509
14594
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
14510
- <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>
14595
+ <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>
14511
14596
  </a>
14512
14597
 
14513
14598
 
@@ -14515,7 +14600,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14515
14600
 
14516
14601
 
14517
14602
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
14518
- <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>
14603
+ <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>
14519
14604
  </a>
14520
14605
 
14521
14606
 
@@ -14523,7 +14608,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14523
14608
 
14524
14609
 
14525
14610
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
14526
- <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>
14611
+ <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>
14527
14612
  </a>
14528
14613
 
14529
14614
  </div>
@@ -14543,7 +14628,7 @@ data any serializer fields that do not correspond to a specific model field</p>
14543
14628
  <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>
14544
14629
 
14545
14630
 
14546
- <script src="../../../assets/javascripts/bundle.56ea9cef.min.js"></script>
14631
+ <script src="../../../assets/javascripts/bundle.50899def.min.js"></script>
14547
14632
 
14548
14633
 
14549
14634
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});