nautobot 2.3.16__py3-none-any.whl → 2.4.0__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 (721) hide show
  1. nautobot/__init__.py +15 -0
  2. nautobot/apps/__init__.py +1 -1
  3. nautobot/apps/api.py +8 -10
  4. nautobot/apps/change_logging.py +2 -2
  5. nautobot/apps/choices.py +4 -4
  6. nautobot/apps/config.py +32 -3
  7. nautobot/apps/events.py +19 -0
  8. nautobot/apps/exceptions.py +0 -2
  9. nautobot/apps/factory.py +2 -2
  10. nautobot/apps/filters.py +1 -1
  11. nautobot/apps/forms.py +20 -20
  12. nautobot/apps/graphql.py +2 -2
  13. nautobot/apps/jobs.py +8 -8
  14. nautobot/apps/models.py +19 -19
  15. nautobot/apps/tables.py +1 -1
  16. nautobot/apps/testing.py +10 -10
  17. nautobot/apps/ui.py +44 -9
  18. nautobot/apps/utils.py +7 -15
  19. nautobot/apps/views.py +8 -6
  20. nautobot/circuits/api/serializers.py +1 -0
  21. nautobot/circuits/api/views.py +4 -8
  22. nautobot/circuits/navigation.py +0 -57
  23. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  24. nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -71
  25. nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -64
  26. nautobot/circuits/templates/circuits/inc/circuit_termination_cable_fragment.html +40 -0
  27. nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +26 -0
  28. nautobot/circuits/templates/circuits/provider_retrieve.html +0 -76
  29. nautobot/circuits/tests/integration/test_relationships.py +33 -24
  30. nautobot/circuits/tests/test_filters.py +4 -8
  31. nautobot/circuits/views.py +140 -23
  32. nautobot/cloud/api/views.py +6 -10
  33. nautobot/cloud/factory.py +4 -1
  34. nautobot/cloud/tests/test_filters.py +5 -4
  35. nautobot/cloud/views.py +0 -16
  36. nautobot/core/api/constants.py +11 -0
  37. nautobot/core/api/filter_backends.py +3 -9
  38. nautobot/core/api/metadata.py +28 -256
  39. nautobot/core/api/pagination.py +3 -2
  40. nautobot/core/api/renderers.py +3 -0
  41. nautobot/core/api/schema.py +13 -2
  42. nautobot/core/api/serializers.py +45 -259
  43. nautobot/core/api/urls.py +3 -4
  44. nautobot/core/api/utils.py +0 -62
  45. nautobot/core/api/views.py +99 -157
  46. nautobot/core/apps/__init__.py +22 -578
  47. nautobot/core/celery/__init__.py +13 -0
  48. nautobot/core/celery/schedulers.py +47 -2
  49. nautobot/core/choices.py +2 -2
  50. nautobot/core/cli/__init__.py +8 -0
  51. nautobot/core/constants.py +7 -0
  52. nautobot/core/events/__init__.py +116 -0
  53. nautobot/core/events/base.py +27 -0
  54. nautobot/core/events/exceptions.py +10 -0
  55. nautobot/core/events/redis_broker.py +48 -0
  56. nautobot/core/events/syslog_broker.py +19 -0
  57. nautobot/core/exceptions.py +0 -6
  58. nautobot/core/forms/__init__.py +19 -19
  59. nautobot/core/forms/fields.py +57 -9
  60. nautobot/core/forms/forms.py +33 -2
  61. nautobot/core/forms/utils.py +2 -1
  62. nautobot/core/graphql/schema.py +3 -1
  63. nautobot/core/jobs/__init__.py +24 -3
  64. nautobot/core/jobs/bulk_actions.py +248 -0
  65. nautobot/core/jobs/cleanup.py +1 -1
  66. nautobot/core/management/commands/generate_test_data.py +21 -0
  67. nautobot/core/middleware.py +16 -0
  68. nautobot/core/models/fields.py +11 -7
  69. nautobot/core/settings.py +68 -4
  70. nautobot/core/settings.yaml +99 -0
  71. nautobot/core/tables.py +10 -46
  72. nautobot/core/tasks.py +1 -1
  73. nautobot/core/templates/about.html +67 -0
  74. nautobot/core/templates/components/button/default.html +7 -0
  75. nautobot/core/templates/components/button/dropdown.html +20 -0
  76. nautobot/core/templates/components/layout/one_over_two.html +19 -0
  77. nautobot/core/templates/components/layout/two_over_one.html +19 -0
  78. nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
  79. nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
  80. nautobot/core/templates/components/panel/body_content_tags.html +6 -0
  81. nautobot/core/templates/components/panel/body_content_text.html +12 -0
  82. nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
  83. nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
  84. nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
  85. nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
  86. nautobot/core/templates/components/panel/footer_content_table.html +14 -0
  87. nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
  88. nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
  89. nautobot/core/templates/components/panel/panel.html +16 -0
  90. nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
  91. nautobot/core/templates/components/tab/content_wrapper.html +3 -0
  92. nautobot/core/templates/components/tab/label_wrapper.html +5 -0
  93. nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
  94. nautobot/core/templates/generic/object_retrieve.html +28 -17
  95. nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
  96. nautobot/core/templates/inc/custom_fields/panel.html +2 -2
  97. nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
  98. nautobot/core/templates/inc/footer.html +1 -0
  99. nautobot/core/templates/inc/nav_menu.html +2 -1
  100. nautobot/core/templates/inc/relationships_panel.html +1 -1
  101. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  102. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  103. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  104. nautobot/core/templates/panel_table.html +12 -0
  105. nautobot/core/templates/utilities/render_jinja2.html +117 -0
  106. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  107. nautobot/core/templates/utilities/theme_preview.html +7 -0
  108. nautobot/core/templatetags/helpers.py +104 -6
  109. nautobot/core/templatetags/ui_framework.py +40 -0
  110. nautobot/core/testing/__init__.py +8 -8
  111. nautobot/core/testing/api.py +187 -137
  112. nautobot/core/testing/context.py +18 -0
  113. nautobot/core/testing/filters.py +41 -35
  114. nautobot/core/testing/forms.py +2 -0
  115. nautobot/core/testing/views.py +65 -148
  116. nautobot/core/tests/integration/test_view_authentication.py +1 -1
  117. nautobot/core/tests/nautobot_config.py +198 -0
  118. nautobot/core/tests/runner.py +2 -2
  119. nautobot/core/tests/test_api.py +154 -176
  120. nautobot/core/tests/test_events.py +214 -0
  121. nautobot/core/tests/test_forms.py +1 -0
  122. nautobot/core/tests/test_jinja_filters.py +1 -0
  123. nautobot/core/tests/test_jobs.py +387 -14
  124. nautobot/core/tests/test_navigations.py +7 -241
  125. nautobot/core/tests/test_settings_schema.py +7 -0
  126. nautobot/core/tests/test_tables.py +100 -0
  127. nautobot/core/tests/test_templatetags_helpers.py +16 -0
  128. nautobot/core/tests/test_ui.py +150 -0
  129. nautobot/core/tests/test_utils.py +55 -18
  130. nautobot/core/tests/test_views.py +124 -5
  131. nautobot/core/ui/__init__.py +0 -0
  132. nautobot/core/ui/base.py +11 -0
  133. nautobot/core/ui/choices.py +44 -0
  134. nautobot/core/ui/homepage.py +167 -0
  135. nautobot/core/ui/nav.py +280 -0
  136. nautobot/core/ui/object_detail.py +1855 -0
  137. nautobot/core/ui/utils.py +36 -0
  138. nautobot/core/urls.py +6 -0
  139. nautobot/core/utils/config.py +30 -3
  140. nautobot/core/utils/lookup.py +12 -2
  141. nautobot/core/utils/querysets.py +64 -0
  142. nautobot/core/utils/requests.py +24 -9
  143. nautobot/core/views/__init__.py +48 -1
  144. nautobot/core/views/generic.py +37 -140
  145. nautobot/core/views/mixins.py +82 -32
  146. nautobot/core/views/paginator.py +8 -5
  147. nautobot/core/views/renderers.py +9 -9
  148. nautobot/core/views/utils.py +11 -0
  149. nautobot/core/wsgi.py +3 -3
  150. nautobot/dcim/api/serializers.py +34 -141
  151. nautobot/dcim/api/urls.py +5 -0
  152. nautobot/dcim/api/views.py +57 -110
  153. nautobot/dcim/apps.py +1 -0
  154. nautobot/dcim/choices.py +28 -0
  155. nautobot/dcim/factory.py +58 -0
  156. nautobot/dcim/filters/__init__.py +204 -2
  157. nautobot/dcim/forms.py +219 -9
  158. nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
  159. nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
  160. nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
  161. nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
  162. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  163. nautobot/dcim/models/__init__.py +5 -1
  164. nautobot/dcim/models/devices.py +180 -2
  165. nautobot/dcim/models/racks.py +2 -2
  166. nautobot/dcim/navigation.py +25 -224
  167. nautobot/dcim/signals.py +44 -0
  168. nautobot/dcim/tables/__init__.py +2 -0
  169. nautobot/dcim/tables/devices.py +103 -7
  170. nautobot/dcim/tables/racks.py +1 -1
  171. nautobot/dcim/templates/dcim/controller/base.html +10 -0
  172. nautobot/dcim/templates/dcim/controller_create.html +2 -7
  173. nautobot/dcim/templates/dcim/controller_retrieve.html +6 -10
  174. nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
  175. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -0
  176. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +51 -0
  177. nautobot/dcim/templates/dcim/device/base.html +6 -42
  178. nautobot/dcim/templates/dcim/device/wireless.html +73 -0
  179. nautobot/dcim/templates/dcim/device.html +4 -10
  180. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  181. nautobot/dcim/templates/dcim/interface.html +1 -0
  182. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  183. nautobot/dcim/templates/dcim/location.html +1 -9
  184. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  185. nautobot/dcim/templates/dcim/locationtype.html +0 -107
  186. nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
  187. nautobot/dcim/templates/dcim/rack.html +1 -9
  188. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  189. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  190. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +68 -0
  191. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +28 -0
  192. nautobot/dcim/tests/integration/test_controller.py +62 -0
  193. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  194. nautobot/dcim/tests/test_api.py +188 -64
  195. nautobot/dcim/tests/test_filters.py +171 -76
  196. nautobot/dcim/tests/test_jobs.py +118 -0
  197. nautobot/dcim/tests/test_models.py +157 -6
  198. nautobot/dcim/tests/test_signals.py +1 -0
  199. nautobot/dcim/tests/test_views.py +118 -88
  200. nautobot/dcim/urls.py +72 -27
  201. nautobot/dcim/utils.py +2 -2
  202. nautobot/dcim/views.py +356 -61
  203. nautobot/extras/api/serializers.py +39 -18
  204. nautobot/extras/api/urls.py +4 -0
  205. nautobot/extras/api/views.py +89 -31
  206. nautobot/extras/choices.py +13 -0
  207. nautobot/extras/constants.py +2 -1
  208. nautobot/extras/context_managers.py +23 -6
  209. nautobot/extras/datasources/git.py +4 -1
  210. nautobot/extras/factory.py +27 -0
  211. nautobot/extras/filters/__init__.py +66 -5
  212. nautobot/extras/forms/base.py +2 -2
  213. nautobot/extras/forms/forms.py +262 -59
  214. nautobot/extras/forms/mixins.py +2 -2
  215. nautobot/extras/graphql/types.py +25 -1
  216. nautobot/extras/jobs.py +109 -15
  217. nautobot/extras/management/__init__.py +1 -0
  218. nautobot/extras/management/commands/runjob.py +7 -79
  219. nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
  220. nautobot/extras/management/utils.py +87 -0
  221. nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
  222. nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
  223. nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
  224. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  225. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  226. nautobot/extras/models/__init__.py +5 -1
  227. nautobot/extras/models/change_logging.py +7 -3
  228. nautobot/extras/models/contacts.py +1 -1
  229. nautobot/extras/models/groups.py +0 -2
  230. nautobot/extras/models/jobs.py +233 -33
  231. nautobot/extras/models/relationships.py +69 -1
  232. nautobot/extras/models/secrets.py +5 -0
  233. nautobot/extras/navigation.py +20 -262
  234. nautobot/extras/plugins/__init__.py +54 -19
  235. nautobot/extras/plugins/marketplace_manifest.yml +455 -0
  236. nautobot/extras/plugins/tables.py +16 -14
  237. nautobot/extras/plugins/urls.py +1 -0
  238. nautobot/extras/plugins/views.py +103 -60
  239. nautobot/extras/registry.py +1 -1
  240. nautobot/extras/secrets/__init__.py +2 -2
  241. nautobot/extras/signals.py +39 -1
  242. nautobot/extras/tables.py +37 -1
  243. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  244. nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
  245. nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
  246. nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
  247. nautobot/extras/templates/extras/job_detail.html +52 -6
  248. nautobot/extras/templates/extras/job_edit.html +6 -2
  249. nautobot/extras/templates/extras/job_list.html +2 -7
  250. nautobot/extras/templates/extras/jobqueue_retrieve.html +36 -0
  251. nautobot/extras/templates/extras/marketplace.html +296 -0
  252. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  253. nautobot/extras/templates/extras/plugins_list.html +35 -1
  254. nautobot/extras/templates/extras/plugins_tiles.html +90 -0
  255. nautobot/extras/templates/extras/role_retrieve.html +16 -0
  256. nautobot/extras/templates/extras/secret.html +0 -65
  257. nautobot/extras/templates/extras/secret_check.js +16 -0
  258. nautobot/extras/templates/extras/secret_create.html +114 -0
  259. nautobot/extras/templates/extras/secret_edit.html +1 -114
  260. nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
  261. nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
  262. nautobot/extras/templatetags/job_buttons.py +5 -4
  263. nautobot/extras/templatetags/plugins.py +69 -6
  264. nautobot/extras/test_jobs/singleton.py +16 -0
  265. nautobot/extras/tests/test_api.py +145 -43
  266. nautobot/extras/tests/test_context_managers.py +4 -1
  267. nautobot/extras/tests/test_filters.py +213 -529
  268. nautobot/extras/tests/test_job_variables.py +73 -152
  269. nautobot/extras/tests/test_jobs.py +181 -51
  270. nautobot/extras/tests/test_models.py +61 -6
  271. nautobot/extras/tests/test_plugins.py +62 -9
  272. nautobot/extras/tests/test_relationships.py +123 -9
  273. nautobot/extras/tests/test_utils.py +23 -2
  274. nautobot/extras/tests/test_views.py +146 -145
  275. nautobot/extras/tests/test_webhooks.py +2 -1
  276. nautobot/extras/urls.py +2 -20
  277. nautobot/extras/utils.py +119 -4
  278. nautobot/extras/views.py +168 -125
  279. nautobot/extras/webhooks.py +5 -2
  280. nautobot/ipam/api/serializers.py +10 -103
  281. nautobot/ipam/api/views.py +31 -49
  282. nautobot/ipam/factory.py +1 -1
  283. nautobot/ipam/filters.py +3 -2
  284. nautobot/ipam/models.py +10 -12
  285. nautobot/ipam/navigation.py +0 -90
  286. nautobot/ipam/tables.py +3 -1
  287. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  288. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  289. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  290. nautobot/ipam/templates/ipam/prefix.html +1 -9
  291. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  292. nautobot/ipam/templates/ipam/routetarget.html +0 -28
  293. nautobot/ipam/templates/ipam/vlan.html +1 -9
  294. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  295. nautobot/ipam/templates/ipam/vrf.html +0 -47
  296. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  297. nautobot/ipam/tests/test_api.py +7 -5
  298. nautobot/ipam/tests/test_filters.py +39 -119
  299. nautobot/ipam/tests/test_forms.py +0 -2
  300. nautobot/ipam/tests/test_models.py +56 -36
  301. nautobot/ipam/tests/test_views.py +3 -0
  302. nautobot/ipam/urls.py +3 -69
  303. nautobot/ipam/utils/__init__.py +16 -10
  304. nautobot/ipam/views.py +91 -162
  305. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  306. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  307. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  308. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  309. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  310. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  311. nautobot/project-static/css/base.css +38 -3
  312. nautobot/project-static/docs/404.html +461 -17
  313. nautobot/project-static/docs/apps/index.html +461 -17
  314. nautobot/project-static/docs/apps/nautobot-apps.html +462 -19
  315. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  316. nautobot/project-static/docs/assets/extra.css +5 -1
  317. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +477 -23
  318. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +474 -20
  319. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +790 -289
  320. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +505 -31
  321. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +510 -34
  322. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +471 -20
  323. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +467 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +497 -33
  325. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9883 -0
  326. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +523 -75
  327. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +546 -51
  328. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +670 -94
  329. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1030 -177
  330. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +524 -49
  331. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +874 -188
  332. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +955 -235
  333. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +475 -21
  334. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +486 -28
  335. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +661 -99
  336. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +947 -479
  337. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6425 -1234
  338. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +474 -20
  339. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +877 -344
  340. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +828 -171
  341. nautobot/project-static/docs/development/apps/api/configuration-view.html +461 -17
  342. nautobot/project-static/docs/development/apps/api/database-backend-config.html +461 -17
  343. nautobot/project-static/docs/development/apps/api/models/django-admin.html +461 -17
  344. nautobot/project-static/docs/development/apps/api/models/global-search.html +461 -17
  345. nautobot/project-static/docs/development/apps/api/models/graphql.html +461 -17
  346. nautobot/project-static/docs/development/apps/api/models/index.html +461 -17
  347. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +461 -17
  348. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +461 -17
  349. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +461 -17
  350. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +461 -17
  351. nautobot/project-static/docs/development/apps/api/platform-features/index.html +461 -17
  352. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +461 -17
  353. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +461 -17
  354. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +461 -17
  355. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +461 -17
  356. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +461 -17
  357. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +461 -17
  358. nautobot/project-static/docs/development/apps/api/prometheus.html +461 -17
  359. nautobot/project-static/docs/development/apps/api/setup.html +465 -153
  360. nautobot/project-static/docs/development/apps/api/testing.html +461 -17
  361. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +461 -17
  362. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +461 -17
  363. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +461 -17
  364. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +461 -17
  365. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +741 -128
  366. nautobot/project-static/docs/development/apps/api/views/base-template.html +461 -17
  367. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +461 -17
  368. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +461 -17
  369. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +461 -17
  370. nautobot/project-static/docs/development/apps/api/views/index.html +463 -18
  371. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +465 -17
  372. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +491 -17
  373. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +461 -17
  374. nautobot/project-static/docs/development/apps/api/views/notes.html +461 -17
  375. nautobot/project-static/docs/development/apps/api/views/rest-api.html +467 -19
  376. nautobot/project-static/docs/development/apps/api/views/urls.html +461 -17
  377. nautobot/project-static/docs/development/apps/index.html +461 -17
  378. nautobot/project-static/docs/development/apps/migration/code-updates.html +462 -50
  379. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +462 -18
  380. nautobot/project-static/docs/development/apps/migration/from-v1.html +461 -17
  381. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +461 -17
  382. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +461 -17
  383. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +461 -17
  384. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +464 -20
  385. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9261 -0
  386. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9375 -0
  387. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9671 -0
  388. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9559 -0
  389. nautobot/project-static/docs/development/apps/porting-from-netbox.html +464 -20
  390. nautobot/project-static/docs/development/core/application-registry.html +461 -17
  391. nautobot/project-static/docs/development/core/best-practices.html +461 -17
  392. nautobot/project-static/docs/development/core/bootstrap-ui.html +461 -17
  393. nautobot/project-static/docs/development/core/caching.html +461 -17
  394. nautobot/project-static/docs/development/core/controllers.html +463 -17
  395. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +464 -20
  396. nautobot/project-static/docs/development/core/generic-views.html +461 -17
  397. nautobot/project-static/docs/development/core/getting-started.html +539 -127
  398. nautobot/project-static/docs/development/core/homepage.html +472 -28
  399. nautobot/project-static/docs/development/core/index.html +461 -17
  400. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9754 -0
  401. nautobot/project-static/docs/development/core/model-checklist.html +471 -25
  402. nautobot/project-static/docs/development/core/model-features.html +461 -17
  403. nautobot/project-static/docs/development/core/natural-keys.html +461 -17
  404. nautobot/project-static/docs/development/core/navigation-menu.html +478 -24
  405. nautobot/project-static/docs/development/core/release-checklist.html +478 -46
  406. nautobot/project-static/docs/development/core/role-internals.html +461 -17
  407. nautobot/project-static/docs/development/core/settings.html +461 -17
  408. nautobot/project-static/docs/development/core/style-guide.html +464 -20
  409. nautobot/project-static/docs/development/core/templates.html +471 -20
  410. nautobot/project-static/docs/development/core/testing.html +461 -17
  411. nautobot/project-static/docs/development/core/ui-component-framework.html +11116 -0
  412. nautobot/project-static/docs/development/core/user-preferences.html +464 -20
  413. nautobot/project-static/docs/development/index.html +461 -17
  414. nautobot/project-static/docs/development/jobs/index.html +499 -19
  415. nautobot/project-static/docs/development/jobs/migration/from-v1.html +461 -17
  416. nautobot/project-static/docs/index.html +469 -36
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  422. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  423. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  424. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  425. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  426. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  427. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  428. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  429. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  430. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  431. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  432. nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
  433. nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
  434. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  435. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  436. nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
  437. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
  438. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
  439. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
  440. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  441. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  442. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
  443. nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
  444. nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
  445. nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
  446. nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
  447. nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
  448. nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
  449. nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
  450. nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
  451. nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
  452. nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
  453. nautobot/project-static/docs/objects.inv +0 -0
  454. nautobot/project-static/docs/overview/application_stack.html +467 -21
  455. nautobot/project-static/docs/overview/design_philosophy.html +461 -17
  456. nautobot/project-static/docs/release-notes/index.html +483 -20
  457. nautobot/project-static/docs/release-notes/version-1.0.html +649 -206
  458. nautobot/project-static/docs/release-notes/version-1.1.html +646 -203
  459. nautobot/project-static/docs/release-notes/version-1.2.html +721 -278
  460. nautobot/project-static/docs/release-notes/version-1.3.html +747 -304
  461. nautobot/project-static/docs/release-notes/version-1.4.html +832 -390
  462. nautobot/project-static/docs/release-notes/version-1.5.html +1020 -579
  463. nautobot/project-static/docs/release-notes/version-1.6.html +940 -516
  464. nautobot/project-static/docs/release-notes/version-2.0.html +943 -502
  465. nautobot/project-static/docs/release-notes/version-2.1.html +778 -337
  466. nautobot/project-static/docs/release-notes/version-2.2.html +771 -330
  467. nautobot/project-static/docs/release-notes/version-2.3.html +914 -471
  468. nautobot/project-static/docs/release-notes/version-2.4.html +10323 -0
  469. nautobot/project-static/docs/search/search_index.json +1 -1
  470. nautobot/project-static/docs/sitemap.xml +342 -270
  471. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  472. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +461 -17
  473. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +461 -17
  474. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +461 -17
  475. nautobot/project-static/docs/user-guide/administration/configuration/index.html +473 -30
  476. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +461 -17
  477. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +842 -155
  478. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +461 -17
  479. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +461 -17
  480. nautobot/project-static/docs/user-guide/administration/guides/docker.html +474 -27
  481. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +461 -17
  482. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +461 -17
  483. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +461 -17
  484. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +461 -17
  485. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +461 -17
  486. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +463 -19
  487. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +461 -17
  488. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +461 -17
  489. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +461 -17
  490. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +481 -21
  491. nautobot/project-static/docs/user-guide/administration/installation/index.html +466 -18
  492. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +462 -18
  493. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +461 -17
  494. nautobot/project-static/docs/user-guide/administration/installation/services.html +461 -17
  495. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +461 -17
  496. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +482 -39
  497. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +475 -64
  498. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +475 -64
  499. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +461 -17
  500. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +461 -17
  501. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +461 -17
  502. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +461 -17
  503. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +461 -17
  504. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +464 -21
  505. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +461 -17
  506. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
  507. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +461 -17
  508. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +467 -19
  509. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +461 -17
  510. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +461 -17
  511. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +461 -17
  512. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +461 -17
  513. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +461 -17
  514. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +461 -17
  515. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +461 -17
  516. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +461 -17
  517. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +461 -17
  518. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +461 -17
  519. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +461 -17
  520. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +461 -17
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +461 -17
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +461 -17
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +461 -17
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +461 -17
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +461 -17
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +497 -18
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +487 -20
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +461 -17
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +461 -17
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +461 -17
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +461 -17
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +461 -17
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +461 -17
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +461 -17
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +461 -17
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +461 -17
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +461 -17
  538. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +461 -17
  539. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +461 -17
  540. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +461 -17
  541. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +461 -17
  542. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +461 -17
  543. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +461 -17
  544. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +461 -17
  545. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +461 -17
  546. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +461 -17
  547. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +461 -17
  548. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +461 -17
  549. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +461 -17
  550. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +461 -17
  551. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +461 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +461 -17
  553. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +461 -17
  554. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +461 -17
  555. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +461 -17
  556. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +461 -17
  557. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +461 -17
  558. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +461 -17
  559. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +461 -17
  560. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +461 -17
  561. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +461 -17
  562. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9375 -0
  563. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +468 -28
  564. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +461 -17
  565. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +461 -17
  566. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +461 -17
  567. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +461 -17
  568. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +461 -17
  569. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +461 -17
  570. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +461 -17
  571. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +461 -17
  572. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +461 -17
  573. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +461 -17
  574. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +461 -17
  575. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +461 -17
  576. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +464 -20
  577. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +461 -17
  578. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +461 -17
  579. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +461 -17
  580. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +461 -17
  581. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +461 -17
  582. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +461 -17
  583. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +464 -20
  584. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9313 -0
  585. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9217 -0
  586. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9211 -0
  587. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9277 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +461 -17
  589. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +461 -17
  590. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +461 -17
  591. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +461 -17
  592. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +461 -17
  593. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +461 -17
  594. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +461 -17
  595. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +461 -17
  596. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +461 -17
  597. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +461 -17
  598. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +461 -17
  599. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +466 -20
  600. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +461 -17
  601. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  602. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  603. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  604. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  605. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  606. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  607. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  608. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  609. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  610. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  611. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  612. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  613. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  614. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +461 -17
  615. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +461 -17
  616. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +464 -20
  617. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  618. nautobot/project-static/docs/user-guide/index.html +461 -17
  619. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +464 -20
  620. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +465 -21
  621. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +461 -17
  622. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +461 -17
  623. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +461 -17
  624. nautobot/project-static/docs/user-guide/platform-functionality/events.html +9617 -0
  625. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +464 -20
  626. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +461 -17
  627. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +461 -17
  628. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +461 -17
  629. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +461 -17
  630. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +461 -17
  631. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +470 -21
  632. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +464 -20
  633. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +464 -20
  634. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +461 -17
  635. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9224 -0
  636. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  637. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +464 -20
  638. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +461 -17
  639. nautobot/project-static/docs/user-guide/platform-functionality/note.html +461 -17
  640. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +461 -17
  641. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +465 -21
  642. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9292 -0
  643. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +461 -17
  644. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +509 -38
  645. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +492 -21
  646. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +461 -17
  647. nautobot/project-static/docs/user-guide/platform-functionality/role.html +461 -17
  648. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +461 -17
  649. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +461 -17
  650. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +464 -20
  651. nautobot/project-static/docs/user-guide/platform-functionality/status.html +461 -17
  652. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +461 -17
  653. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +529 -54
  654. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +461 -17
  655. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +461 -17
  656. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +461 -17
  657. nautobot/project-static/img/jinja_logo.svg +97 -0
  658. nautobot/project-static/js/forms.js +6 -1
  659. nautobot/project-static/js/nav_menu.js +2 -1
  660. nautobot/tenancy/api/serializers.py +0 -2
  661. nautobot/tenancy/api/views.py +9 -13
  662. nautobot/tenancy/factory.py +1 -1
  663. nautobot/tenancy/navigation.py +0 -29
  664. nautobot/tenancy/templates/tenancy/tenant.html +4 -91
  665. nautobot/tenancy/tests/test_filters.py +29 -134
  666. nautobot/tenancy/views.py +35 -24
  667. nautobot/users/admin.py +2 -0
  668. nautobot/users/api/views.py +2 -2
  669. nautobot/users/forms.py +19 -0
  670. nautobot/users/templates/users/preferences.html +22 -0
  671. nautobot/users/tests/test_filters.py +1 -19
  672. nautobot/users/tests/test_views.py +57 -0
  673. nautobot/users/utils.py +8 -0
  674. nautobot/users/views.py +48 -11
  675. nautobot/virtualization/api/views.py +5 -24
  676. nautobot/virtualization/filters.py +1 -2
  677. nautobot/virtualization/models.py +1 -1
  678. nautobot/virtualization/navigation.py +0 -48
  679. nautobot/virtualization/tables.py +2 -2
  680. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  681. nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
  682. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  683. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  684. nautobot/virtualization/tests/test_filters.py +57 -166
  685. nautobot/virtualization/views.py +18 -15
  686. nautobot/wireless/__init__.py +0 -0
  687. nautobot/wireless/api/__init__.py +0 -0
  688. nautobot/wireless/api/serializers.py +44 -0
  689. nautobot/wireless/api/urls.py +20 -0
  690. nautobot/wireless/api/views.py +34 -0
  691. nautobot/wireless/apps.py +8 -0
  692. nautobot/wireless/choices.py +345 -0
  693. nautobot/wireless/factory.py +138 -0
  694. nautobot/wireless/filters.py +167 -0
  695. nautobot/wireless/forms.py +283 -0
  696. nautobot/wireless/homepage.py +19 -0
  697. nautobot/wireless/migrations/0001_initial.py +223 -0
  698. nautobot/wireless/migrations/__init__.py +0 -0
  699. nautobot/wireless/models.py +207 -0
  700. nautobot/wireless/navigation.py +105 -0
  701. nautobot/wireless/tables.py +244 -0
  702. nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
  703. nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
  704. nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
  705. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +56 -0
  706. nautobot/wireless/tests/__init__.py +0 -0
  707. nautobot/wireless/tests/integration/__init__.py +0 -0
  708. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  709. nautobot/wireless/tests/test_api.py +247 -0
  710. nautobot/wireless/tests/test_filters.py +82 -0
  711. nautobot/wireless/tests/test_models.py +22 -0
  712. nautobot/wireless/tests/test_views.py +378 -0
  713. nautobot/wireless/urls.py +13 -0
  714. nautobot/wireless/views.py +119 -0
  715. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/METADATA +9 -12
  716. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/RECORD +720 -549
  717. nautobot/core/utils/navigation.py +0 -54
  718. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/LICENSE.txt +0 -0
  719. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/NOTICE +0 -0
  720. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/WHEEL +0 -0
  721. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/entry_points.txt +0 -0
@@ -2112,6 +2112,27 @@
2112
2112
 
2113
2113
 
2114
2114
 
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+ <li class="md-nav__item">
2122
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2123
+
2124
+
2125
+ <span class="md-ellipsis">
2126
+ Wireless Networks and Controllers
2127
+ </span>
2128
+
2129
+
2130
+ </a>
2131
+ </li>
2132
+
2133
+
2134
+
2135
+
2115
2136
  </ul>
2116
2137
  </nav>
2117
2138
 
@@ -3944,6 +3965,27 @@
3944
3965
 
3945
3966
 
3946
3967
 
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+ <li class="md-nav__item">
3975
+ <a href="../../../user-guide/core-data-model/dcim/virtualdevicecontext.html" class="md-nav__link">
3976
+
3977
+
3978
+ <span class="md-ellipsis">
3979
+ Virtual Device Context
3980
+ </span>
3981
+
3982
+
3983
+ </a>
3984
+ </li>
3985
+
3986
+
3987
+
3988
+
3947
3989
  </ul>
3948
3990
  </nav>
3949
3991
 
@@ -4556,6 +4598,123 @@
4556
4598
 
4557
4599
 
4558
4600
 
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+
4607
+
4608
+
4609
+
4610
+
4611
+
4612
+
4613
+
4614
+ <li class="md-nav__item md-nav__item--nested">
4615
+
4616
+
4617
+
4618
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_9" >
4619
+
4620
+
4621
+
4622
+ <div class="md-nav__link md-nav__container">
4623
+ <a href="../../../user-guide/core-data-model/wireless/index.html" class="md-nav__link ">
4624
+
4625
+
4626
+ <span class="md-ellipsis">
4627
+ Wireless
4628
+ </span>
4629
+
4630
+
4631
+ </a>
4632
+
4633
+
4634
+ <label class="md-nav__link " for="__nav_2_3_9" id="__nav_2_3_9_label" tabindex="0">
4635
+ <span class="md-nav__icon md-icon"></span>
4636
+ </label>
4637
+
4638
+ </div>
4639
+
4640
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_9_label" aria-expanded="false">
4641
+ <label class="md-nav__title" for="__nav_2_3_9">
4642
+ <span class="md-nav__icon md-icon"></span>
4643
+ Wireless
4644
+ </label>
4645
+ <ul class="md-nav__list" data-md-scrollfix>
4646
+
4647
+
4648
+
4649
+
4650
+
4651
+
4652
+
4653
+ <li class="md-nav__item">
4654
+ <a href="../../../user-guide/core-data-model/wireless/supporteddatarate.html" class="md-nav__link">
4655
+
4656
+
4657
+ <span class="md-ellipsis">
4658
+ Supported Data Rate
4659
+ </span>
4660
+
4661
+
4662
+ </a>
4663
+ </li>
4664
+
4665
+
4666
+
4667
+
4668
+
4669
+
4670
+
4671
+
4672
+
4673
+
4674
+ <li class="md-nav__item">
4675
+ <a href="../../../user-guide/core-data-model/wireless/radioprofile.html" class="md-nav__link">
4676
+
4677
+
4678
+ <span class="md-ellipsis">
4679
+ Radio Profile
4680
+ </span>
4681
+
4682
+
4683
+ </a>
4684
+ </li>
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+ <li class="md-nav__item">
4696
+ <a href="../../../user-guide/core-data-model/wireless/wirelessnetwork.html" class="md-nav__link">
4697
+
4698
+
4699
+ <span class="md-ellipsis">
4700
+ Wireless Network
4701
+ </span>
4702
+
4703
+
4704
+ </a>
4705
+ </li>
4706
+
4707
+
4708
+
4709
+
4710
+ </ul>
4711
+ </nav>
4712
+
4713
+ </li>
4714
+
4715
+
4716
+
4717
+
4559
4718
  </ul>
4560
4719
  </nav>
4561
4720
 
@@ -4767,6 +4926,27 @@
4767
4926
 
4768
4927
 
4769
4928
 
4929
+ <li class="md-nav__item">
4930
+ <a href="../../../user-guide/platform-functionality/events.html" class="md-nav__link">
4931
+
4932
+
4933
+ <span class="md-ellipsis">
4934
+ Event Notifications
4935
+ </span>
4936
+
4937
+
4938
+ </a>
4939
+ </li>
4940
+
4941
+
4942
+
4943
+
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4770
4950
  <li class="md-nav__item">
4771
4951
  <a href="../../../user-guide/platform-functionality/exporttemplate.html" class="md-nav__link">
4772
4952
 
@@ -4841,7 +5021,7 @@
4841
5021
 
4842
5022
 
4843
5023
 
4844
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
5024
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_10" >
4845
5025
 
4846
5026
 
4847
5027
 
@@ -4857,14 +5037,14 @@
4857
5037
  </a>
4858
5038
 
4859
5039
 
4860
- <label class="md-nav__link " for="__nav_2_4_9" id="__nav_2_4_9_label" tabindex="0">
5040
+ <label class="md-nav__link " for="__nav_2_4_10" id="__nav_2_4_10_label" tabindex="0">
4861
5041
  <span class="md-nav__icon md-icon"></span>
4862
5042
  </label>
4863
5043
 
4864
5044
  </div>
4865
5045
 
4866
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_9_label" aria-expanded="false">
4867
- <label class="md-nav__title" for="__nav_2_4_9">
5046
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_10_label" aria-expanded="false">
5047
+ <label class="md-nav__title" for="__nav_2_4_10">
4868
5048
  <span class="md-nav__icon md-icon"></span>
4869
5049
  GraphQL
4870
5050
  </label>
@@ -4937,7 +5117,7 @@
4937
5117
 
4938
5118
 
4939
5119
 
4940
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
5120
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_12" >
4941
5121
 
4942
5122
 
4943
5123
 
@@ -4953,14 +5133,14 @@
4953
5133
  </a>
4954
5134
 
4955
5135
 
4956
- <label class="md-nav__link " for="__nav_2_4_11" id="__nav_2_4_11_label" tabindex="0">
5136
+ <label class="md-nav__link " for="__nav_2_4_12" id="__nav_2_4_12_label" tabindex="0">
4957
5137
  <span class="md-nav__icon md-icon"></span>
4958
5138
  </label>
4959
5139
 
4960
5140
  </div>
4961
5141
 
4962
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_11_label" aria-expanded="false">
4963
- <label class="md-nav__title" for="__nav_2_4_11">
5142
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_12_label" aria-expanded="false">
5143
+ <label class="md-nav__title" for="__nav_2_4_12">
4964
5144
  <span class="md-nav__icon md-icon"></span>
4965
5145
  Jobs
4966
5146
  </label>
@@ -4972,6 +5152,27 @@
4972
5152
 
4973
5153
 
4974
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Kubernetes Job Support
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
4975
5176
  <li class="md-nav__item">
4976
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
4977
5178
 
@@ -5035,6 +5236,27 @@
5035
5236
 
5036
5237
 
5037
5238
 
5239
+ <li class="md-nav__item">
5240
+ <a href="../../../user-guide/platform-functionality/jobs/jobqueue.html" class="md-nav__link">
5241
+
5242
+
5243
+ <span class="md-ellipsis">
5244
+ Job Queues
5245
+ </span>
5246
+
5247
+
5248
+ </a>
5249
+ </li>
5250
+
5251
+
5252
+
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+
5038
5260
  <li class="md-nav__item">
5039
5261
  <a href="../../../user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html" class="md-nav__link">
5040
5262
 
@@ -5148,6 +5370,27 @@
5148
5370
 
5149
5371
 
5150
5372
 
5373
+ <li class="md-nav__item">
5374
+ <a href="../../../user-guide/platform-functionality/rendering-jinja-templates.html" class="md-nav__link">
5375
+
5376
+
5377
+ <span class="md-ellipsis">
5378
+ Rendering Jinja Templates
5379
+ </span>
5380
+
5381
+
5382
+ </a>
5383
+ </li>
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5151
5394
 
5152
5395
 
5153
5396
 
@@ -5159,7 +5402,7 @@
5159
5402
 
5160
5403
 
5161
5404
 
5162
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_16" >
5405
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_18" >
5163
5406
 
5164
5407
 
5165
5408
 
@@ -5175,14 +5418,14 @@
5175
5418
  </a>
5176
5419
 
5177
5420
 
5178
- <label class="md-nav__link " for="__nav_2_4_16" id="__nav_2_4_16_label" tabindex="0">
5421
+ <label class="md-nav__link " for="__nav_2_4_18" id="__nav_2_4_18_label" tabindex="0">
5179
5422
  <span class="md-nav__icon md-icon"></span>
5180
5423
  </label>
5181
5424
 
5182
5425
  </div>
5183
5426
 
5184
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_16_label" aria-expanded="false">
5185
- <label class="md-nav__title" for="__nav_2_4_16">
5427
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_18_label" aria-expanded="false">
5428
+ <label class="md-nav__title" for="__nav_2_4_18">
5186
5429
  <span class="md-nav__icon md-icon"></span>
5187
5430
  REST API
5188
5431
  </label>
@@ -5402,10 +5645,10 @@
5402
5645
 
5403
5646
 
5404
5647
 
5405
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_23" >
5648
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_25" >
5406
5649
 
5407
5650
 
5408
- <label class="md-nav__link" for="__nav_2_4_23" id="__nav_2_4_23_label" tabindex="0">
5651
+ <label class="md-nav__link" for="__nav_2_4_25" id="__nav_2_4_25_label" tabindex="0">
5409
5652
 
5410
5653
 
5411
5654
  <span class="md-ellipsis">
@@ -5416,8 +5659,8 @@
5416
5659
  <span class="md-nav__icon md-icon"></span>
5417
5660
  </label>
5418
5661
 
5419
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_23_label" aria-expanded="false">
5420
- <label class="md-nav__title" for="__nav_2_4_23">
5662
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_25_label" aria-expanded="false">
5663
+ <label class="md-nav__title" for="__nav_2_4_25">
5421
5664
  <span class="md-nav__icon md-icon"></span>
5422
5665
  Users
5423
5666
  </label>
@@ -6822,15 +7065,6 @@
6822
7065
  </span>
6823
7066
  </a>
6824
7067
 
6825
- </li>
6826
-
6827
- <li class="md-nav__item">
6828
- <a href="#nautobot.apps.api.BaseModelSerializer.determine_view_options" class="md-nav__link">
6829
- <span class="md-ellipsis">
6830
- determine_view_options
6831
- </span>
6832
- </a>
6833
-
6834
7068
  </li>
6835
7069
 
6836
7070
  <li class="md-nav__item">
@@ -6840,15 +7074,6 @@
6840
7074
  </span>
6841
7075
  </a>
6842
7076
 
6843
- </li>
6844
-
6845
- <li class="md-nav__item">
6846
- <a href="#nautobot.apps.api.BaseModelSerializer.get_additional_detail_view_tabs" class="md-nav__link">
6847
- <span class="md-ellipsis">
6848
- get_additional_detail_view_tabs
6849
- </span>
6850
- </a>
6851
-
6852
7077
  </li>
6853
7078
 
6854
7079
  <li class="md-nav__item">
@@ -6941,15 +7166,6 @@
6941
7166
  </span>
6942
7167
  </a>
6943
7168
 
6944
- </li>
6945
-
6946
- <li class="md-nav__item">
6947
- <a href="#nautobot.apps.api.GetObjectCountsView" class="md-nav__link">
6948
- <span class="md-ellipsis">
6949
- GetObjectCountsView
6950
- </span>
6951
- </a>
6952
-
6953
7169
  </li>
6954
7170
 
6955
7171
  <li class="md-nav__item">
@@ -6978,6 +7194,15 @@
6978
7194
  </span>
6979
7195
  </a>
6980
7196
 
7197
+ </li>
7198
+
7199
+ <li class="md-nav__item">
7200
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="md-nav__link">
7201
+ <span class="md-ellipsis">
7202
+ get_queryset
7203
+ </span>
7204
+ </a>
7205
+
6981
7206
  </li>
6982
7207
 
6983
7208
  <li class="md-nav__item">
@@ -7742,11 +7967,11 @@
7742
7967
 
7743
7968
 
7744
7969
  <li class="md-nav__item">
7745
- <a href="exceptions.html" class="md-nav__link">
7970
+ <a href="events.html" class="md-nav__link">
7746
7971
 
7747
7972
 
7748
7973
  <span class="md-ellipsis">
7749
- nautobot.apps.exceptions
7974
+ nautobot.apps.events
7750
7975
  </span>
7751
7976
 
7752
7977
 
@@ -7763,11 +7988,11 @@
7763
7988
 
7764
7989
 
7765
7990
  <li class="md-nav__item">
7766
- <a href="factory.html" class="md-nav__link">
7991
+ <a href="exceptions.html" class="md-nav__link">
7767
7992
 
7768
7993
 
7769
7994
  <span class="md-ellipsis">
7770
- nautobot.apps.factory
7995
+ nautobot.apps.exceptions
7771
7996
  </span>
7772
7997
 
7773
7998
 
@@ -7784,11 +8009,32 @@
7784
8009
 
7785
8010
 
7786
8011
  <li class="md-nav__item">
7787
- <a href="filters.html" class="md-nav__link">
8012
+ <a href="factory.html" class="md-nav__link">
7788
8013
 
7789
8014
 
7790
8015
  <span class="md-ellipsis">
7791
- nautobot.apps.filters
8016
+ nautobot.apps.factory
8017
+ </span>
8018
+
8019
+
8020
+ </a>
8021
+ </li>
8022
+
8023
+
8024
+
8025
+
8026
+
8027
+
8028
+
8029
+
8030
+
8031
+
8032
+ <li class="md-nav__item">
8033
+ <a href="filters.html" class="md-nav__link">
8034
+
8035
+
8036
+ <span class="md-ellipsis">
8037
+ nautobot.apps.filters
7792
8038
  </span>
7793
8039
 
7794
8040
 
@@ -8289,6 +8535,123 @@
8289
8535
 
8290
8536
 
8291
8537
 
8538
+
8539
+
8540
+
8541
+
8542
+
8543
+
8544
+
8545
+
8546
+
8547
+
8548
+
8549
+
8550
+
8551
+ <li class="md-nav__item md-nav__item--nested">
8552
+
8553
+
8554
+
8555
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
8556
+
8557
+
8558
+
8559
+ <div class="md-nav__link md-nav__container">
8560
+ <a href="../../../development/apps/migration/ui-component-framework/index.html" class="md-nav__link ">
8561
+
8562
+
8563
+ <span class="md-ellipsis">
8564
+ UI Component Framework
8565
+ </span>
8566
+
8567
+
8568
+ </a>
8569
+
8570
+
8571
+ <label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
8572
+ <span class="md-nav__icon md-icon"></span>
8573
+ </label>
8574
+
8575
+ </div>
8576
+
8577
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
8578
+ <label class="md-nav__title" for="__nav_3_2_9_5">
8579
+ <span class="md-nav__icon md-icon"></span>
8580
+ UI Component Framework
8581
+ </label>
8582
+ <ul class="md-nav__list" data-md-scrollfix>
8583
+
8584
+
8585
+
8586
+
8587
+
8588
+
8589
+
8590
+ <li class="md-nav__item">
8591
+ <a href="../../../development/apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
8592
+
8593
+
8594
+ <span class="md-ellipsis">
8595
+ Migration steps
8596
+ </span>
8597
+
8598
+
8599
+ </a>
8600
+ </li>
8601
+
8602
+
8603
+
8604
+
8605
+
8606
+
8607
+
8608
+
8609
+
8610
+
8611
+ <li class="md-nav__item">
8612
+ <a href="../../../development/apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
8613
+
8614
+
8615
+ <span class="md-ellipsis">
8616
+ Custom content
8617
+ </span>
8618
+
8619
+
8620
+ </a>
8621
+ </li>
8622
+
8623
+
8624
+
8625
+
8626
+
8627
+
8628
+
8629
+
8630
+
8631
+
8632
+ <li class="md-nav__item">
8633
+ <a href="../../../development/apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
8634
+
8635
+
8636
+ <span class="md-ellipsis">
8637
+ Best practices
8638
+ </span>
8639
+
8640
+
8641
+ </a>
8642
+ </li>
8643
+
8644
+
8645
+
8646
+
8647
+ </ul>
8648
+ </nav>
8649
+
8650
+ </li>
8651
+
8652
+
8653
+
8654
+
8292
8655
  </ul>
8293
8656
  </nav>
8294
8657
 
@@ -8634,6 +8997,27 @@
8634
8997
 
8635
8998
 
8636
8999
 
9000
+ <li class="md-nav__item">
9001
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9002
+
9003
+
9004
+ <span class="md-ellipsis">
9005
+ Minikube Dev Environment for K8s Jobs
9006
+ </span>
9007
+
9008
+
9009
+ </a>
9010
+ </li>
9011
+
9012
+
9013
+
9014
+
9015
+
9016
+
9017
+
9018
+
9019
+
9020
+
8637
9021
  <li class="md-nav__item">
8638
9022
  <a href="../../../development/core/model-checklist.html" class="md-nav__link">
8639
9023
 
@@ -8823,6 +9207,27 @@
8823
9207
 
8824
9208
 
8825
9209
 
9210
+ <li class="md-nav__item">
9211
+ <a href="../../../development/core/ui-component-framework.html" class="md-nav__link">
9212
+
9213
+
9214
+ <span class="md-ellipsis">
9215
+ UI Component Framework
9216
+ </span>
9217
+
9218
+
9219
+ </a>
9220
+ </li>
9221
+
9222
+
9223
+
9224
+
9225
+
9226
+
9227
+
9228
+
9229
+
9230
+
8826
9231
  <li class="md-nav__item">
8827
9232
  <a href="../../../development/core/release-checklist.html" class="md-nav__link">
8828
9233
 
@@ -8905,6 +9310,27 @@
8905
9310
 
8906
9311
 
8907
9312
 
9313
+ <li class="md-nav__item">
9314
+ <a href="../../../release-notes/version-2.4.html" class="md-nav__link">
9315
+
9316
+
9317
+ <span class="md-ellipsis">
9318
+ Version 2.4
9319
+ </span>
9320
+
9321
+
9322
+ </a>
9323
+ </li>
9324
+
9325
+
9326
+
9327
+
9328
+
9329
+
9330
+
9331
+
9332
+
9333
+
8908
9334
  <li class="md-nav__item">
8909
9335
  <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
8910
9336
 
@@ -9563,15 +9989,6 @@
9563
9989
  </span>
9564
9990
  </a>
9565
9991
 
9566
- </li>
9567
-
9568
- <li class="md-nav__item">
9569
- <a href="#nautobot.apps.api.BaseModelSerializer.determine_view_options" class="md-nav__link">
9570
- <span class="md-ellipsis">
9571
- determine_view_options
9572
- </span>
9573
- </a>
9574
-
9575
9992
  </li>
9576
9993
 
9577
9994
  <li class="md-nav__item">
@@ -9581,15 +9998,6 @@
9581
9998
  </span>
9582
9999
  </a>
9583
10000
 
9584
- </li>
9585
-
9586
- <li class="md-nav__item">
9587
- <a href="#nautobot.apps.api.BaseModelSerializer.get_additional_detail_view_tabs" class="md-nav__link">
9588
- <span class="md-ellipsis">
9589
- get_additional_detail_view_tabs
9590
- </span>
9591
- </a>
9592
-
9593
10001
  </li>
9594
10002
 
9595
10003
  <li class="md-nav__item">
@@ -9682,15 +10090,6 @@
9682
10090
  </span>
9683
10091
  </a>
9684
10092
 
9685
- </li>
9686
-
9687
- <li class="md-nav__item">
9688
- <a href="#nautobot.apps.api.GetObjectCountsView" class="md-nav__link">
9689
- <span class="md-ellipsis">
9690
- GetObjectCountsView
9691
- </span>
9692
- </a>
9693
-
9694
10093
  </li>
9695
10094
 
9696
10095
  <li class="md-nav__item">
@@ -9719,6 +10118,15 @@
9719
10118
  </span>
9720
10119
  </a>
9721
10120
 
10121
+ </li>
10122
+
10123
+ <li class="md-nav__item">
10124
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="md-nav__link">
10125
+ <span class="md-ellipsis">
10126
+ get_queryset
10127
+ </span>
10128
+ </a>
10129
+
9722
10130
  </li>
9723
10131
 
9724
10132
  <li class="md-nav__item">
@@ -10392,7 +10800,12 @@
10392
10800
 
10393
10801
  <div class="doc doc-contents first">
10394
10802
 
10395
- <p>Helpers for an app to implement a REST API.</p>
10803
+ <p>Helpers for an app to implement a REST API.</p>
10804
+
10805
+
10806
+
10807
+
10808
+
10396
10809
 
10397
10810
 
10398
10811
 
@@ -10418,10 +10831,15 @@
10418
10831
 
10419
10832
  <div class="doc doc-contents ">
10420
10833
  <p class="doc doc-class-bases">
10421
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="rest_framework.routers.APIRootView" optional hover>APIRootView</autoref></code></p>
10834
+ Bases: <code><span title="nautobot.core.api.views.NautobotAPIVersionMixin">NautobotAPIVersionMixin</span></code>, <code><span title="rest_framework.routers.APIRootView">APIRootView</span></code></p>
10835
+
10836
+
10837
+ <p>Extends DRF's base APIRootView class to enforce user authentication.</p>
10838
+
10839
+
10840
+
10422
10841
 
10423
10842
 
10424
- <p>Extends DRF's base APIRootView class to enforce user authentication.</p>
10425
10843
 
10426
10844
 
10427
10845
 
@@ -10457,10 +10875,10 @@
10457
10875
 
10458
10876
  <div class="doc doc-contents ">
10459
10877
  <p class="doc doc-class-bases">
10460
- Bases: <code><autoref identifier="nautobot.core.api.serializers.OptInFieldsMixin" optional hover>OptInFieldsMixin</autoref></code>, <code><autoref identifier="rest_framework.serializers.HyperlinkedModelSerializer" optional hover>HyperlinkedModelSerializer</autoref></code></p>
10878
+ 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>
10461
10879
 
10462
10880
 
10463
- <p>This base serializer implements common fields and logic for all ModelSerializers.</p>
10881
+ <p>This base serializer implements common fields and logic for all ModelSerializers.</p>
10464
10882
  <p>Namely, it:</p>
10465
10883
  <ul>
10466
10884
  <li>defines the <code>display</code> field which exposes a human friendly value for the given object.</li>
@@ -10477,6 +10895,11 @@
10477
10895
 
10478
10896
 
10479
10897
 
10898
+
10899
+
10900
+
10901
+
10902
+
10480
10903
  <div class="doc doc-children">
10481
10904
 
10482
10905
 
@@ -10501,7 +10924,7 @@
10501
10924
 
10502
10925
  <div class="doc doc-contents ">
10503
10926
 
10504
- <p>Return whether this is a nested serializer.</p>
10927
+ <p>Return whether this is a nested serializer.</p>
10505
10928
  </div>
10506
10929
 
10507
10930
  </div>
@@ -10519,7 +10942,7 @@
10519
10942
 
10520
10943
  <div class="doc doc-contents ">
10521
10944
 
10522
- <p>Instantiate a BaseModelSerializer.</p>
10945
+ <p>Instantiate a BaseModelSerializer.</p>
10523
10946
  <p>The force_csv kwarg allows you to force _is_csv_request() to evaluate True without passing a Request object,
10524
10947
  which is necessary to be able to export appropriately structured CSV from a Job that doesn't have a Request.</p>
10525
10948
 
@@ -10538,7 +10961,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10538
10961
 
10539
10962
  <div class="doc doc-contents ">
10540
10963
 
10541
- <p>Return a two tuple of (cls, kwargs) to build a serializer field with.</p>
10964
+ <p>Return a two tuple of (cls, kwargs) to build a serializer field with.</p>
10542
10965
 
10543
10966
  </div>
10544
10967
 
@@ -10555,7 +10978,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10555
10978
 
10556
10979
  <div class="doc doc-contents ">
10557
10980
 
10558
- <p>Create a property field for model methods and properties.</p>
10981
+ <p>Create a property field for model methods and properties.</p>
10559
10982
 
10560
10983
  </div>
10561
10984
 
@@ -10572,7 +10995,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10572
10995
 
10573
10996
  <div class="doc doc-contents ">
10574
10997
 
10575
- <p>Override DRF's default relational-field construction to be app-aware.</p>
10998
+ <p>Override DRF's default relational-field construction to be app-aware.</p>
10576
10999
 
10577
11000
  </div>
10578
11001
 
@@ -10589,24 +11012,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10589
11012
 
10590
11013
  <div class="doc doc-contents ">
10591
11014
 
10592
- <p>Override DRF's default 'url' field construction to be app-aware.</p>
10593
-
10594
- </div>
10595
-
10596
- </div>
10597
-
10598
- <div class="doc doc-object doc-function">
10599
-
10600
-
10601
- <h3 id="nautobot.apps.api.BaseModelSerializer.determine_view_options" class="doc doc-heading">
10602
- <code class="highlight language-python"><span class="n">determine_view_options</span><span class="p">(</span><span class="n">request</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
10603
-
10604
- <a href="#nautobot.apps.api.BaseModelSerializer.determine_view_options" class="headerlink" title="Permanent link">&para;</a></h3>
10605
-
10606
-
10607
- <div class="doc doc-contents ">
10608
-
10609
- <p>Determine view options to use for rendering the list and detail views associated with this serializer.</p>
11015
+ <p>Override DRF's default 'url' field construction to be app-aware.</p>
10610
11016
 
10611
11017
  </div>
10612
11018
 
@@ -10623,49 +11029,7 @@ which is necessary to be able to export appropriately structured CSV from a Job
10623
11029
 
10624
11030
  <div class="doc doc-contents ">
10625
11031
 
10626
- <p>Prepend or append the given field_name to <code>fields</code> and optionally self.Meta.opt_in_fields as well.</p>
10627
-
10628
- </div>
10629
-
10630
- </div>
10631
-
10632
- <div class="doc doc-object doc-function">
10633
-
10634
-
10635
- <h3 id="nautobot.apps.api.BaseModelSerializer.get_additional_detail_view_tabs" class="doc doc-heading">
10636
- <code class="highlight language-python"><span class="n">get_additional_detail_view_tabs</span><span class="p">()</span></code>
10637
-
10638
- <a href="#nautobot.apps.api.BaseModelSerializer.get_additional_detail_view_tabs" class="headerlink" title="Permanent link">&para;</a></h3>
10639
-
10640
-
10641
- <div class="doc doc-contents ">
10642
-
10643
- <p>Retrieve definitions of non-default detail view tabs.</p>
10644
- <p>By default provides an "Advanced" tab containing <code>self.advanced_tab_fields</code>, but subclasses
10645
- can override this to move additional serializer fields to this or other tabs.</p>
10646
-
10647
-
10648
- <p><span class="doc-section-title">Returns:</span></p>
10649
- <table>
10650
- <thead>
10651
- <tr>
10652
- <th>Type</th>
10653
- <th>Description</th>
10654
- </tr>
10655
- </thead>
10656
- <tbody>
10657
- <tr class="doc-section-item">
10658
- <td>
10659
- <code><autoref identifier="dict" optional>dict</autoref></code>
10660
- </td>
10661
- <td>
10662
- <div class="doc-md-description">
10663
- <p><code>{&lt;tab label&gt;: [{&lt;panel label&gt;: {"fields": [&lt;list of fields&gt;]}, ...}, ...], ...}</code></p>
10664
- </div>
10665
- </td>
10666
- </tr>
10667
- </tbody>
10668
- </table>
11032
+ <p>Prepend or append the given field_name to <code>fields</code> and optionally self.Meta.opt_in_fields as well.</p>
10669
11033
 
10670
11034
  </div>
10671
11035
 
@@ -10682,7 +11046,7 @@ can override this to move additional serializer fields to this or other tabs.</p
10682
11046
 
10683
11047
  <div class="doc doc-contents ">
10684
11048
 
10685
- <p>Return either the <code>display</code> property of the instance or <code>str(instance)</code></p>
11049
+ <p>Return either the <code>display</code> property of the instance or <code>str(instance)</code></p>
10686
11050
 
10687
11051
  </div>
10688
11052
 
@@ -10699,7 +11063,7 @@ can override this to move additional serializer fields to this or other tabs.</p
10699
11063
 
10700
11064
  <div class="doc doc-contents ">
10701
11065
 
10702
- <p>Override get_field_names() to add some custom logic.</p>
11066
+ <p>Override get_field_names() to add some custom logic.</p>
10703
11067
  <p>Assuming that we follow the pattern where <code>fields = "__all__" for the vast majority of serializers in Nautobot,
10704
11068
  we do not strictly need to use this method to protect against inadvertently omitting standard fields
10705
11069
  like</code>display<code>,</code>created<code>, and</code>last_updated`. However, we continue to do as a bit of redundant safety.</p>
@@ -10732,7 +11096,7 @@ way of <em>excluding</em> fields that we <em>don't</em> want to include by defau
10732
11096
  <div class="doc doc-contents ">
10733
11097
 
10734
11098
 
10735
- <p>Support bulk deletion of objects using the list endpoint for a model. Accepts a DELETE action with a list of one
11099
+ <p>Support bulk deletion of objects using the list endpoint for a model. Accepts a DELETE action with a list of one
10736
11100
  or more JSON objects, each specifying the UUID of an object to be deleted. For example:</p>
10737
11101
  <p>DELETE /api/dcim/locations/
10738
11102
  [
@@ -10743,6 +11107,11 @@ or more JSON objects, each specifying the UUID of an object to be deleted. For e
10743
11107
 
10744
11108
 
10745
11109
 
11110
+
11111
+
11112
+
11113
+
11114
+
10746
11115
  <div class="doc doc-children">
10747
11116
 
10748
11117
 
@@ -10775,7 +11144,7 @@ or more JSON objects, each specifying the UUID of an object to be deleted. For e
10775
11144
  <div class="doc doc-contents ">
10776
11145
 
10777
11146
 
10778
- <p>Support bulk modification of objects using the list endpoint for a model. Accepts a PATCH action with a list of one
11147
+ <p>Support bulk modification of objects using the list endpoint for a model. Accepts a PATCH action with a list of one
10779
11148
  or more JSON objects, each specifying the UUID of an object to be updated as well as the attributes to be set.
10780
11149
  For example:</p>
10781
11150
  <p>PATCH /api/dcim/locations/
@@ -10793,6 +11162,11 @@ For example:</p>
10793
11162
 
10794
11163
 
10795
11164
 
11165
+
11166
+
11167
+
11168
+
11169
+
10796
11170
  <div class="doc doc-children">
10797
11171
 
10798
11172
 
@@ -10824,16 +11198,21 @@ For example:</p>
10824
11198
 
10825
11199
  <div class="doc doc-contents ">
10826
11200
  <p class="doc doc-class-bases">
10827
- Bases: <code><autoref identifier="rest_framework.serializers.Field" optional hover>Field</autoref></code></p>
11201
+ Bases: <code><span title="rest_framework.serializers.Field">Field</span></code></p>
10828
11202
 
10829
11203
 
10830
- <p>Represent a ChoiceField as {'value': <DB value>, 'label': <string>}. Accepts a single value on write.</p>
11204
+ <p>Represent a ChoiceField as {'value': <DB value>, 'label': <string>}. Accepts a single value on write.</p>
10831
11205
  <p>:param choices: An iterable of choices in the form (value, key).
10832
11206
  :param allow_blank: Allow blank values in addition to the listed choices.</p>
10833
11207
 
10834
11208
 
10835
11209
 
10836
11210
 
11211
+
11212
+
11213
+
11214
+
11215
+
10837
11216
  <div class="doc doc-children">
10838
11217
 
10839
11218
 
@@ -10865,10 +11244,15 @@ For example:</p>
10865
11244
 
10866
11245
  <div class="doc doc-contents ">
10867
11246
  <p class="doc doc-class-bases">
10868
- Bases: <code><autoref identifier="rest_framework.relations.RelatedField" optional hover>RelatedField</autoref></code></p>
11247
+ Bases: <code><span title="rest_framework.relations.RelatedField">RelatedField</span></code></p>
11248
+
11249
+
11250
+ <p>Represent a ContentType as '<app_label>.<model>'</p>
11251
+
11252
+
11253
+
10869
11254
 
10870
11255
 
10871
- <p>Represent a ContentType as '<app_label>.<model>'</p>
10872
11256
 
10873
11257
 
10874
11258
 
@@ -10904,10 +11288,15 @@ For example:</p>
10904
11288
 
10905
11289
  <div class="doc doc-contents ">
10906
11290
  <p class="doc doc-class-bases">
10907
- Bases: <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
11291
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
11292
+
11293
+
11294
+ <p>Extends ModelSerializer to render any CustomFields and their values associated with an object.</p>
11295
+
11296
+
11297
+
10908
11298
 
10909
11299
 
10910
- <p>Extends ModelSerializer to render any CustomFields and their values associated with an object.</p>
10911
11300
 
10912
11301
 
10913
11302
 
@@ -10933,7 +11322,7 @@ For example:</p>
10933
11322
 
10934
11323
  <div class="doc doc-contents ">
10935
11324
 
10936
- <p>Ensure that "custom_fields" and "computed_fields" are included appropriately.</p>
11325
+ <p>Ensure that "custom_fields" and "computed_fields" are included appropriately.</p>
10937
11326
 
10938
11327
  </div>
10939
11328
 
@@ -10960,50 +11349,15 @@ For example:</p>
10960
11349
 
10961
11350
  <div class="doc doc-contents ">
10962
11351
  <p class="doc doc-class-bases">
10963
- Bases: <code><autoref identifier="nautobot.core.api.views.ModelViewSet" optional hover>ModelViewSet</autoref></code></p>
10964
-
10965
-
10966
- <p>Include the applicable set of CustomFields in the ModelViewSet context.</p>
10967
-
10968
-
10969
-
10970
-
10971
- <div class="doc doc-children">
10972
-
10973
-
10974
-
10975
-
10976
-
10977
-
10978
-
10979
-
10980
-
10981
-
10982
-
10983
- </div>
10984
-
10985
- </div>
10986
-
10987
- </div>
10988
-
10989
- <div class="doc doc-object doc-class">
10990
-
11352
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.ModelViewSet" href="#nautobot.apps.api.ModelViewSet">ModelViewSet</a></code></p>
10991
11353
 
10992
11354
 
10993
- <h2 id="nautobot.apps.api.GetObjectCountsView" class="doc doc-heading">
10994
- <code>nautobot.apps.api.GetObjectCountsView</code>
11355
+ <p>Include the applicable set of CustomFields in the ModelViewSet context.</p>
10995
11356
 
10996
11357
 
10997
- <a href="#nautobot.apps.api.GetObjectCountsView" class="headerlink" title="Permanent link">&para;</a></h2>
10998
11358
 
10999
11359
 
11000
- <div class="doc doc-contents ">
11001
- <p class="doc doc-class-bases">
11002
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="rest_framework.views.APIView" optional hover>APIView</autoref></code></p>
11003
-
11004
11360
 
11005
- <p>Enumerate the models listed on the Nautobot home page and return data structure
11006
- containing verbose_name_plural, url and count.</p>
11007
11361
 
11008
11362
 
11009
11363
 
@@ -11039,10 +11393,15 @@ containing verbose_name_plural, url and count.</p>
11039
11393
 
11040
11394
  <div class="doc doc-contents ">
11041
11395
  <p class="doc doc-class-bases">
11042
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkUpdateModelMixin" optional hover>BulkUpdateModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkDestroyModelMixin" optional hover>BulkDestroyModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.ModelViewSetMixin" optional hover>ModelViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.viewsets.ModelViewSet" optional hover>ModelViewSet</autoref></code></p>
11396
+ 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>
11397
+
11398
+
11399
+ <p>Extend DRF's ModelViewSet to support bulk update and delete functions.</p>
11400
+
11401
+
11402
+
11043
11403
 
11044
11404
 
11045
- <p>Extend DRF's ModelViewSet to support bulk update and delete functions.</p>
11046
11405
 
11047
11406
 
11048
11407
 
@@ -11082,6 +11441,11 @@ containing verbose_name_plural, url and count.</p>
11082
11441
 
11083
11442
 
11084
11443
 
11444
+
11445
+
11446
+
11447
+
11448
+
11085
11449
  <div class="doc doc-children">
11086
11450
 
11087
11451
 
@@ -11103,7 +11467,25 @@ containing verbose_name_plural, url and count.</p>
11103
11467
 
11104
11468
  <div class="doc doc-contents ">
11105
11469
 
11106
- <p>Extend rest_framework.generics.GenericAPIView.get_object to allow "pk" lookups to use a composite-key.</p>
11470
+ <p>Extend rest_framework.generics.GenericAPIView.get_object to allow "pk" lookups to use a composite-key.</p>
11471
+
11472
+ </div>
11473
+
11474
+ </div>
11475
+
11476
+ <div class="doc doc-object doc-function">
11477
+
11478
+
11479
+ <h3 id="nautobot.apps.api.ModelViewSetMixin.get_queryset" class="doc doc-heading">
11480
+ <code class="highlight language-python"><span class="n">get_queryset</span><span class="p">()</span></code>
11481
+
11482
+ <a href="#nautobot.apps.api.ModelViewSetMixin.get_queryset" class="headerlink" title="Permanent link">&para;</a></h3>
11483
+
11484
+
11485
+ <div class="doc doc-contents ">
11486
+
11487
+ <p>Attempt to optimize the queryset based on the fields present in the associated serializer.</p>
11488
+ <p>See similar logic in nautobot.core.tables.BaseTable.</p>
11107
11489
 
11108
11490
  </div>
11109
11491
 
@@ -11120,7 +11502,7 @@ containing verbose_name_plural, url and count.</p>
11120
11502
 
11121
11503
  <div class="doc doc-contents ">
11122
11504
 
11123
- <p>Runs anything that needs to occur prior to calling the method handler.</p>
11505
+ <p>Runs anything that needs to occur prior to calling the method handler.</p>
11124
11506
  <p>Override of internal Django Rest Framework API.</p>
11125
11507
 
11126
11508
  </div>
@@ -11138,7 +11520,7 @@ containing verbose_name_plural, url and count.</p>
11138
11520
 
11139
11521
  <div class="doc doc-contents ">
11140
11522
 
11141
- <p>Restrict the view's queryset to allow only the permitted objects for the given request.</p>
11523
+ <p>Restrict the view's queryset to allow only the permitted objects for the given request.</p>
11142
11524
  <p>Subclasses (such as nautobot.extras.api.views.JobModelViewSet) may wish to override this.</p>
11143
11525
  <p>Called by initial(), below.</p>
11144
11526
 
@@ -11167,10 +11549,15 @@ containing verbose_name_plural, url and count.</p>
11167
11549
 
11168
11550
  <div class="doc doc-contents ">
11169
11551
  <p class="doc doc-class-bases">
11170
- Bases: <code><autoref identifier="rest_framework.serializers.MultipleChoiceField" optional hover>MultipleChoiceField</autoref></code></p>
11552
+ Bases: <code><span title="rest_framework.serializers.MultipleChoiceField">MultipleChoiceField</span></code></p>
11553
+
11554
+
11555
+ <p>A MultipleChoiceField that renders the received value as a JSON-compatible list rather than a set.</p>
11556
+
11557
+
11558
+
11171
11559
 
11172
11560
 
11173
- <p>A MultipleChoiceField that renders the received value as a JSON-compatible list rather than a set.</p>
11174
11561
 
11175
11562
 
11176
11563
 
@@ -11196,7 +11583,7 @@ containing verbose_name_plural, url and count.</p>
11196
11583
 
11197
11584
  <div class="doc doc-contents ">
11198
11585
 
11199
- <p>Overload default choices handling to also accept a callable.</p>
11586
+ <p>Overload default choices handling to also accept a callable.</p>
11200
11587
 
11201
11588
  </div>
11202
11589
 
@@ -11223,10 +11610,15 @@ containing verbose_name_plural, url and count.</p>
11223
11610
 
11224
11611
  <div class="doc doc-contents ">
11225
11612
  <p class="doc doc-class-bases">
11226
- Bases: <code><autoref identifier="drf_spectacular.openapi.AutoSchema" optional hover>AutoSchema</autoref></code></p>
11613
+ Bases: <code><span title="drf_spectacular.openapi.AutoSchema">AutoSchema</span></code></p>
11614
+
11615
+
11616
+ <p>Nautobot-specific extensions to drf-spectacular's AutoSchema.</p>
11617
+
11618
+
11619
+
11227
11620
 
11228
11621
 
11229
- <p>Nautobot-specific extensions to drf-spectacular's AutoSchema.</p>
11230
11622
 
11231
11623
 
11232
11624
 
@@ -11255,7 +11647,7 @@ containing verbose_name_plural, url and count.</p>
11255
11647
 
11256
11648
  <div class="doc doc-contents ">
11257
11649
 
11258
- <p>Custom property for convenience.</p>
11650
+ <p>Custom property for convenience.</p>
11259
11651
  </div>
11260
11652
 
11261
11653
  </div>
@@ -11276,7 +11668,7 @@ containing verbose_name_plural, url and count.</p>
11276
11668
 
11277
11669
  <div class="doc doc-contents ">
11278
11670
 
11279
- <p>Custom property for convenience.</p>
11671
+ <p>Custom property for convenience.</p>
11280
11672
  </div>
11281
11673
 
11282
11674
  </div>
@@ -11294,7 +11686,7 @@ containing verbose_name_plural, url and count.</p>
11294
11686
 
11295
11687
  <div class="doc doc-contents ">
11296
11688
 
11297
- <p>Get the appropriate description for a given API endpoint.</p>
11689
+ <p>Get the appropriate description for a given API endpoint.</p>
11298
11690
  <p>By default, if a specific action doesn't have its own docstring, and neither does the view class,
11299
11691
  drf-spectacular will walk up the MRO of the view class until it finds a docstring, and use that.
11300
11692
  Most of our viewsets (for better or for worse) do not have docstrings, and so it'll find and use the generic
@@ -11317,7 +11709,7 @@ make an attempt at rendering a basically accurate default description.</p>
11317
11709
 
11318
11710
  <div class="doc doc-contents ">
11319
11711
 
11320
- <p>Nautobot's custom bulk operations, even though they return a list of records, are NOT filterable.</p>
11712
+ <p>Nautobot's custom bulk operations, even though they return a list of records, are NOT filterable.</p>
11321
11713
 
11322
11714
  </div>
11323
11715
 
@@ -11334,7 +11726,7 @@ make an attempt at rendering a basically accurate default description.</p>
11334
11726
 
11335
11727
  <div class="doc doc-contents ">
11336
11728
 
11337
- <p>Extend the base method to handle Nautobot's REST API bulk operations.</p>
11729
+ <p>Extend the base method to handle Nautobot's REST API bulk operations.</p>
11338
11730
  <p>Without this extension, every one of our ModelViewSet classes will result in drf-spectacular complaining
11339
11731
  about operationId collisions, e.g. between DELETE /api/dcim/devices/ and DELETE /api/dcim/devices/<pk>/ would
11340
11732
  both get resolved to the same "dcim_devices_destroy" operation-id and this would make drf-spectacular complain.</p>
@@ -11355,7 +11747,7 @@ both get resolved to the same "dcim_devices_destroy" operation-id and this would
11355
11747
 
11356
11748
  <div class="doc doc-contents ">
11357
11749
 
11358
- <p>Return the request serializer (used for describing/parsing the request payload) for this endpoint.</p>
11750
+ <p>Return the request serializer (used for describing/parsing the request payload) for this endpoint.</p>
11359
11751
  <p>We override the default drf-spectacular behavior for the case where the endpoint describes a write request
11360
11752
  with required data (PATCH, POST, PUT). In those cases we replace FooSerializer with a dynamically-defined
11361
11753
  WritableFooSerializer class in order to more accurately represent the available options on write.</p>
@@ -11377,7 +11769,7 @@ require a list of serializers as input, rather than a single one.</p>
11377
11769
 
11378
11770
  <div class="doc doc-contents ">
11379
11771
 
11380
- <p>Return the response serializer (used for describing the response payload) for this endpoint.</p>
11772
+ <p>Return the response serializer (used for describing the response payload) for this endpoint.</p>
11381
11773
  <p>We override the default drf-spectacular behavior for the case where the endpoint describes a write request
11382
11774
  to a bulk endpoint, which returns a list of serializers, rather than a single one.</p>
11383
11775
 
@@ -11396,7 +11788,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11396
11788
 
11397
11789
  <div class="doc doc-contents ">
11398
11790
 
11399
- <p>Get the serializer's ref_name Meta attribute if set, or else derive a ref_name automatically.</p>
11791
+ <p>Get the serializer's ref_name Meta attribute if set, or else derive a ref_name automatically.</p>
11400
11792
  <p>Based on drf_yasg.utils.get_serializer_ref_name().</p>
11401
11793
 
11402
11794
  </div>
@@ -11414,7 +11806,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11414
11806
 
11415
11807
  <div class="doc doc-contents ">
11416
11808
 
11417
- <p>Given a FooSerializer instance, look up or construct a [Bulk]WritableFooSerializer class if necessary.</p>
11809
+ <p>Given a FooSerializer instance, look up or construct a [Bulk]WritableFooSerializer class if necessary.</p>
11418
11810
  <p>If no [Bulk]WritableFooSerializer class is needed, returns None instead.</p>
11419
11811
 
11420
11812
  </div>
@@ -11432,7 +11824,7 @@ to a bulk endpoint, which returns a list of serializers, rather than a single on
11432
11824
 
11433
11825
  <div class="doc doc-contents ">
11434
11826
 
11435
- <p>Re-add required <code>id</code> field on bulk_partial_update action.</p>
11827
+ <p>Re-add required <code>id</code> field on bulk_partial_update action.</p>
11436
11828
  <p>drf-spectacular clears the <code>required</code> list for any partial serializers in its <code>_map_basic_serializer()</code>,
11437
11829
  but Nautobot bulk partial updates require the <code>id</code> field to be specified for each object to update.</p>
11438
11830
 
@@ -11461,10 +11853,15 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
11461
11853
 
11462
11854
  <div class="doc doc-contents ">
11463
11855
  <p class="doc doc-class-bases">
11464
- Bases: <code><autoref identifier="rest_framework.parsers.BaseParser" optional hover>BaseParser</autoref></code></p>
11856
+ Bases: <code><span title="rest_framework.parsers.BaseParser">BaseParser</span></code></p>
11857
+
11858
+
11859
+ <p>Counterpart to NautobotCSVRenderer - import CSV data.</p>
11860
+
11861
+
11862
+
11465
11863
 
11466
11864
 
11467
- <p>Counterpart to NautobotCSVRenderer - import CSV data.</p>
11468
11865
 
11469
11866
 
11470
11867
 
@@ -11490,7 +11887,7 @@ but Nautobot bulk partial updates require the <code>id</code> field to be specif
11490
11887
 
11491
11888
  <div class="doc doc-contents ">
11492
11889
 
11493
- <p>Parse a single row of CSV data (represented as a dict) into a dict suitable for consumption by the serializer.</p>
11890
+ <p>Parse a single row of CSV data (represented as a dict) into a dict suitable for consumption by the serializer.</p>
11494
11891
  <p>TODO: it would be more elegant if our serializer fields knew how to deserialize the CSV data themselves;
11495
11892
  could we then literally have the parser just return list(reader) and not need this function at all?</p>
11496
11893
 
@@ -11519,10 +11916,15 @@ could we then literally have the parser just return list(reader) and not need th
11519
11916
 
11520
11917
  <div class="doc doc-contents ">
11521
11918
  <p class="doc doc-class-bases">
11522
- Bases: <code><autoref identifier="nautobot.core.api.mixins.WritableSerializerMixin" optional hover>WritableSerializerMixin</autoref></code>, <code><autoref identifier="rest_framework.serializers.HyperlinkedRelatedField" optional hover>HyperlinkedRelatedField</autoref></code></p>
11919
+ 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>
11920
+
11921
+
11922
+ <p>Extend HyperlinkedRelatedField to include URL namespace-awareness, add 'object_type' field, and read composite-keys.</p>
11923
+
11924
+
11925
+
11523
11926
 
11524
11927
 
11525
- <p>Extend HyperlinkedRelatedField to include URL namespace-awareness, add 'object_type' field, and read composite-keys.</p>
11526
11928
 
11527
11929
 
11528
11930
 
@@ -11548,7 +11950,7 @@ could we then literally have the parser just return list(reader) and not need th
11548
11950
 
11549
11951
  <div class="doc doc-contents ">
11550
11952
 
11551
- <p>Override DRF's namespace-unaware default view_name logic for HyperlinkedRelatedField.</p>
11953
+ <p>Override DRF's namespace-unaware default view_name logic for HyperlinkedRelatedField.</p>
11552
11954
  <p>DRF defaults to '{model_name}-detail' instead of '{app_label}:{model_name}-detail'.</p>
11553
11955
 
11554
11956
  </div>
@@ -11566,7 +11968,7 @@ could we then literally have the parser just return list(reader) and not need th
11566
11968
 
11567
11969
  <div class="doc doc-contents ">
11568
11970
 
11569
- <p>Convert potentially nested representation to a model instance.</p>
11971
+ <p>Convert potentially nested representation to a model instance.</p>
11570
11972
 
11571
11973
  </div>
11572
11974
 
@@ -11583,7 +11985,7 @@ could we then literally have the parser just return list(reader) and not need th
11583
11985
 
11584
11986
  <div class="doc doc-contents ">
11585
11987
 
11586
- <p>Convert URL representation to a brief nested representation.</p>
11988
+ <p>Convert URL representation to a brief nested representation.</p>
11587
11989
 
11588
11990
  </div>
11589
11991
 
@@ -11610,15 +12012,20 @@ could we then literally have the parser just return list(reader) and not need th
11610
12012
 
11611
12013
  <div class="doc doc-contents ">
11612
12014
  <p class="doc doc-class-bases">
11613
- Bases: <code><autoref identifier="nautobot.core.api.serializers.RelationshipModelSerializerMixin" optional hover>RelationshipModelSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.CustomFieldModelSerializerMixin" optional hover>CustomFieldModelSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.NotesSerializerMixin" optional hover>NotesSerializerMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
12015
+ 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>
11614
12016
 
11615
12017
 
11616
- <p>Base class to use for serializers based on OrganizationalModel or PrimaryModel.</p>
12018
+ <p>Base class to use for serializers based on OrganizationalModel or PrimaryModel.</p>
11617
12019
  <p>Can also be used for models derived from BaseModel, so long as they support custom fields, notes, and relationships.</p>
11618
12020
 
11619
12021
 
11620
12022
 
11621
12023
 
12024
+
12025
+
12026
+
12027
+
12028
+
11622
12029
  <div class="doc doc-children">
11623
12030
 
11624
12031
 
@@ -11650,15 +12057,20 @@ could we then literally have the parser just return list(reader) and not need th
11650
12057
 
11651
12058
  <div class="doc doc-contents ">
11652
12059
  <p class="doc doc-class-bases">
11653
- Bases: <code><autoref identifier="nautobot.extras.api.views.NotesViewSetMixin" optional hover>NotesViewSetMixin</autoref></code>, <code><autoref identifier="nautobot.extras.api.views.CustomFieldModelViewSet" optional hover>CustomFieldModelViewSet</autoref></code></p>
12060
+ 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>
11654
12061
 
11655
12062
 
11656
- <p>Base class to use for API ViewSets based on OrganizationalModel or PrimaryModel.</p>
12063
+ <p>Base class to use for API ViewSets based on OrganizationalModel or PrimaryModel.</p>
11657
12064
  <p>Can also be used for models derived from BaseModel, so long as they support Notes.</p>
11658
12065
 
11659
12066
 
11660
12067
 
11661
12068
 
12069
+
12070
+
12071
+
12072
+
12073
+
11662
12074
  <div class="doc doc-children">
11663
12075
 
11664
12076
 
@@ -11690,10 +12102,15 @@ could we then literally have the parser just return list(reader) and not need th
11690
12102
 
11691
12103
  <div class="doc doc-contents ">
11692
12104
  <p class="doc doc-class-bases">
11693
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12105
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12106
+
12107
+
12108
+ <p>Extend Serializer with a <code>notes</code> field.</p>
12109
+
12110
+
12111
+
11694
12112
 
11695
12113
 
11696
- <p>Extend Serializer with a <code>notes</code> field.</p>
11697
12114
 
11698
12115
 
11699
12116
 
@@ -11719,7 +12136,7 @@ could we then literally have the parser just return list(reader) and not need th
11719
12136
 
11720
12137
  <div class="doc doc-contents ">
11721
12138
 
11722
- <p>Ensure that fields includes "notes_url" field if applicable.</p>
12139
+ <p>Ensure that fields includes "notes_url" field if applicable.</p>
11723
12140
 
11724
12141
  </div>
11725
12142
 
@@ -11750,6 +12167,11 @@ could we then literally have the parser just return list(reader) and not need th
11750
12167
 
11751
12168
 
11752
12169
 
12170
+
12171
+
12172
+
12173
+
12174
+
11753
12175
  <div class="doc doc-children">
11754
12176
 
11755
12177
 
@@ -11772,10 +12194,15 @@ could we then literally have the parser just return list(reader) and not need th
11772
12194
 
11773
12195
  <div class="doc doc-contents ">
11774
12196
  <p class="doc doc-class-bases">
11775
- Bases: <code><autoref identifier="nautobot.core.api.authentication.TokenPermissions" optional hover>TokenPermissions</autoref></code></p>
12197
+ Bases: <code><span title="nautobot.core.api.authentication.TokenPermissions">TokenPermissions</span></code></p>
12198
+
12199
+
12200
+ <p>As nautobot.core.api.authentication.TokenPermissions, but enforcing add_note permission.</p>
12201
+
12202
+
12203
+
11776
12204
 
11777
12205
 
11778
- <p>As nautobot.core.api.authentication.TokenPermissions, but enforcing add_note permission.</p>
11779
12206
 
11780
12207
 
11781
12208
 
@@ -11810,7 +12237,7 @@ could we then literally have the parser just return list(reader) and not need th
11810
12237
 
11811
12238
  <div class="doc doc-contents ">
11812
12239
 
11813
- <p>API methods for returning or creating notes on an object.</p>
12240
+ <p>API methods for returning or creating notes on an object.</p>
11814
12241
 
11815
12242
  </div>
11816
12243
 
@@ -11827,7 +12254,7 @@ could we then literally have the parser just return list(reader) and not need th
11827
12254
 
11828
12255
  <div class="doc doc-contents ">
11829
12256
 
11830
- <p>Apply "view" permissions on the POST /notes/ endpoint, otherwise as ModelViewSetMixin.</p>
12257
+ <p>Apply "view" permissions on the POST /notes/ endpoint, otherwise as ModelViewSetMixin.</p>
11831
12258
 
11832
12259
  </div>
11833
12260
 
@@ -11854,10 +12281,15 @@ could we then literally have the parser just return list(reader) and not need th
11854
12281
 
11855
12282
  <div class="doc doc-contents ">
11856
12283
  <p class="doc doc-class-bases">
11857
- Bases: <code><autoref identifier="rest_framework.serializers.CharField" optional hover>CharField</autoref></code></p>
12284
+ Bases: <code><span title="rest_framework.serializers.CharField">CharField</span></code></p>
12285
+
12286
+
12287
+ <p>Represent the ContentType of this serializer's model as "<app_label>.<model>".</p>
12288
+
12289
+
12290
+
11858
12291
 
11859
12292
 
11860
- <p>Represent the ContentType of this serializer's model as "<app_label>.<model>".</p>
11861
12293
 
11862
12294
 
11863
12295
 
@@ -11883,7 +12315,7 @@ could we then literally have the parser just return list(reader) and not need th
11883
12315
 
11884
12316
  <div class="doc doc-contents ">
11885
12317
 
11886
- <p>Default read_only to True as this should never be a writable field.</p>
12318
+ <p>Default read_only to True as this should never be a writable field.</p>
11887
12319
 
11888
12320
  </div>
11889
12321
 
@@ -11900,7 +12332,7 @@ could we then literally have the parser just return list(reader) and not need th
11900
12332
 
11901
12333
  <div class="doc doc-contents ">
11902
12334
 
11903
- <p>Get the content-type of this serializer's model.</p>
12335
+ <p>Get the content-type of this serializer's model.</p>
11904
12336
  <p>Implemented this way because <code>_value</code> may be None when generating the schema.</p>
11905
12337
 
11906
12338
  </div>
@@ -11929,8 +12361,13 @@ could we then literally have the parser just return list(reader) and not need th
11929
12361
  <div class="doc doc-contents ">
11930
12362
 
11931
12363
 
11932
- <p>A serializer mixin that takes an additional <code>opt_in_fields</code> argument that controls
11933
- which fields should be displayed.</p>
12364
+ <p>Serializer mixin that adjusts its fields based on the <code>include</code> and <code>exclude_m2m</code> query parameters in a request.</p>
12365
+ <p>The serializer's <code>Meta.opt_in_fields</code> controls which fields are influenced by <code>include</code>.</p>
12366
+
12367
+
12368
+
12369
+
12370
+
11934
12371
 
11935
12372
 
11936
12373
 
@@ -11959,8 +12396,12 @@ which fields should be displayed.</p>
11959
12396
 
11960
12397
  <div class="doc doc-contents ">
11961
12398
 
11962
- <p>Removes all serializer fields specified in a serializers <code>opt_in_fields</code> list that aren't specified in the
11963
- <code>include</code> query parameter.</p>
12399
+ <p>Dynamically adjust the dictionary of fields attributed to this serializer instance.</p>
12400
+ <ul>
12401
+ <li>Removes all serializer fields specified in <code>Meta.opt_in_fields</code> list that aren't specified in the
12402
+ <code>include</code> query parameter. (applies to GET requests only)</li>
12403
+ <li>If the <code>exclude_m2m</code> query parameter is truthy, remove all many-to-many serializer fields for performance.</li>
12404
+ </ul>
11964
12405
  <p>As an example, if the serializer specifies that <code>opt_in_fields = ["computed_fields"]</code>
11965
12406
  but <code>computed_fields</code> is not specified in the <code>?include</code> query parameter, <code>computed_fields</code> will be popped
11966
12407
  from the list of fields.</p>
@@ -11991,7 +12432,12 @@ from the list of fields.</p>
11991
12432
 
11992
12433
  <div class="doc doc-contents ">
11993
12434
  <p class="doc doc-class-bases">
11994
- Bases: <code><autoref identifier="rest_framework.routers.DefaultRouter" optional hover>DefaultRouter</autoref></code></p>
12435
+ Bases: <code><span title="rest_framework.routers.DefaultRouter">DefaultRouter</span></code></p>
12436
+
12437
+
12438
+
12439
+
12440
+
11995
12441
 
11996
12442
 
11997
12443
 
@@ -12018,7 +12464,7 @@ from the list of fields.</p>
12018
12464
 
12019
12465
  <div class="doc doc-contents ">
12020
12466
 
12021
- <p>Wrap DRF's DefaultRouter to return an alphabetized list of endpoints.</p>
12467
+ <p>Wrap DRF's DefaultRouter to return an alphabetized list of endpoints.</p>
12022
12468
 
12023
12469
  </div>
12024
12470
 
@@ -12035,7 +12481,7 @@ from the list of fields.</p>
12035
12481
 
12036
12482
  <div class="doc doc-contents ">
12037
12483
 
12038
- <p>Override DRF's BaseRouter.register() to bypass an unnecessary restriction added in version 3.15.0.</p>
12484
+ <p>Override DRF's BaseRouter.register() to bypass an unnecessary restriction added in version 3.15.0.</p>
12039
12485
  <p>(Reference: https://github.com/encode/django-rest-framework/pull/8438)</p>
12040
12486
 
12041
12487
  </div>
@@ -12063,10 +12509,15 @@ from the list of fields.</p>
12063
12509
 
12064
12510
  <div class="doc doc-contents ">
12065
12511
  <p class="doc doc-class-bases">
12066
- Bases: <code><autoref identifier="nautobot.core.api.views.NautobotAPIVersionMixin" optional hover>NautobotAPIVersionMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.ModelViewSetMixin" optional hover>ModelViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.viewsets.ReadOnlyModelViewSet" optional hover>ReadOnlyModelViewSet</autoref></code></p>
12512
+ 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>
12513
+
12514
+
12515
+ <p>Extend DRF's ReadOnlyModelViewSet to support queryset restriction.</p>
12516
+
12517
+
12518
+
12067
12519
 
12068
12520
 
12069
- <p>Extend DRF's ReadOnlyModelViewSet to support queryset restriction.</p>
12070
12521
 
12071
12522
 
12072
12523
 
@@ -12102,10 +12553,15 @@ from the list of fields.</p>
12102
12553
 
12103
12554
  <div class="doc doc-contents ">
12104
12555
  <p class="doc doc-class-bases">
12105
- Bases: <code><autoref identifier="nautobot.core.api.serializers.ValidatedModelSerializer" optional hover>ValidatedModelSerializer</autoref></code></p>
12556
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.ValidatedModelSerializer" href="#nautobot.apps.api.ValidatedModelSerializer">ValidatedModelSerializer</a></code></p>
12557
+
12558
+
12559
+ <p>Extend ValidatedModelSerializer with a <code>relationships</code> field.</p>
12560
+
12561
+
12562
+
12106
12563
 
12107
12564
 
12108
- <p>Extend ValidatedModelSerializer with a <code>relationships</code> field.</p>
12109
12565
 
12110
12566
 
12111
12567
 
@@ -12131,7 +12587,7 @@ from the list of fields.</p>
12131
12587
 
12132
12588
  <div class="doc doc-contents ">
12133
12589
 
12134
- <p>Ensure that "relationships" is included as an opt-in field on root serializers.</p>
12590
+ <p>Ensure that "relationships" is included as an opt-in field on root serializers.</p>
12135
12591
 
12136
12592
  </div>
12137
12593
 
@@ -12158,15 +12614,20 @@ from the list of fields.</p>
12158
12614
 
12159
12615
  <div class="doc doc-contents ">
12160
12616
  <p class="doc doc-class-bases">
12161
- Bases: <code><autoref identifier="rest_framework.relations.PrimaryKeyRelatedField" optional hover>PrimaryKeyRelatedField</autoref></code></p>
12617
+ Bases: <code><span title="rest_framework.relations.PrimaryKeyRelatedField">PrimaryKeyRelatedField</span></code></p>
12162
12618
 
12163
12619
 
12164
- <p>Extends PrimaryKeyRelatedField to return a serialized object on read. This is useful for representing related
12620
+ <p>Extends PrimaryKeyRelatedField to return a serialized object on read. This is useful for representing related
12165
12621
  objects in a ManyToManyField while still allowing a set of primary keys to be written.</p>
12166
12622
 
12167
12623
 
12168
12624
 
12169
12625
 
12626
+
12627
+
12628
+
12629
+
12630
+
12170
12631
  <div class="doc doc-children">
12171
12632
 
12172
12633
 
@@ -12198,7 +12659,12 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12198
12659
 
12199
12660
  <div class="doc doc-contents ">
12200
12661
  <p class="doc doc-class-bases">
12201
- Bases: <code><autoref identifier="nautobot.core.api.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12662
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12663
+
12664
+
12665
+
12666
+
12667
+
12202
12668
 
12203
12669
 
12204
12670
 
@@ -12225,7 +12691,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12225
12691
 
12226
12692
  <div class="doc doc-contents ">
12227
12693
 
12228
- <p>Ensure that 'tags' field is always present except on nested serializers.</p>
12694
+ <p>Ensure that 'tags' field is always present except on nested serializers.</p>
12229
12695
 
12230
12696
  </div>
12231
12697
 
@@ -12252,10 +12718,15 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12252
12718
 
12253
12719
  <div class="doc doc-contents ">
12254
12720
  <p class="doc doc-class-bases">
12255
- Bases: <code><autoref identifier="timezone_field.rest_framework.TimeZoneSerializerField" optional hover>TimeZoneSerializerField</autoref></code></p>
12721
+ Bases: <code><span title="timezone_field.rest_framework.TimeZoneSerializerField">TimeZoneSerializerField</span></code></p>
12722
+
12723
+
12724
+ <p>Represents a time zone as a string.</p>
12725
+
12726
+
12727
+
12256
12728
 
12257
12729
 
12258
- <p>Represents a time zone as a string.</p>
12259
12730
 
12260
12731
 
12261
12732
  </div>
@@ -12275,10 +12746,15 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12275
12746
 
12276
12747
  <div class="doc doc-contents ">
12277
12748
  <p class="doc doc-class-bases">
12278
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12749
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12750
+
12751
+
12752
+ <p>Add a <code>tree_depth</code> field to non-nested model serializers based on django-tree-queries.</p>
12753
+
12754
+
12755
+
12279
12756
 
12280
12757
 
12281
- <p>Add a <code>tree_depth</code> field to non-nested model serializers based on django-tree-queries.</p>
12282
12758
 
12283
12759
 
12284
12760
 
@@ -12304,7 +12780,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12304
12780
 
12305
12781
  <div class="doc doc-contents ">
12306
12782
 
12307
- <p>Ensure that "tree_depth" is included on root serializers only, as nested objects are not annotated.</p>
12783
+ <p>Ensure that "tree_depth" is included on root serializers only, as nested objects are not annotated.</p>
12308
12784
 
12309
12785
  </div>
12310
12786
 
@@ -12321,7 +12797,7 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12321
12797
 
12322
12798
  <div class="doc doc-contents ">
12323
12799
 
12324
- <p>The <code>tree_depth</code> is not a database field, but an annotation automatically added by django-tree-queries.</p>
12800
+ <p>The <code>tree_depth</code> is not a database field, but an annotation automatically added by django-tree-queries.</p>
12325
12801
 
12326
12802
  </div>
12327
12803
 
@@ -12348,15 +12824,20 @@ objects in a ManyToManyField while still allowing a set of primary keys to be wr
12348
12824
 
12349
12825
  <div class="doc doc-contents ">
12350
12826
  <p class="doc doc-class-bases">
12351
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12827
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12352
12828
 
12353
12829
 
12354
- <p>Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
12830
+ <p>Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
12355
12831
  validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)</p>
12356
12832
 
12357
12833
 
12358
12834
 
12359
12835
 
12836
+
12837
+
12838
+
12839
+
12840
+
12360
12841
  <div class="doc doc-children">
12361
12842
 
12362
12843
 
@@ -12388,10 +12869,10 @@ validation. (DRF does not do this by default; see https://github.com/encode/djan
12388
12869
 
12389
12870
  <div class="doc doc-contents ">
12390
12871
  <p class="doc doc-class-bases">
12391
- Bases: <code><autoref identifier="nautobot.core.api.serializers.BaseModelSerializer" optional hover>BaseModelSerializer</autoref></code></p>
12872
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.api.serializers.BaseModelSerializer" href="#nautobot.apps.api.BaseModelSerializer">BaseModelSerializer</a></code></p>
12392
12873
 
12393
12874
 
12394
- <p>Returns a nested representation of an object on read, but accepts either the nested representation or the
12875
+ <p>Returns a nested representation of an object on read, but accepts either the nested representation or the
12395
12876
  primary key value on write operations.</p>
12396
12877
  <p>Note that subclasses will always have a read-only <code>object_type</code> field, which represents the content-type of this
12397
12878
  serializer's associated model (e.g. "dcim.device"). This is required as the OpenAPI schema, using the
@@ -12401,6 +12882,11 @@ which of several possible nested serializers are in use for a given attribute.</
12401
12882
 
12402
12883
 
12403
12884
 
12885
+
12886
+
12887
+
12888
+
12889
+
12404
12890
  <div class="doc doc-children">
12405
12891
 
12406
12892
 
@@ -12433,7 +12919,7 @@ which of several possible nested serializers are in use for a given attribute.</
12433
12919
  <div class="doc doc-contents ">
12434
12920
 
12435
12921
 
12436
- <p>WritableSerializerMixin provides the to_internal_value() function.
12922
+ <p>WritableSerializerMixin provides the to_internal_value() function.
12437
12923
  The function provides the ability to write API requests that identify unique objects based on
12438
12924
  combinations of fields other than the primary key.
12439
12925
  e.g:
@@ -12444,6 +12930,11 @@ vs
12444
12930
 
12445
12931
 
12446
12932
 
12933
+
12934
+
12935
+
12936
+
12937
+
12447
12938
  <div class="doc doc-children">
12448
12939
 
12449
12940
 
@@ -12465,7 +12956,7 @@ vs
12465
12956
 
12466
12957
  <div class="doc doc-contents ">
12467
12958
 
12468
- <p>Retrieve an unique object based on a dictionary of data attributes and raise errors accordingly if the object is not found.</p>
12959
+ <p>Retrieve an unique object based on a dictionary of data attributes and raise errors accordingly if the object is not found.</p>
12469
12960
 
12470
12961
  </div>
12471
12962
 
@@ -12482,7 +12973,7 @@ vs
12482
12973
 
12483
12974
  <div class="doc doc-contents ">
12484
12975
 
12485
- <p>Data could be a dictionary and an int (for the User model) or a str that represents the primary key.
12976
+ <p>Data could be a dictionary and an int (for the User model) or a str that represents the primary key.
12486
12977
  If it is a dictionary, we return it after remove non-filter fields.
12487
12978
  If it is a primary key, we return a dictionary object formatted like this {"pk": pk}</p>
12488
12979
 
@@ -12501,7 +12992,7 @@ If it is a primary key, we return a dictionary object formatted like this {"pk":
12501
12992
 
12502
12993
  <div class="doc doc-contents ">
12503
12994
 
12504
- <p>Make output from a WritableSerializer "round-trip" capable by automatically stripping from the
12995
+ <p>Make output from a WritableSerializer "round-trip" capable by automatically stripping from the
12505
12996
  data any serializer fields that do not correspond to a specific model field</p>
12506
12997
 
12507
12998
  </div>
@@ -12519,7 +13010,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12519
13010
 
12520
13011
  <div class="doc doc-contents ">
12521
13012
 
12522
- <p>Return an object or a list of objects based on a dictionary of data attributes or an UUID.</p>
13013
+ <p>Return an object or a list of objects based on a dictionary of data attributes or an UUID.</p>
12523
13014
 
12524
13015
  </div>
12525
13016
 
@@ -12545,7 +13036,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12545
13036
 
12546
13037
  <div class="doc doc-contents ">
12547
13038
 
12548
- <p>Translate a dictionary of attributes to a nested set of parameters suitable for QuerySet filtering. For example:</p>
13039
+ <p>Translate a dictionary of attributes to a nested set of parameters suitable for QuerySet filtering. For example:</p>
12549
13040
  <div class="highlight"><pre><span></span><code>{
12550
13041
  &quot;name&quot;: &quot;Foo&quot;,
12551
13042
  &quot;rack&quot;: {
@@ -12578,7 +13069,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12578
13069
 
12579
13070
  <div class="doc doc-contents ">
12580
13071
 
12581
- <p>Dynamically import a class from an absolute path string</p>
13072
+ <p>Dynamically import a class from an absolute path string</p>
12582
13073
 
12583
13074
  </div>
12584
13075
 
@@ -12595,7 +13086,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12595
13086
 
12596
13087
  <div class="doc doc-contents ">
12597
13088
 
12598
- <p>Returns the serializer of an api_version</p>
13089
+ <p>Returns the serializer of an api_version</p>
12599
13090
 
12600
13091
 
12601
13092
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12610,9 +13101,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12610
13101
  </thead>
12611
13102
  <tbody>
12612
13103
  <tr class="doc-section-item">
12613
- <td><code>serializer_choices</code></td>
12614
13104
  <td>
12615
- <code><autoref identifier="tuple" optional>tuple</autoref></code>
13105
+ <code>serializer_choices</code>
13106
+ </td>
13107
+ <td>
13108
+ <code>tuple</code>
12616
13109
  </td>
12617
13110
  <td>
12618
13111
  <div class="doc-md-description">
@@ -12624,9 +13117,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12624
13117
  </td>
12625
13118
  </tr>
12626
13119
  <tr class="doc-section-item">
12627
- <td><code>api_version</code></td>
12628
13120
  <td>
12629
- <code><autoref identifier="str" optional>str</autoref></code>
13121
+ <code>api_version</code>
13122
+ </td>
13123
+ <td>
13124
+ <code>str</code>
12630
13125
  </td>
12631
13126
  <td>
12632
13127
  <div class="doc-md-description">
@@ -12652,7 +13147,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12652
13147
  <tbody>
12653
13148
  <tr class="doc-section-item">
12654
13149
  <td>
12655
- <code><autoref identifier="Serializer" optional>Serializer</autoref></code>
13150
+ <code>Serializer</code>
12656
13151
  </td>
12657
13152
  <td>
12658
13153
  <div class="doc-md-description">
@@ -12678,7 +13173,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12678
13173
 
12679
13174
  <div class="doc doc-contents ">
12680
13175
 
12681
- <p>Dynamically resolve and return the appropriate serializer for a model.</p>
13176
+ <p>Dynamically resolve and return the appropriate serializer for a model.</p>
12682
13177
 
12683
13178
 
12684
13179
  <p><span class="doc-section-title">Raises:</span></p>
@@ -12692,7 +13187,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12692
13187
  <tbody>
12693
13188
  <tr class="doc-section-item">
12694
13189
  <td>
12695
- <code><autoref identifier="SerializerNotFound" optional>SerializerNotFound</autoref></code>
13190
+ <code>SerializerNotFound</code>
12696
13191
  </td>
12697
13192
  <td>
12698
13193
  <div class="doc-md-description">
@@ -12718,7 +13213,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12718
13213
 
12719
13214
  <div class="doc doc-contents ">
12720
13215
 
12721
- <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>
13216
+ <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>
12722
13217
 
12723
13218
  </div>
12724
13219
 
@@ -12735,7 +13230,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12735
13230
 
12736
13231
  <div class="doc doc-contents ">
12737
13232
 
12738
- <p>Return True of the request is being made via the REST API.</p>
13233
+ <p>Return True of the request is being made via the REST API.</p>
12739
13234
 
12740
13235
  </div>
12741
13236
 
@@ -12752,7 +13247,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12752
13247
 
12753
13248
  <div class="doc doc-contents ">
12754
13249
 
12755
- <p>Handle exceptions and return a useful error message for REST API requests.</p>
13250
+ <p>Handle exceptions and return a useful error message for REST API requests.</p>
12756
13251
 
12757
13252
  </div>
12758
13253
 
@@ -12769,7 +13264,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12769
13264
 
12770
13265
  <div class="doc doc-contents ">
12771
13266
 
12772
- <p>Returns appropriate serializer class depending on request api_version, and swagger_fake_view</p>
13267
+ <p>Returns appropriate serializer class depending on request api_version, and swagger_fake_view</p>
12773
13268
 
12774
13269
 
12775
13270
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12784,7 +13279,9 @@ data any serializer fields that do not correspond to a specific model field</p>
12784
13279
  </thead>
12785
13280
  <tbody>
12786
13281
  <tr class="doc-section-item">
12787
- <td><code>obj</code></td>
13282
+ <td>
13283
+ <code>obj</code>
13284
+ </td>
12788
13285
  <td>
12789
13286
  <code>ViewSet instance</code>
12790
13287
  </td>
@@ -12798,9 +13295,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12798
13295
  </td>
12799
13296
  </tr>
12800
13297
  <tr class="doc-section-item">
12801
- <td><code>serializer_choices</code></td>
12802
13298
  <td>
12803
- <code><autoref identifier="tuple" optional>tuple</autoref></code>
13299
+ <code>serializer_choices</code>
13300
+ </td>
13301
+ <td>
13302
+ <code>tuple</code>
12804
13303
  </td>
12805
13304
  <td>
12806
13305
  <div class="doc-md-description">
@@ -12812,9 +13311,11 @@ data any serializer fields that do not correspond to a specific model field</p>
12812
13311
  </td>
12813
13312
  </tr>
12814
13313
  <tr class="doc-section-item">
12815
- <td><code>default_serializer</code></td>
12816
13314
  <td>
12817
- <code><autoref identifier="Serializer" optional>Serializer</autoref></code>
13315
+ <code>default_serializer</code>
13316
+ </td>
13317
+ <td>
13318
+ <code>Serializer</code>
12818
13319
  </td>
12819
13320
  <td>
12820
13321
  <div class="doc-md-description">
@@ -12982,7 +13483,7 @@ data any serializer fields that do not correspond to a specific model field</p>
12982
13483
  </div>
12983
13484
 
12984
13485
 
12985
- <script id="__config" type="application/json">{"base": "../../..", "features": ["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.6ce7567c.min.js", "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"}}</script>
13486
+ <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.6ce7567c.min.js", "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"}}</script>
12986
13487
 
12987
13488
 
12988
13489
  <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>