nautobot 2.0.0a2__py3-none-any.whl → 2.0.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1029) hide show
  1. nautobot/__init__.py +1 -5
  2. nautobot/apps/api.py +6 -8
  3. nautobot/apps/forms.py +0 -2
  4. nautobot/apps/ui.py +0 -8
  5. nautobot/circuits/api/serializers.py +9 -119
  6. nautobot/circuits/api/urls.py +1 -1
  7. nautobot/circuits/api/views.py +0 -1
  8. nautobot/circuits/choices.py +0 -2
  9. nautobot/circuits/filters.py +7 -6
  10. nautobot/circuits/forms.py +3 -73
  11. nautobot/circuits/migrations/0001_initial_part_1.py +0 -1
  12. nautobot/circuits/migrations/0002_initial_part_2.py +0 -1
  13. nautobot/circuits/migrations/0003_auto_slug.py +0 -1
  14. nautobot/circuits/migrations/0004_increase_provider_account_length.py +0 -1
  15. nautobot/circuits/migrations/0005_providernetwork.py +0 -1
  16. nautobot/circuits/migrations/0006_cache_circuit_terminations.py +0 -1
  17. nautobot/circuits/migrations/0007_circuitterminations_primary_model.py +0 -1
  18. nautobot/circuits/migrations/0008_add_natural_indexing.py +0 -1
  19. nautobot/circuits/migrations/0009_circuittermination_location.py +0 -1
  20. nautobot/circuits/migrations/0010_rename_foreign_keys_and_related_names.py +0 -1
  21. nautobot/circuits/migrations/0011_remove_site_foreign_key_from_circuit_termination_class.py +0 -1
  22. nautobot/circuits/migrations/0012_created_datetime.py +0 -1
  23. nautobot/circuits/migrations/0013_alter_circuittermination__path.py +0 -1
  24. nautobot/circuits/migrations/0014_related_name_changes.py +1 -2
  25. nautobot/circuits/migrations/0015_remove_circuittype_provider_slug.py +20 -0
  26. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  27. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  28. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  29. nautobot/circuits/models.py +3 -93
  30. nautobot/circuits/navigation.py +14 -69
  31. nautobot/circuits/signals.py +0 -2
  32. nautobot/circuits/tables.py +42 -5
  33. nautobot/circuits/templates/circuits/circuit_retrieve.html +1 -1
  34. nautobot/circuits/templates/circuits/circuittermination_retrieve.html +1 -1
  35. nautobot/circuits/templates/circuits/circuittype_retrieve.html +1 -1
  36. nautobot/circuits/templates/circuits/provider_create.html +0 -1
  37. nautobot/circuits/templates/circuits/provider_retrieve.html +1 -1
  38. nautobot/circuits/tests/integration/test_relationships.py +13 -16
  39. nautobot/circuits/tests/test_api.py +13 -43
  40. nautobot/circuits/tests/test_filters.py +20 -15
  41. nautobot/circuits/tests/test_models.py +7 -3
  42. nautobot/circuits/tests/test_views.py +57 -67
  43. nautobot/circuits/views.py +18 -9
  44. nautobot/core/api/__init__.py +8 -2
  45. nautobot/core/api/authentication.py +0 -3
  46. nautobot/core/api/fields.py +15 -6
  47. nautobot/core/api/filter_backends.py +3 -2
  48. nautobot/core/api/metadata.py +237 -30
  49. nautobot/core/api/mixins.py +94 -0
  50. nautobot/core/api/pagination.py +3 -3
  51. nautobot/core/api/parsers.py +154 -0
  52. nautobot/core/api/renderers.py +153 -2
  53. nautobot/core/api/schema.py +47 -3
  54. nautobot/core/api/serializers.py +377 -37
  55. nautobot/core/api/urls.py +11 -3
  56. nautobot/core/api/utils.py +174 -2
  57. nautobot/core/api/versioning.py +32 -10
  58. nautobot/core/api/views.py +266 -75
  59. nautobot/core/apps/__init__.py +138 -221
  60. nautobot/core/celery/__init__.py +112 -41
  61. nautobot/core/celery/backends.py +19 -13
  62. nautobot/core/celery/control.py +46 -0
  63. nautobot/core/celery/encoders.py +53 -0
  64. nautobot/core/celery/log.py +38 -0
  65. nautobot/core/celery/schedulers.py +23 -4
  66. nautobot/core/celery/task.py +1 -16
  67. nautobot/core/checks.py +0 -27
  68. nautobot/core/choices.py +21 -113
  69. nautobot/core/{cli.py → cli/__init__.py} +1 -2
  70. nautobot/core/cli/__main__.py +3 -0
  71. nautobot/core/constants.py +25 -43
  72. nautobot/core/context_processors.py +12 -0
  73. nautobot/core/filters.py +2 -2
  74. nautobot/core/forms/__init__.py +0 -4
  75. nautobot/core/forms/fields.py +39 -68
  76. nautobot/core/forms/forms.py +27 -27
  77. nautobot/core/forms/utils.py +7 -59
  78. nautobot/core/forms/widgets.py +0 -1
  79. nautobot/core/graphql/__init__.py +2 -2
  80. nautobot/core/graphql/schema.py +4 -27
  81. nautobot/core/jobs/__init__.py +75 -0
  82. nautobot/core/management/commands/build_ui.py +255 -0
  83. nautobot/core/management/commands/celery.py +0 -1
  84. nautobot/core/management/commands/generate_test_data.py +18 -13
  85. nautobot/core/management/commands/post_upgrade.py +24 -24
  86. nautobot/core/management/commands/validate_models.py +0 -1
  87. nautobot/core/middleware.py +0 -1
  88. nautobot/core/models/__init__.py +26 -1
  89. nautobot/core/models/fields.py +24 -5
  90. nautobot/core/models/generics.py +2 -46
  91. nautobot/core/models/managers.py +5 -0
  92. nautobot/core/models/name_color_content_types.py +1 -19
  93. nautobot/core/models/tree_queries.py +14 -4
  94. nautobot/core/models/utils.py +9 -10
  95. nautobot/core/models/validators.py +17 -8
  96. nautobot/core/releases.py +8 -10
  97. nautobot/core/settings.py +81 -53
  98. nautobot/core/tables.py +5 -5
  99. nautobot/core/tasks.py +4 -7
  100. nautobot/core/templates/base.html +1 -49
  101. nautobot/core/templates/base_django.html +49 -0
  102. nautobot/core/templates/base_react.html +55 -0
  103. nautobot/core/templates/buttons/export.html +6 -4
  104. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  105. nautobot/core/templates/generic/object_list.html +4 -1
  106. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  107. nautobot/core/templates/inc/footer.html +1 -0
  108. nautobot/core/templates/inc/javascript.html +0 -14
  109. nautobot/core/templates/inc/nav_menu.html +28 -33
  110. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  111. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  112. nautobot/core/templates/nautobot_config.py.j2 +8 -25
  113. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  114. nautobot/core/templates/rest_framework/api.html +8 -0
  115. nautobot/core/templatetags/buttons.py +32 -29
  116. nautobot/core/templatetags/helpers.py +1 -1
  117. nautobot/core/testing/__init__.py +47 -44
  118. nautobot/core/testing/api.py +365 -47
  119. nautobot/core/testing/filters.py +12 -7
  120. nautobot/core/testing/integration.py +1 -1
  121. nautobot/core/testing/migrations.py +2 -0
  122. nautobot/core/testing/mixins.py +22 -12
  123. nautobot/core/testing/schema.py +2 -1
  124. nautobot/core/testing/views.py +28 -51
  125. nautobot/core/tests/integration/test_filters.py +17 -8
  126. nautobot/core/tests/integration/test_navbar.py +11 -34
  127. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  128. nautobot/core/tests/nautobot_config.py +2 -3
  129. nautobot/core/tests/runner.py +0 -1
  130. nautobot/core/tests/test_api.py +290 -24
  131. nautobot/core/tests/test_authentication.py +57 -14
  132. nautobot/core/tests/test_checks.py +0 -7
  133. nautobot/core/tests/test_choices.py +0 -1
  134. nautobot/core/tests/test_filters.py +117 -110
  135. nautobot/core/tests/test_forms.py +47 -110
  136. nautobot/core/tests/test_graphql.py +158 -135
  137. nautobot/core/tests/test_logging.py +4 -1
  138. nautobot/core/tests/test_managers.py +3 -5
  139. nautobot/core/tests/test_models.py +2 -0
  140. nautobot/core/tests/test_ordering.py +0 -2
  141. nautobot/core/tests/test_paginator.py +3 -1
  142. nautobot/core/tests/test_releases.py +12 -12
  143. nautobot/core/tests/test_templatetags_helpers.py +7 -4
  144. nautobot/core/tests/test_utils.py +112 -78
  145. nautobot/core/tests/test_views.py +12 -17
  146. nautobot/core/tests/test_views_utils.py +6 -9
  147. nautobot/core/utils/data.py +17 -0
  148. nautobot/core/utils/deprecation.py +13 -20
  149. nautobot/core/utils/filtering.py +53 -9
  150. nautobot/core/utils/git.py +12 -4
  151. nautobot/core/utils/lookup.py +3 -1
  152. nautobot/core/utils/requests.py +23 -116
  153. nautobot/core/views/__init__.py +1 -2
  154. nautobot/core/views/generic.py +131 -119
  155. nautobot/core/views/mixins.py +53 -62
  156. nautobot/core/views/paginator.py +0 -1
  157. nautobot/core/views/renderers.py +14 -12
  158. nautobot/core/views/utils.py +87 -4
  159. nautobot/dcim/api/serializers.py +160 -672
  160. nautobot/dcim/api/urls.py +1 -1
  161. nautobot/dcim/api/views.py +7 -46
  162. nautobot/dcim/choices.py +2 -25
  163. nautobot/dcim/elevations.py +0 -1
  164. nautobot/dcim/factory.py +15 -4
  165. nautobot/dcim/filters/__init__.py +42 -13
  166. nautobot/dcim/form_mixins.py +1 -27
  167. nautobot/dcim/forms.py +58 -797
  168. nautobot/dcim/management/commands/trace_paths.py +0 -1
  169. nautobot/dcim/migrations/0001_initial_part_1.py +0 -1
  170. nautobot/dcim/migrations/0002_initial_part_2.py +0 -1
  171. nautobot/dcim/migrations/0003_initial_part_3.py +0 -1
  172. nautobot/dcim/migrations/0004_initial_part_4.py +0 -1
  173. nautobot/dcim/migrations/0005_device_local_context_schema.py +0 -1
  174. nautobot/dcim/migrations/0006_auto_slug.py +0 -1
  175. nautobot/dcim/migrations/0007_device_secrets_group.py +0 -1
  176. nautobot/dcim/migrations/0008_increase_all_serial_lengths.py +0 -1
  177. nautobot/dcim/migrations/0009_add_natural_indexing.py +0 -1
  178. nautobot/dcim/migrations/0010_interface_status.py +0 -1
  179. nautobot/dcim/migrations/0011_interface_status_data_migration.py +0 -1
  180. nautobot/dcim/migrations/0012_interface_parent_bridge.py +0 -1
  181. nautobot/dcim/migrations/0013_location_location_type.py +0 -1
  182. nautobot/dcim/migrations/0014_location_status_data_migration.py +0 -1
  183. nautobot/dcim/migrations/0015_device_components__changeloggedmodel.py +0 -1
  184. nautobot/dcim/migrations/0016_device_components__timestamp_data_migration.py +0 -1
  185. nautobot/dcim/migrations/0017_locationtype_nestable.py +0 -1
  186. nautobot/dcim/migrations/0018_device_redundancy_group.py +0 -1
  187. nautobot/dcim/migrations/0019_device_redundancy_group_data_migration.py +0 -1
  188. nautobot/dcim/migrations/0020_move_site_fields_to_location_model.py +0 -1
  189. nautobot/dcim/migrations/0021_mptt_to_tree_queries.py +0 -1
  190. nautobot/dcim/migrations/0022_interface_mac_address_data_migration.py +0 -1
  191. nautobot/dcim/migrations/0023_alter_interface_mac_address.py +0 -1
  192. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -2
  193. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -14
  194. nautobot/dcim/migrations/0026_rename_device_and_rack_role.py +0 -1
  195. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -2
  196. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -2
  197. nautobot/dcim/migrations/0029_add_tree_managers_and_foreign_keys_pre_data_migration.py +0 -1
  198. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  199. nautobot/dcim/migrations/0031_rename_path_end_point_related_name.py +0 -1
  200. nautobot/dcim/migrations/0032_remove_site_foreign_key_from_dcim_models.py +0 -1
  201. nautobot/dcim/migrations/0033_created_datetime.py +0 -1
  202. nautobot/dcim/migrations/0034_fixup_fks_and_related_names.py +0 -1
  203. nautobot/dcim/migrations/0035_related_name_changes.py +1 -2
  204. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -2
  205. nautobot/dcim/migrations/0037_interface_ip_addresses_m2m.py +0 -1
  206. nautobot/dcim/migrations/0038_alter_location_managers.py +0 -1
  207. nautobot/dcim/migrations/0039_remove_slug.py +24 -0
  208. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  209. nautobot/dcim/migrations/0041_ipam__namespaces.py +25 -0
  210. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  211. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  212. nautobot/dcim/models/cables.py +4 -35
  213. nautobot/dcim/models/device_component_templates.py +7 -2
  214. nautobot/dcim/models/device_components.py +26 -203
  215. nautobot/dcim/models/devices.py +30 -152
  216. nautobot/dcim/models/locations.py +3 -64
  217. nautobot/dcim/models/power.py +3 -51
  218. nautobot/dcim/models/racks.py +7 -86
  219. nautobot/dcim/navigation.py +141 -467
  220. nautobot/dcim/signals.py +0 -2
  221. nautobot/dcim/tables/devices.py +8 -5
  222. nautobot/dcim/tables/devicetypes.py +1 -1
  223. nautobot/dcim/tables/locations.py +2 -2
  224. nautobot/dcim/tables/power.py +2 -2
  225. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  226. nautobot/dcim/templates/dcim/device.html +15 -4
  227. nautobot/dcim/templates/dcim/device_edit.html +6 -0
  228. nautobot/dcim/templates/dcim/deviceredundancygroup_create.html +0 -1
  229. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  230. nautobot/dcim/templates/dcim/interface.html +4 -0
  231. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  232. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  233. nautobot/dcim/templates/dcim/location.html +16 -1
  234. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  235. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  236. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  237. nautobot/dcim/tests/integration/test_cable_connect_form.py +4 -4
  238. nautobot/dcim/tests/test_api.py +202 -130
  239. nautobot/dcim/tests/test_cablepaths.py +47 -42
  240. nautobot/dcim/tests/test_filters.py +156 -134
  241. nautobot/dcim/tests/test_forms.py +12 -213
  242. nautobot/dcim/tests/test_graphql.py +8 -3
  243. nautobot/dcim/tests/test_migrations.py +6 -11
  244. nautobot/dcim/tests/test_models.py +208 -158
  245. nautobot/dcim/tests/test_natural_ordering.py +12 -14
  246. nautobot/dcim/tests/test_signals.py +7 -4
  247. nautobot/dcim/tests/test_views.py +270 -264
  248. nautobot/dcim/urls.py +21 -26
  249. nautobot/dcim/views.py +14 -156
  250. nautobot/docs/additional-features/caching.md +6 -87
  251. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  252. nautobot/docs/additional-features/jobs.md +179 -197
  253. nautobot/docs/administration/nautobot-server.md +9 -24
  254. nautobot/docs/administration/nautobot-shell.md +6 -6
  255. nautobot/docs/administration/replicating-nautobot.md +0 -10
  256. nautobot/docs/configuration/index.md +9 -9
  257. nautobot/docs/configuration/optional-settings.md +32 -61
  258. nautobot/docs/configuration/required-settings.md +11 -52
  259. nautobot/docs/development/application-registry.md +2 -13
  260. nautobot/docs/development/best-practices.md +2 -1
  261. nautobot/docs/development/docker-compose-advanced-use-cases.md +1 -1
  262. nautobot/docs/development/extending-models.md +15 -17
  263. nautobot/docs/development/generic-views.md +0 -2
  264. nautobot/docs/development/getting-started.md +56 -6
  265. nautobot/docs/development/navigation-menu.md +22 -93
  266. nautobot/docs/development/react-ui.md +105 -0
  267. nautobot/docs/development/release-checklist.md +3 -3
  268. nautobot/docs/development/role-internals.md +1 -3
  269. nautobot/docs/development/style-guide.md +6 -4
  270. nautobot/docs/development/templates.md +2 -1
  271. nautobot/docs/docker/index.md +16 -14
  272. nautobot/docs/index.md +7 -3
  273. nautobot/docs/installation/index.md +4 -1
  274. nautobot/docs/installation/migrating-from-netbox.md +12 -43
  275. nautobot/docs/installation/migrating-from-postgresql.md +1 -1
  276. nautobot/docs/installation/nautobot.md +1 -1
  277. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  278. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  279. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  280. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  281. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  282. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  283. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  284. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  285. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  286. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  287. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  288. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  289. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  290. nautobot/docs/installation/upgrading-from-nautobot-v1.md +190 -636
  291. nautobot/docs/installation/upgrading.md +5 -2
  292. nautobot/docs/models/dcim/device.md +3 -0
  293. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  294. nautobot/docs/models/extras/computedfield.md +4 -4
  295. nautobot/docs/models/extras/dynamicgroup.md +9 -9
  296. nautobot/docs/models/extras/gitrepository.md +3 -0
  297. nautobot/docs/models/extras/job.md +1 -0
  298. nautobot/docs/models/extras/jobbutton.md +18 -13
  299. nautobot/docs/models/extras/jobhook.md +7 -4
  300. nautobot/docs/models/extras/jobresult.md +6 -2
  301. nautobot/docs/models/extras/relationship.md +2 -2
  302. nautobot/docs/models/extras/status.md +6 -19
  303. nautobot/docs/models/ipam/ipaddress.md +3 -0
  304. nautobot/docs/models/ipam/vrf.md +0 -3
  305. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  306. nautobot/docs/plugins/development.md +92 -24
  307. nautobot/docs/release-notes/version-1.5.md +96 -0
  308. nautobot/docs/release-notes/version-2.0.md +216 -0
  309. nautobot/docs/requirements.txt +5 -4
  310. nautobot/docs/rest-api/overview.md +384 -215
  311. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  312. nautobot/extras/admin.py +3 -5
  313. nautobot/extras/api/customfields.py +15 -39
  314. nautobot/extras/api/fields.py +0 -11
  315. nautobot/extras/api/mixins.py +45 -0
  316. nautobot/extras/api/relationships.py +63 -159
  317. nautobot/extras/api/serializers.py +165 -706
  318. nautobot/extras/api/urls.py +1 -1
  319. nautobot/extras/api/views.py +295 -282
  320. nautobot/extras/apps.py +4 -7
  321. nautobot/extras/choices.py +11 -22
  322. nautobot/extras/constants.py +9 -3
  323. nautobot/extras/datasources/__init__.py +2 -0
  324. nautobot/extras/datasources/git.py +135 -186
  325. nautobot/extras/datasources/registry.py +25 -35
  326. nautobot/extras/factory.py +1 -3
  327. nautobot/extras/filters/__init__.py +49 -47
  328. nautobot/extras/filters/mixins.py +10 -8
  329. nautobot/extras/forms/forms.py +72 -148
  330. nautobot/extras/forms/mixins.py +34 -57
  331. nautobot/extras/health_checks.py +0 -33
  332. nautobot/extras/jobs.py +387 -566
  333. nautobot/extras/management/__init__.py +55 -48
  334. nautobot/extras/management/commands/renaturalize.py +0 -1
  335. nautobot/extras/management/commands/runjob.py +24 -62
  336. nautobot/extras/management/commands/webhook_receiver.py +0 -1
  337. nautobot/extras/managers.py +30 -7
  338. nautobot/extras/migrations/0001_initial_part_1.py +0 -1
  339. nautobot/extras/migrations/0002_initial_part_2.py +0 -1
  340. nautobot/extras/migrations/0003_initial_part_3.py +0 -1
  341. nautobot/extras/migrations/0004_populate_default_status_records.py +0 -1
  342. nautobot/extras/migrations/0005_configcontext_device_types.py +0 -1
  343. nautobot/extras/migrations/0006_graphqlquery.py +0 -1
  344. nautobot/extras/migrations/0007_configcontextschema.py +0 -1
  345. nautobot/extras/migrations/0008_jobresult__custom_field_data.py +0 -1
  346. nautobot/extras/migrations/0009_computedfield.py +0 -1
  347. nautobot/extras/migrations/0010_change_cf_validation_max_min_field_to_bigint.py +0 -1
  348. nautobot/extras/migrations/0011_fileattachment_fileproxy.py +0 -1
  349. nautobot/extras/migrations/0012_healthchecktestmodel.py +0 -1
  350. nautobot/extras/migrations/0013_default_fallback_value_computedfield.py +0 -1
  351. nautobot/extras/migrations/0014_auto_slug.py +0 -1
  352. nautobot/extras/migrations/0015_scheduled_job.py +0 -1
  353. nautobot/extras/migrations/0016_secret.py +0 -1
  354. nautobot/extras/migrations/0017_joblogentry.py +0 -1
  355. nautobot/extras/migrations/0018_joblog_data_migration.py +0 -2
  356. nautobot/extras/migrations/0019_joblogentry__meta_options__related_name.py +0 -1
  357. nautobot/extras/migrations/0020_customfield_changelog.py +0 -1
  358. nautobot/extras/migrations/0021_customfield_changelog_data.py +0 -1
  359. nautobot/extras/migrations/0022_objectchange_object_datav2.py +0 -1
  360. nautobot/extras/migrations/0023_job_model.py +0 -1
  361. nautobot/extras/migrations/0024_job_data_migration.py +0 -1
  362. nautobot/extras/migrations/0025_add_advanced_ui_boolean_to_customfield_conputedfield_and_relationship.py +0 -1
  363. nautobot/extras/migrations/0026_job_add_gitrepository_fk.py +0 -1
  364. nautobot/extras/migrations/0027_job_gitrepository_data_migration.py +0 -1
  365. nautobot/extras/migrations/0028_job_reduce_source.py +0 -1
  366. nautobot/extras/migrations/0029_dynamicgroup.py +0 -1
  367. nautobot/extras/migrations/0030_webhook_alter_unique_together.py +0 -1
  368. nautobot/extras/migrations/0031_tag_content_types.py +0 -1
  369. nautobot/extras/migrations/0032_tag_content_types_data_migration.py +0 -1
  370. nautobot/extras/migrations/0033_add__optimized_indexing.py +0 -1
  371. nautobot/extras/migrations/0034_alter_fileattachment_mimetype.py +0 -1
  372. nautobot/extras/migrations/0035_scheduledjob_crontab.py +0 -1
  373. nautobot/extras/migrations/0036_job_add_has_sensitive_variables.py +0 -1
  374. nautobot/extras/migrations/0037_configcontextschema__remove_name_unique__create_constraint_unique_name_owner.py +0 -1
  375. nautobot/extras/migrations/0038_configcontext_locations.py +0 -1
  376. nautobot/extras/migrations/0039_objectchange__add_change_context.py +0 -1
  377. nautobot/extras/migrations/0040_dynamicgroup__dynamicgroupmembership.py +0 -1
  378. nautobot/extras/migrations/0041_jobresult_job_kwargs.py +0 -1
  379. nautobot/extras/migrations/0042_job__add_is_job_hook_receiver.py +0 -1
  380. nautobot/extras/migrations/0043_note.py +0 -1
  381. nautobot/extras/migrations/0044_add_job_hook.py +0 -1
  382. nautobot/extras/migrations/0045_add_custom_field_slug.py +0 -1
  383. nautobot/extras/migrations/0046_populate_custom_field_slug_label.py +0 -1
  384. nautobot/extras/migrations/0047_enforce_custom_field_slug.py +0 -1
  385. nautobot/extras/migrations/0048_alter_objectchange_change_context_detail.py +0 -1
  386. nautobot/extras/migrations/0049_alter_tag_slug.py +0 -1
  387. nautobot/extras/migrations/0050_customfield_grouping.py +0 -1
  388. nautobot/extras/migrations/0051_add_job_task_queues.py +0 -1
  389. nautobot/extras/migrations/0052_configcontext_device_redundancy_groups.py +0 -1
  390. nautobot/extras/migrations/0053_relationship_required_on.py +0 -1
  391. nautobot/extras/migrations/0054_scheduledjob_kwargs_request_user_change.py +0 -1
  392. nautobot/extras/migrations/0055_configcontext_dynamic_groups.py +0 -1
  393. nautobot/extras/migrations/0056_objectchange_add_reverse_time_idx.py +0 -1
  394. nautobot/extras/migrations/0057_jobbutton.py +0 -1
  395. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  396. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -2
  397. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -2
  398. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -8
  399. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -33
  400. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -2
  401. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -2
  402. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  403. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -2
  404. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -3
  405. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -2
  406. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -2
  407. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  408. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -2
  409. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  410. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -10
  411. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -2
  412. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  413. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  414. nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
  415. nautobot/extras/migrations/0078_remove_slug.py +45 -0
  416. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  417. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  418. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  419. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  420. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  421. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  422. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  423. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  424. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  425. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  426. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  427. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  428. nautobot/extras/models/__init__.py +2 -3
  429. nautobot/extras/models/change_logging.py +0 -36
  430. nautobot/extras/models/customfields.py +39 -33
  431. nautobot/extras/models/datasources.py +48 -50
  432. nautobot/extras/models/groups.py +5 -12
  433. nautobot/extras/models/jobs.py +190 -323
  434. nautobot/extras/models/mixins.py +0 -71
  435. nautobot/extras/models/models.py +1 -22
  436. nautobot/extras/models/relationships.py +20 -21
  437. nautobot/extras/models/roles.py +0 -23
  438. nautobot/extras/models/secrets.py +2 -31
  439. nautobot/extras/models/statuses.py +6 -5
  440. nautobot/extras/models/tags.py +2 -17
  441. nautobot/extras/navigation.py +89 -307
  442. nautobot/extras/plugins/__init__.py +3 -121
  443. nautobot/extras/plugins/utils.py +0 -3
  444. nautobot/extras/plugins/validators.py +5 -4
  445. nautobot/extras/plugins/views.py +16 -4
  446. nautobot/extras/querysets.py +1 -7
  447. nautobot/extras/registry.py +3 -0
  448. nautobot/extras/signals.py +26 -60
  449. nautobot/extras/tables.py +42 -49
  450. nautobot/extras/tasks.py +0 -12
  451. nautobot/extras/templates/extras/configcontext.html +1 -1
  452. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  453. nautobot/extras/templates/extras/customfield.html +0 -13
  454. nautobot/extras/templates/extras/dynamicgroup_edit.html +0 -1
  455. nautobot/extras/templates/extras/gitrepository.html +3 -3
  456. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  457. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  458. nautobot/extras/templates/extras/job.html +35 -25
  459. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  460. nautobot/extras/templates/extras/job_detail.html +13 -31
  461. nautobot/extras/templates/extras/job_edit.html +14 -17
  462. nautobot/extras/templates/extras/jobresult.html +24 -6
  463. nautobot/extras/templates/extras/objectchange_list.html +1 -1
  464. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  465. nautobot/extras/templates/extras/secret.html +28 -0
  466. nautobot/extras/templates/extras/secret_edit.html +0 -1
  467. nautobot/extras/templates/extras/secretsgroup_edit.html +0 -1
  468. nautobot/extras/templatetags/custom_links.py +0 -2
  469. nautobot/extras/templatetags/job_buttons.py +1 -0
  470. nautobot/extras/templatetags/plugins.py +0 -1
  471. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  472. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  473. nautobot/extras/test_jobs/dry_run.py +29 -0
  474. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  475. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  476. nautobot/extras/test_jobs/fail.py +23 -0
  477. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  478. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  479. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  480. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  481. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  482. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  483. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  484. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  485. nautobot/extras/test_jobs/job_variables.py +88 -0
  486. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  487. nautobot/extras/test_jobs/log_redaction.py +20 -0
  488. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  489. nautobot/extras/test_jobs/modify_db.py +25 -0
  490. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  491. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  492. nautobot/extras/test_jobs/object_var_required.py +21 -0
  493. nautobot/extras/test_jobs/object_vars.py +26 -0
  494. nautobot/extras/test_jobs/pass.py +25 -0
  495. nautobot/extras/test_jobs/profiling.py +32 -0
  496. nautobot/extras/test_jobs/read_only_job.py +15 -0
  497. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  498. nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
  499. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  500. nautobot/extras/tests/integration/__init__.py +3 -3
  501. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  502. nautobot/extras/tests/integration/test_configcontextschema.py +7 -5
  503. nautobot/extras/tests/integration/test_customfields.py +4 -2
  504. nautobot/extras/tests/integration/test_dynamicgroups.py +2 -2
  505. nautobot/extras/tests/integration/test_jobs.py +25 -27
  506. nautobot/extras/tests/integration/test_notes.py +8 -4
  507. nautobot/extras/tests/integration/test_plugins.py +4 -4
  508. nautobot/extras/tests/integration/test_relationships.py +2 -2
  509. nautobot/extras/tests/test_api.py +371 -381
  510. nautobot/extras/tests/test_changelog.py +17 -16
  511. nautobot/extras/tests/test_context_managers.py +5 -6
  512. nautobot/extras/tests/test_customfields.py +112 -73
  513. nautobot/extras/tests/test_datasources.py +191 -117
  514. nautobot/extras/tests/test_dynamicgroups.py +45 -68
  515. nautobot/extras/tests/test_filters.py +170 -130
  516. nautobot/extras/tests/test_forms.py +107 -109
  517. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  518. nautobot/extras/tests/test_jobs.py +271 -273
  519. nautobot/extras/tests/test_management.py +3 -6
  520. nautobot/extras/tests/test_migrations.py +5 -3
  521. nautobot/extras/tests/test_models.py +121 -173
  522. nautobot/extras/tests/test_notes.py +0 -1
  523. nautobot/extras/tests/test_plugins.py +55 -89
  524. nautobot/extras/tests/test_relationships.py +174 -130
  525. nautobot/extras/tests/test_tags.py +6 -12
  526. nautobot/extras/tests/test_utils.py +31 -1
  527. nautobot/extras/tests/test_views.py +223 -184
  528. nautobot/extras/tests/test_webhooks.py +16 -15
  529. nautobot/extras/urls.py +69 -69
  530. nautobot/extras/utils.py +137 -163
  531. nautobot/extras/views.py +81 -153
  532. nautobot/ipam/api/fields.py +17 -0
  533. nautobot/ipam/api/serializers.py +77 -164
  534. nautobot/ipam/api/urls.py +4 -1
  535. nautobot/ipam/api/views.py +28 -19
  536. nautobot/ipam/apps.py +1 -0
  537. nautobot/ipam/choices.py +5 -12
  538. nautobot/ipam/constants.py +1 -0
  539. nautobot/ipam/factory.py +41 -30
  540. nautobot/ipam/filters.py +58 -25
  541. nautobot/ipam/forms.py +82 -211
  542. nautobot/ipam/graphql/types.py +0 -9
  543. nautobot/ipam/lookups.py +13 -8
  544. nautobot/ipam/management/commands/__init__.py +0 -0
  545. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  546. nautobot/ipam/migrations/0001_initial_part_1.py +0 -1
  547. nautobot/ipam/migrations/0002_initial_part_2.py +0 -1
  548. nautobot/ipam/migrations/0003_remove_max_length.py +0 -1
  549. nautobot/ipam/migrations/0004_fixup_p2p_broadcast.py +0 -1
  550. nautobot/ipam/migrations/0005_auto_slug.py +0 -1
  551. nautobot/ipam/migrations/0006_ipaddress_nat_outside_list.py +0 -1
  552. nautobot/ipam/migrations/0007_add_natural_indexing.py +0 -1
  553. nautobot/ipam/migrations/0008_prefix_vlan_vlangroup_location.py +0 -1
  554. nautobot/ipam/migrations/0009_alter_vlan_name.py +0 -1
  555. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -2
  556. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -39
  557. nautobot/ipam/migrations/0012_rename_ipam_roles.py +0 -1
  558. nautobot/ipam/migrations/0013_delete_role.py +0 -1
  559. nautobot/ipam/migrations/0014_rename_foreign_keys_and_related_names.py +0 -1
  560. nautobot/ipam/migrations/0015_prefix_add_type.py +0 -1
  561. nautobot/ipam/migrations/0016_prefix_type_data_migration.py +0 -3
  562. nautobot/ipam/migrations/0017_prefix_remove_is_pool.py +0 -1
  563. nautobot/ipam/migrations/0018_remove_site_foreign_key_from_ipam_models.py +0 -1
  564. nautobot/ipam/migrations/0019_created_datetime.py +0 -1
  565. nautobot/ipam/migrations/0020_related_name_changes.py +1 -2
  566. nautobot/ipam/migrations/0021_prefix_add_rir_and_date_allocated.py +0 -1
  567. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +3 -5
  568. nautobot/ipam/migrations/0023_delete_aggregate.py +0 -1
  569. nautobot/ipam/migrations/0024_interface_to_ipaddress_m2m.py +0 -1
  570. nautobot/ipam/migrations/0025_interface_ipaddress_m2m_data_migration.py +0 -1
  571. nautobot/ipam/migrations/0026_ipaddress_remove_assigned_object.py +0 -1
  572. nautobot/ipam/migrations/0027_remove_rir_slug.py +16 -0
  573. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  574. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  575. nautobot/ipam/migrations/0030_ipam__namespaces.py +231 -0
  576. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  577. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  578. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  579. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  580. nautobot/ipam/models.py +579 -368
  581. nautobot/ipam/navigation.py +36 -159
  582. nautobot/ipam/querysets.py +117 -90
  583. nautobot/ipam/signals.py +89 -0
  584. nautobot/ipam/tables.py +86 -28
  585. nautobot/ipam/templates/ipam/ipaddress.html +14 -30
  586. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -0
  587. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  588. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  589. nautobot/ipam/templates/ipam/namespace_retrieve.html +42 -0
  590. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  591. nautobot/ipam/templates/ipam/prefix.html +27 -33
  592. nautobot/ipam/templates/ipam/prefix_edit.html +7 -1
  593. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  594. nautobot/ipam/templates/ipam/vrf.html +6 -4
  595. nautobot/ipam/templates/ipam/vrf_edit.html +20 -2
  596. nautobot/ipam/tests/integration/test_prefixes.py +4 -27
  597. nautobot/ipam/tests/test_api.py +60 -61
  598. nautobot/ipam/tests/test_filters.py +187 -126
  599. nautobot/ipam/tests/test_forms.py +12 -6
  600. nautobot/ipam/tests/test_graphql.py +8 -6
  601. nautobot/ipam/tests/test_migrations.py +8 -13
  602. nautobot/ipam/tests/test_models.py +426 -274
  603. nautobot/ipam/tests/test_ordering.py +6 -3
  604. nautobot/ipam/tests/test_querysets.py +340 -96
  605. nautobot/ipam/tests/test_views.py +100 -55
  606. nautobot/ipam/urls.py +28 -5
  607. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  608. nautobot/ipam/utils/migrations.py +713 -0
  609. nautobot/ipam/views.py +237 -122
  610. nautobot/project-static/docs/404.html +1399 -166
  611. nautobot/project-static/docs/additional-features/caching.html +1416 -320
  612. nautobot/project-static/docs/additional-features/change-logging.html +1389 -190
  613. nautobot/project-static/docs/additional-features/config-contexts.html +1389 -190
  614. nautobot/project-static/docs/additional-features/graphql.html +1389 -190
  615. nautobot/project-static/docs/additional-features/healthcheck.html +1389 -190
  616. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1393 -190
  617. nautobot/project-static/docs/additional-features/jobs.html +1677 -460
  618. nautobot/project-static/docs/additional-features/napalm.html +1389 -190
  619. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1389 -190
  620. nautobot/project-static/docs/additional-features/template-filters.html +1389 -190
  621. nautobot/project-static/docs/administration/celery-queues.html +1389 -190
  622. nautobot/project-static/docs/administration/nautobot-server.html +1553 -375
  623. nautobot/project-static/docs/administration/nautobot-shell.html +1395 -196
  624. nautobot/project-static/docs/administration/permissions.html +1389 -190
  625. nautobot/project-static/docs/administration/replicating-nautobot.html +1387 -207
  626. nautobot/project-static/docs/apps/index.html +1389 -190
  627. nautobot/project-static/docs/apps/nautobot-apps.html +1387 -175
  628. nautobot/project-static/docs/assets/javascripts/bundle.51198bba.min.js +29 -0
  629. nautobot/project-static/docs/assets/javascripts/bundle.51198bba.min.js.map +8 -0
  630. nautobot/project-static/docs/assets/javascripts/workers/{search.16e2a7d4.min.js → search.208ed371.min.js} +9 -15
  631. nautobot/project-static/docs/assets/javascripts/workers/{search.16e2a7d4.min.js.map → search.208ed371.min.js.map} +4 -4
  632. nautobot/project-static/docs/assets/stylesheets/main.ded33207.min.css +1 -0
  633. nautobot/project-static/docs/assets/stylesheets/main.ded33207.min.css.map +1 -0
  634. nautobot/project-static/docs/assets/stylesheets/palette.a0c5b2b5.min.css +1 -0
  635. nautobot/project-static/docs/assets/stylesheets/palette.a0c5b2b5.min.css.map +1 -0
  636. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1775 -590
  637. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1389 -190
  638. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3588 -1922
  639. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1461 -262
  640. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1401 -170
  641. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1396 -191
  642. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +2095 -894
  643. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2357 -1194
  644. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +2258 -940
  645. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1389 -190
  646. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1400 -201
  647. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +11068 -7861
  648. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2867 -2224
  649. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1389 -190
  650. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2641 -1573
  651. nautobot/project-static/docs/configuration/authentication/ldap.html +1389 -190
  652. nautobot/project-static/docs/configuration/authentication/remote.html +1389 -190
  653. nautobot/project-static/docs/configuration/authentication/sso.html +1389 -190
  654. nautobot/project-static/docs/configuration/index.html +1398 -199
  655. nautobot/project-static/docs/configuration/optional-settings.html +1418 -274
  656. nautobot/project-static/docs/configuration/required-settings.html +1419 -287
  657. nautobot/project-static/docs/core-functionality/circuits.html +1446 -247
  658. nautobot/project-static/docs/core-functionality/device-types.html +1448 -249
  659. nautobot/project-static/docs/core-functionality/devices.html +1452 -249
  660. nautobot/project-static/docs/core-functionality/ipam.html +1452 -253
  661. nautobot/project-static/docs/core-functionality/power.html +1448 -249
  662. nautobot/project-static/docs/core-functionality/secrets.html +1448 -249
  663. nautobot/project-static/docs/core-functionality/services.html +1448 -249
  664. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1448 -249
  665. nautobot/project-static/docs/core-functionality/tenancy.html +1448 -249
  666. nautobot/project-static/docs/core-functionality/virtualization.html +1452 -249
  667. nautobot/project-static/docs/core-functionality/vlans.html +1448 -249
  668. nautobot/project-static/docs/development/application-registry.html +1393 -214
  669. nautobot/project-static/docs/development/best-practices.html +1392 -192
  670. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1390 -191
  671. nautobot/project-static/docs/development/extending-models.html +1443 -257
  672. nautobot/project-static/docs/development/generic-views.html +1403 -174
  673. nautobot/project-static/docs/development/getting-started.html +1568 -262
  674. nautobot/project-static/docs/development/homepage.html +1389 -190
  675. nautobot/project-static/docs/development/index.html +1389 -190
  676. nautobot/project-static/docs/development/model-features.html +1389 -190
  677. nautobot/project-static/docs/development/natural-keys.html +1389 -190
  678. nautobot/project-static/docs/development/navigation-menu.html +1451 -330
  679. nautobot/project-static/docs/development/react-ui.html +4199 -0
  680. nautobot/project-static/docs/development/release-checklist.html +1392 -193
  681. nautobot/project-static/docs/development/role-internals.html +1402 -172
  682. nautobot/project-static/docs/development/style-guide.html +1399 -199
  683. nautobot/project-static/docs/development/templates.html +1391 -191
  684. nautobot/project-static/docs/development/testing.html +1389 -190
  685. nautobot/project-static/docs/development/user-preferences.html +1389 -190
  686. nautobot/project-static/docs/docker/index.html +1408 -206
  687. nautobot/project-static/docs/index.html +1397 -180
  688. nautobot/project-static/docs/installation/centos.html +1401 -170
  689. nautobot/project-static/docs/installation/external-authentication.html +1389 -190
  690. nautobot/project-static/docs/installation/http-server.html +1389 -190
  691. nautobot/project-static/docs/installation/index.html +1394 -191
  692. nautobot/project-static/docs/installation/migrating-from-netbox.html +1452 -305
  693. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1390 -191
  694. nautobot/project-static/docs/installation/nautobot.html +1390 -191
  695. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1389 -190
  696. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1401 -170
  697. nautobot/project-static/docs/installation/services.html +1389 -190
  698. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  699. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  700. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  701. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  702. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  703. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  704. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  705. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  706. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  707. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  708. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  709. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  710. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  711. nautobot/project-static/docs/installation/ubuntu.html +1401 -170
  712. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +4254 -1923
  713. nautobot/project-static/docs/installation/upgrading.html +1395 -192
  714. nautobot/project-static/docs/models/circuits/circuit.html +1427 -174
  715. nautobot/project-static/docs/models/circuits/circuittermination.html +1427 -174
  716. nautobot/project-static/docs/models/circuits/circuittype.html +1427 -174
  717. nautobot/project-static/docs/models/circuits/provider.html +1427 -174
  718. nautobot/project-static/docs/models/circuits/providernetwork.html +1427 -174
  719. nautobot/project-static/docs/models/dcim/cable.html +1458 -174
  720. nautobot/project-static/docs/models/dcim/consoleport.html +1427 -174
  721. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1427 -174
  722. nautobot/project-static/docs/models/dcim/consoleserverport.html +1427 -174
  723. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1427 -174
  724. nautobot/project-static/docs/models/dcim/device.html +1431 -174
  725. nautobot/project-static/docs/models/dcim/devicebay.html +1427 -174
  726. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1427 -174
  727. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1522 -177
  728. nautobot/project-static/docs/models/dcim/devicetype.html +1427 -174
  729. nautobot/project-static/docs/models/dcim/frontport.html +1427 -174
  730. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1427 -174
  731. nautobot/project-static/docs/models/dcim/interface.html +1427 -174
  732. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1427 -174
  733. nautobot/project-static/docs/models/dcim/inventoryitem.html +1427 -174
  734. nautobot/project-static/docs/models/dcim/location.html +1427 -174
  735. nautobot/project-static/docs/models/dcim/locationtype.html +1427 -174
  736. nautobot/project-static/docs/models/dcim/manufacturer.html +1427 -174
  737. nautobot/project-static/docs/models/dcim/platform.html +1427 -174
  738. nautobot/project-static/docs/models/dcim/powerfeed.html +1425 -172
  739. nautobot/project-static/docs/models/dcim/poweroutlet.html +1427 -174
  740. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1427 -174
  741. nautobot/project-static/docs/models/dcim/powerpanel.html +1425 -172
  742. nautobot/project-static/docs/models/dcim/powerport.html +1427 -174
  743. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1427 -174
  744. nautobot/project-static/docs/models/dcim/rack.html +1427 -174
  745. nautobot/project-static/docs/models/dcim/rackgroup.html +1427 -174
  746. nautobot/project-static/docs/models/dcim/rackreservation.html +1427 -174
  747. nautobot/project-static/docs/models/dcim/rearport.html +1427 -174
  748. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1427 -174
  749. nautobot/project-static/docs/models/dcim/region.html +1401 -170
  750. nautobot/project-static/docs/models/dcim/site.html +1401 -170
  751. nautobot/project-static/docs/models/dcim/virtualchassis.html +1425 -172
  752. nautobot/project-static/docs/models/extras/computedfield.html +1393 -194
  753. nautobot/project-static/docs/models/extras/configcontext.html +1465 -174
  754. nautobot/project-static/docs/models/extras/configcontextschema.html +1421 -168
  755. nautobot/project-static/docs/models/extras/customfield.html +1389 -190
  756. nautobot/project-static/docs/models/extras/customlink.html +1389 -190
  757. nautobot/project-static/docs/models/extras/dynamicgroup.html +1398 -199
  758. nautobot/project-static/docs/models/extras/exporttemplate.html +1389 -190
  759. nautobot/project-static/docs/models/extras/gitrepository.html +1393 -190
  760. nautobot/project-static/docs/models/extras/graphqlquery.html +1469 -171
  761. nautobot/project-static/docs/models/extras/imageattachment.html +1434 -181
  762. nautobot/project-static/docs/models/extras/job.html +1411 -157
  763. nautobot/project-static/docs/models/extras/jobbutton.html +1410 -207
  764. nautobot/project-static/docs/models/extras/jobhook.html +1397 -194
  765. nautobot/project-static/docs/models/extras/joblogentry.html +1408 -155
  766. nautobot/project-static/docs/models/extras/jobresult.html +1417 -159
  767. nautobot/project-static/docs/models/extras/note.html +1389 -190
  768. nautobot/project-static/docs/models/extras/relationship.html +1391 -192
  769. nautobot/project-static/docs/models/extras/role.html +1495 -198
  770. nautobot/project-static/docs/models/extras/secret.html +1492 -201
  771. nautobot/project-static/docs/models/extras/secretsgroup.html +1410 -157
  772. nautobot/project-static/docs/models/extras/status.html +1381 -221
  773. nautobot/project-static/docs/models/extras/tag.html +1389 -190
  774. nautobot/project-static/docs/models/extras/webhook.html +1389 -190
  775. nautobot/project-static/docs/models/ipam/ipaddress.html +1488 -200
  776. nautobot/project-static/docs/models/ipam/prefix.html +1410 -157
  777. nautobot/project-static/docs/models/ipam/rir.html +1410 -157
  778. nautobot/project-static/docs/models/ipam/routetarget.html +1410 -157
  779. nautobot/project-static/docs/models/ipam/service.html +1410 -157
  780. nautobot/project-static/docs/models/ipam/vlan.html +1410 -157
  781. nautobot/project-static/docs/models/ipam/vlangroup.html +1410 -157
  782. nautobot/project-static/docs/models/ipam/vrf.html +1410 -161
  783. nautobot/project-static/docs/models/tenancy/tenant.html +1412 -159
  784. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1412 -159
  785. nautobot/project-static/docs/models/users/objectpermission.html +1462 -171
  786. nautobot/project-static/docs/models/users/token.html +1410 -157
  787. nautobot/project-static/docs/models/virtualization/cluster.html +1410 -157
  788. nautobot/project-static/docs/models/virtualization/clustergroup.html +1410 -157
  789. nautobot/project-static/docs/models/virtualization/clustertype.html +1410 -157
  790. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1414 -157
  791. nautobot/project-static/docs/models/virtualization/vminterface.html +1410 -157
  792. nautobot/project-static/docs/objects.inv +0 -0
  793. nautobot/project-static/docs/plugins/development.html +1916 -646
  794. nautobot/project-static/docs/plugins/index.html +1389 -190
  795. nautobot/project-static/docs/plugins/porting-from-netbox.html +1389 -190
  796. nautobot/project-static/docs/release-notes/index.html +1389 -190
  797. nautobot/project-static/docs/release-notes/version-1.0.html +1389 -190
  798. nautobot/project-static/docs/release-notes/version-1.1.html +1389 -190
  799. nautobot/project-static/docs/release-notes/version-1.2.html +1389 -190
  800. nautobot/project-static/docs/release-notes/version-1.3.html +1389 -190
  801. nautobot/project-static/docs/release-notes/version-1.4.html +1389 -190
  802. nautobot/project-static/docs/release-notes/version-1.5.html +2016 -397
  803. nautobot/project-static/docs/release-notes/version-2.0.html +1935 -287
  804. nautobot/project-static/docs/requirements.txt +5 -4
  805. nautobot/project-static/docs/rest-api/authentication.html +1389 -190
  806. nautobot/project-static/docs/rest-api/filtering.html +1389 -190
  807. nautobot/project-static/docs/rest-api/overview.html +2002 -576
  808. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  809. nautobot/project-static/docs/search/search_index.json +1 -1
  810. nautobot/project-static/docs/sitemap.xml +197 -187
  811. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  812. nautobot/project-static/docs/user-guides/custom-fields.html +1390 -191
  813. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1392 -193
  814. nautobot/project-static/docs/user-guides/getting-started/index.html +1388 -189
  815. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1388 -189
  816. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1386 -187
  817. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1448 -249
  818. nautobot/project-static/docs/user-guides/getting-started/regions.html +1411 -212
  819. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1395 -196
  820. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1448 -249
  821. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1448 -249
  822. nautobot/project-static/docs/user-guides/git-data-source.html +1405 -206
  823. nautobot/project-static/docs/user-guides/graphql.html +1402 -203
  824. nautobot/project-static/docs/user-guides/relationships.html +1448 -249
  825. nautobot/project-static/docs/user-guides/s3-django-storage.html +1448 -249
  826. nautobot/project-static/js/forms.js +16 -9
  827. nautobot/project-static/js/theme.js +5 -0
  828. nautobot/tenancy/api/serializers.py +4 -34
  829. nautobot/tenancy/api/urls.py +1 -1
  830. nautobot/tenancy/filters/__init__.py +9 -7
  831. nautobot/tenancy/filters/mixins.py +3 -2
  832. nautobot/tenancy/forms.py +3 -36
  833. nautobot/tenancy/migrations/0001_initial.py +0 -1
  834. nautobot/tenancy/migrations/0002_auto_slug.py +0 -1
  835. nautobot/tenancy/migrations/0003_mptt_to_tree_queries.py +0 -1
  836. nautobot/tenancy/migrations/0004_change_tree_manager_on_tree_models.py +0 -1
  837. nautobot/tenancy/migrations/0005_rename_foreign_keys_and_related_names.py +0 -1
  838. nautobot/tenancy/migrations/0006_created_datetime.py +0 -1
  839. nautobot/tenancy/migrations/0007_remove_tenant_tenantgroup_slug.py +20 -0
  840. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  841. nautobot/tenancy/models.py +0 -30
  842. nautobot/tenancy/navigation.py +6 -39
  843. nautobot/tenancy/tables.py +4 -4
  844. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  845. nautobot/tenancy/templates/tenancy/tenant_edit.html +0 -1
  846. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  847. nautobot/tenancy/tests/test_api.py +1 -12
  848. nautobot/tenancy/tests/test_filters.py +20 -12
  849. nautobot/tenancy/tests/test_views.py +11 -29
  850. nautobot/tenancy/urls.py +10 -10
  851. nautobot/tenancy/views.py +0 -3
  852. nautobot/ui/.eslintignore +6 -0
  853. nautobot/ui/.gitignore +10 -0
  854. nautobot/ui/.prettierignore +9 -0
  855. nautobot/ui/.prettierrc +4 -0
  856. nautobot/ui/README.md +33 -0
  857. nautobot/ui/app_imports.js.j2 +7 -0
  858. nautobot/ui/craco.config.js +46 -0
  859. nautobot/ui/jsconfig-base.json +11 -0
  860. nautobot/ui/jsconfig.json +5 -0
  861. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  862. nautobot/ui/package-lock.json +21451 -0
  863. nautobot/ui/package.json +70 -0
  864. nautobot/ui/public/index.html +47 -0
  865. nautobot/ui/public/logo192.png +0 -0
  866. nautobot/ui/public/logo512.png +0 -0
  867. nautobot/ui/public/manifest.json +25 -0
  868. nautobot/ui/public/nautobot_logo.svg +131 -0
  869. nautobot/ui/public/robots.txt +3 -0
  870. nautobot/ui/src/App.js +71 -0
  871. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  872. nautobot/ui/src/components/AppTab.js +40 -0
  873. nautobot/ui/src/components/Apps.js +60 -0
  874. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  875. nautobot/ui/src/components/HomePanel.js +58 -0
  876. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  877. nautobot/ui/src/components/Layout.js +53 -0
  878. nautobot/ui/src/components/LoadingWidget.js +25 -0
  879. nautobot/ui/src/components/Navbar.js +116 -0
  880. nautobot/ui/src/components/NotificationPopover.js +27 -0
  881. nautobot/ui/src/components/ObjectListTable.js +209 -0
  882. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  883. nautobot/ui/src/components/RouterButton.js +10 -0
  884. nautobot/ui/src/components/RouterLink.js +10 -0
  885. nautobot/ui/src/components/SidebarNav.js +147 -0
  886. nautobot/ui/src/components/Table.js +48 -0
  887. nautobot/ui/src/components/TableItem.js +71 -0
  888. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  889. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  890. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  891. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  892. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  893. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  894. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  895. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  896. nautobot/ui/src/components/pagination.js +93 -0
  897. nautobot/ui/src/components/paginator.js +79 -0
  898. nautobot/ui/src/components/paginator_form.js +43 -0
  899. nautobot/ui/src/components/usePagination.js +57 -0
  900. nautobot/ui/src/constants/apiPath.js +10 -0
  901. nautobot/ui/src/constants/icons.js +15 -0
  902. nautobot/ui/src/constants/size.js +15 -0
  903. nautobot/ui/src/index.js +65 -0
  904. nautobot/ui/src/reportWebVitals.js +15 -0
  905. nautobot/ui/src/router.js +77 -0
  906. nautobot/ui/src/utils/api.js +131 -0
  907. nautobot/ui/src/utils/app-import.js +15 -0
  908. nautobot/ui/src/utils/color.js +15 -0
  909. nautobot/ui/src/utils/date.js +14 -0
  910. nautobot/ui/src/utils/index.js +15 -0
  911. nautobot/ui/src/utils/navigation.js +32 -0
  912. nautobot/ui/src/utils/session.js +64 -0
  913. nautobot/ui/src/utils/store.js +242 -0
  914. nautobot/ui/src/utils/string.js +6 -0
  915. nautobot/ui/src/utils/url.js +4 -0
  916. nautobot/ui/src/views/Home.js +138 -0
  917. nautobot/ui/src/views/InstalledApps.js +80 -0
  918. nautobot/ui/src/views/Login.js +48 -0
  919. nautobot/ui/src/views/Logout.js +20 -0
  920. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  921. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  922. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  923. nautobot/ui/src/views/generic/GenericView.js +142 -0
  924. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  925. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  926. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  927. nautobot/users/admin.py +1 -1
  928. nautobot/users/api/serializers.py +51 -61
  929. nautobot/users/api/urls.py +1 -1
  930. nautobot/users/api/views.py +53 -2
  931. nautobot/users/migrations/0001_initial.py +0 -1
  932. nautobot/users/migrations/0002_token_ordering_by_created.py +0 -1
  933. nautobot/users/migrations/0003_alter_user_options.py +0 -1
  934. nautobot/users/migrations/0004_alter_user_managers.py +0 -1
  935. nautobot/users/tests/test_api.py +109 -28
  936. nautobot/users/tests/test_filters.py +0 -4
  937. nautobot/users/tests/test_models.py +0 -1
  938. nautobot/users/views.py +0 -7
  939. nautobot/virtualization/api/serializers.py +18 -132
  940. nautobot/virtualization/api/urls.py +1 -1
  941. nautobot/virtualization/api/views.py +1 -22
  942. nautobot/virtualization/choices.py +0 -2
  943. nautobot/virtualization/filters.py +12 -7
  944. nautobot/virtualization/forms.py +21 -117
  945. nautobot/virtualization/migrations/0001_initial.py +0 -1
  946. nautobot/virtualization/migrations/0002_virtualmachine_local_context_schema.py +0 -1
  947. nautobot/virtualization/migrations/0003_vminterface_verbose_name.py +0 -1
  948. nautobot/virtualization/migrations/0004_auto_slug.py +0 -1
  949. nautobot/virtualization/migrations/0005_add_natural_indexing.py +0 -1
  950. nautobot/virtualization/migrations/0006_vminterface_status.py +0 -1
  951. nautobot/virtualization/migrations/0007_vminterface_status_data_migration.py +0 -1
  952. nautobot/virtualization/migrations/0008_vminterface_parent.py +0 -1
  953. nautobot/virtualization/migrations/0009_cluster_location.py +0 -1
  954. nautobot/virtualization/migrations/0010_vminterface_mac_address_data_migration.py +0 -1
  955. nautobot/virtualization/migrations/0011_alter_vminterface_mac_address.py +0 -1
  956. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -2
  957. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -12
  958. nautobot/virtualization/migrations/0014_rename_virtualmachine_roles.py +0 -1
  959. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -2
  960. nautobot/virtualization/migrations/0016_remove_site_foreign_key_from_cluster_class.py +0 -1
  961. nautobot/virtualization/migrations/0017_created_datetime.py +0 -1
  962. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -2
  963. nautobot/virtualization/migrations/0019_vminterface_ip_addresses_m2m.py +0 -1
  964. nautobot/virtualization/migrations/0020_remove_clustergroup_clustertype_slug.py +20 -0
  965. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  966. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  967. nautobot/virtualization/migrations/0023_ipam__namespaces.py +25 -0
  968. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  969. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  970. nautobot/virtualization/models.py +39 -131
  971. nautobot/virtualization/navigation.py +18 -99
  972. nautobot/virtualization/tables.py +4 -4
  973. nautobot/virtualization/templates/virtualization/virtualmachine.html +13 -2
  974. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  975. nautobot/virtualization/tests/test_api.py +42 -52
  976. nautobot/virtualization/tests/test_filters.py +98 -75
  977. nautobot/virtualization/tests/test_models.py +36 -13
  978. nautobot/virtualization/tests/test_views.py +68 -73
  979. nautobot/virtualization/urls.py +10 -10
  980. nautobot/virtualization/views.py +8 -14
  981. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +15 -22
  982. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +987 -834
  983. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  984. nautobot/circuits/api/nested_serializers.py +0 -69
  985. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  986. nautobot/dcim/api/nested_serializers.py +0 -356
  987. nautobot/dcim/templates/dcim/device_import.html +0 -5
  988. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  989. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  990. nautobot/extras/api/nested_serializers.py +0 -353
  991. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -42
  992. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -47
  993. nautobot/extras/reports.py +0 -60
  994. nautobot/extras/scripts.py +0 -72
  995. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  996. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  997. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  998. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  999. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  1000. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  1001. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  1002. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  1003. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  1004. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -19
  1005. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  1006. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  1007. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  1008. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  1009. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  1010. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  1011. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  1012. nautobot/ipam/api/nested_serializers.py +0 -143
  1013. nautobot/project-static/docs/assets/javascripts/bundle.5a2dcb6a.min.js +0 -29
  1014. nautobot/project-static/docs/assets/javascripts/bundle.5a2dcb6a.min.js.map +0 -8
  1015. nautobot/project-static/docs/assets/javascripts/extra/bundle.5f09fbc3.min.js +0 -18
  1016. nautobot/project-static/docs/assets/javascripts/extra/bundle.5f09fbc3.min.js.map +0 -8
  1017. nautobot/project-static/docs/assets/stylesheets/extra.0d2c79a8.min.css +0 -1
  1018. nautobot/project-static/docs/assets/stylesheets/extra.0d2c79a8.min.css.map +0 -1
  1019. nautobot/project-static/docs/assets/stylesheets/main.975780f9.min.css +0 -1
  1020. nautobot/project-static/docs/assets/stylesheets/main.975780f9.min.css.map +0 -1
  1021. nautobot/project-static/docs/assets/stylesheets/palette.2505c338.min.css +0 -1
  1022. nautobot/project-static/docs/assets/stylesheets/palette.2505c338.min.css.map +0 -1
  1023. nautobot/tenancy/api/nested_serializers.py +0 -31
  1024. nautobot/users/api/nested_serializers.py +0 -67
  1025. nautobot/virtualization/api/nested_serializers.py +0 -65
  1026. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  1027. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  1028. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  1029. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -10,8 +10,14 @@
10
10
 
11
11
  <link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/configuration/optional-settings.html">
12
12
 
13
+
14
+ <link rel="prev" href="required-settings.html">
15
+
16
+
17
+ <link rel="next" href="authentication/ldap.html">
18
+
13
19
  <link rel="icon" href="../assets/favicon.ico">
14
- <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.5.10">
20
+ <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.1.6">
15
21
 
16
22
 
17
23
 
@@ -19,11 +25,10 @@
19
25
 
20
26
 
21
27
 
22
- <link rel="stylesheet" href="../assets/stylesheets/main.975780f9.min.css">
28
+ <link rel="stylesheet" href="../assets/stylesheets/main.ded33207.min.css">
23
29
 
24
30
 
25
- <link rel="stylesheet" href="../assets/stylesheets/palette.2505c338.min.css">
26
-
31
+ <link rel="stylesheet" href="../assets/stylesheets/palette.a0c5b2b5.min.css">
27
32
 
28
33
 
29
34
 
@@ -86,7 +91,7 @@
86
91
 
87
92
 
88
93
 
89
- <header class="md-header md-header--lifted" data-md-component="header">
94
+ <header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
90
95
  <nav class="md-header__inner md-grid" aria-label="Header">
91
96
  <a href="../index.html" title="Nautobot Documentation" class="md-header__button md-logo" aria-label="Nautobot Documentation" data-md-component="logo">
92
97
 
@@ -116,8 +121,6 @@
116
121
  <form class="md-header__option" data-md-component="palette">
117
122
 
118
123
 
119
-
120
-
121
124
  <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
122
125
 
123
126
  <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
@@ -126,8 +129,6 @@
126
129
 
127
130
 
128
131
 
129
-
130
-
131
132
  <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
132
133
 
133
134
  <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
@@ -171,7 +172,7 @@
171
172
  <div class="md-search-result__meta">
172
173
  Initializing search
173
174
  </div>
174
- <ol class="md-search-result__list"></ol>
175
+ <ol class="md-search-result__list" role="presentation"></ol>
175
176
  </div>
176
177
  </div>
177
178
  </div>
@@ -183,7 +184,7 @@
183
184
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
184
185
  <div class="md-source__icon md-icon">
185
186
 
186
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
188
  </div>
188
189
  <div class="md-source__repository">
189
190
  GitHub
@@ -196,7 +197,7 @@
196
197
 
197
198
 
198
199
  <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
199
- <div class="md-tabs__inner md-grid">
200
+ <div class="md-grid">
200
201
  <ul class="md-tabs__list">
201
202
 
202
203
 
@@ -351,7 +352,7 @@
351
352
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
352
353
  <div class="md-source__icon md-icon">
353
354
 
354
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
356
  </div>
356
357
  <div class="md-source__repository">
357
358
  GitHub
@@ -389,17 +390,18 @@
389
390
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
390
391
 
391
392
 
392
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
393
393
 
394
394
 
395
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
396
+
395
397
 
396
398
 
397
- <label class="md-nav__link" for="__nav_2">
399
+ <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
398
400
  Documentation
399
401
  <span class="md-nav__icon md-icon"></span>
400
402
  </label>
401
403
 
402
- <nav class="md-nav" aria-label="Documentation" data-md-level="1">
404
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
403
405
  <label class="md-nav__title" for="__nav_2">
404
406
  <span class="md-nav__icon md-icon"></span>
405
407
  Documentation
@@ -415,17 +417,18 @@
415
417
  <li class="md-nav__item md-nav__item--nested">
416
418
 
417
419
 
418
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" >
419
420
 
420
421
 
422
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
421
423
 
422
424
 
423
- <label class="md-nav__link" for="__nav_2_1">
425
+
426
+ <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
424
427
  Installation
425
428
  <span class="md-nav__icon md-icon"></span>
426
429
  </label>
427
430
 
428
- <nav class="md-nav" aria-label="Installation" data-md-level="2">
431
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
429
432
  <label class="md-nav__title" for="__nav_2_1">
430
433
  <span class="md-nav__icon md-icon"></span>
431
434
  Installation
@@ -532,17 +535,18 @@
532
535
  <li class="md-nav__item md-nav__item--nested">
533
536
 
534
537
 
535
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
536
538
 
537
539
 
540
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
541
+
538
542
 
539
543
 
540
- <label class="md-nav__link" for="__nav_2_2">
544
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
541
545
  Migration
542
546
  <span class="md-nav__icon md-icon"></span>
543
547
  </label>
544
548
 
545
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
549
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
546
550
  <label class="md-nav__title" for="__nav_2_2">
547
551
  <span class="md-nav__icon md-icon"></span>
548
552
  Migration
@@ -637,17 +641,18 @@
637
641
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
638
642
 
639
643
 
640
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" checked>
641
644
 
642
645
 
646
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" checked>
643
647
 
644
648
 
645
- <label class="md-nav__link" for="__nav_2_3">
649
+
650
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
646
651
  Configuration
647
652
  <span class="md-nav__icon md-icon"></span>
648
653
  </label>
649
654
 
650
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
655
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="true">
651
656
  <label class="md-nav__title" for="__nav_2_3">
652
657
  <span class="md-nav__icon md-icon"></span>
653
658
  Configuration
@@ -691,7 +696,7 @@
691
696
 
692
697
  <li class="md-nav__item md-nav__item--active">
693
698
 
694
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
699
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
695
700
 
696
701
 
697
702
 
@@ -789,27 +794,6 @@
789
794
  BRANDING_URLS
790
795
  </a>
791
796
 
792
- </li>
793
-
794
- <li class="md-nav__item">
795
- <a href="#cacheops_defaults" class="md-nav__link">
796
- CACHEOPS_DEFAULTS
797
- </a>
798
-
799
- </li>
800
-
801
- <li class="md-nav__item">
802
- <a href="#cacheops_enabled" class="md-nav__link">
803
- CACHEOPS_ENABLED
804
- </a>
805
-
806
- </li>
807
-
808
- <li class="md-nav__item">
809
- <a href="#cacheops_health_check_enabled" class="md-nav__link">
810
- CACHEOPS_HEALTH_CHECK_ENABLED
811
- </a>
812
-
813
797
  </li>
814
798
 
815
799
  <li class="md-nav__item">
@@ -855,50 +839,50 @@
855
839
  </li>
856
840
 
857
841
  <li class="md-nav__item">
858
- <a href="#changelog_retention" class="md-nav__link">
859
- CHANGELOG_RETENTION
842
+ <a href="#celery_worker_redirect_stdouts" class="md-nav__link">
843
+ CELERY_WORKER_REDIRECT_STDOUTS
860
844
  </a>
861
845
 
862
846
  </li>
863
847
 
864
848
  <li class="md-nav__item">
865
- <a href="#config_context_dynamic_groups_enalbed" class="md-nav__link">
866
- CONFIG_CONTEXT_DYNAMIC_GROUPS_ENALBED
849
+ <a href="#celery_worker_redirect_stdouts_level" class="md-nav__link">
850
+ CELERY_WORKER_REDIRECT_STDOUTS_LEVEL
867
851
  </a>
868
852
 
869
853
  </li>
870
854
 
871
855
  <li class="md-nav__item">
872
- <a href="#cors_allow_all_origins" class="md-nav__link">
873
- CORS_ALLOW_ALL_ORIGINS
856
+ <a href="#changelog_retention" class="md-nav__link">
857
+ CHANGELOG_RETENTION
874
858
  </a>
875
859
 
876
860
  </li>
877
861
 
878
862
  <li class="md-nav__item">
879
- <a href="#cors_allowed_origins" class="md-nav__link">
880
- CORS_ALLOWED_ORIGINS
863
+ <a href="#config_context_dynamic_groups_enalbed" class="md-nav__link">
864
+ CONFIG_CONTEXT_DYNAMIC_GROUPS_ENALBED
881
865
  </a>
882
866
 
883
867
  </li>
884
868
 
885
869
  <li class="md-nav__item">
886
- <a href="#cors_allowed_origin_regexes" class="md-nav__link">
887
- CORS_ALLOWED_ORIGIN_REGEXES
870
+ <a href="#cors_allow_all_origins" class="md-nav__link">
871
+ CORS_ALLOW_ALL_ORIGINS
888
872
  </a>
889
873
 
890
874
  </li>
891
875
 
892
876
  <li class="md-nav__item">
893
- <a href="#disable_prefix_list_hierarchy" class="md-nav__link">
894
- DISABLE_PREFIX_LIST_HIERARCHY
877
+ <a href="#cors_allowed_origins" class="md-nav__link">
878
+ CORS_ALLOWED_ORIGINS
895
879
  </a>
896
880
 
897
881
  </li>
898
882
 
899
883
  <li class="md-nav__item">
900
- <a href="#enforce_global_unique" class="md-nav__link">
901
- ENFORCE_GLOBAL_UNIQUE
884
+ <a href="#cors_allowed_origin_regexes" class="md-nav__link">
885
+ CORS_ALLOWED_ORIGIN_REGEXES
902
886
  </a>
903
887
 
904
888
  </li>
@@ -1350,17 +1334,18 @@
1350
1334
  <li class="md-nav__item md-nav__item--nested">
1351
1335
 
1352
1336
 
1353
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
1354
1337
 
1355
1338
 
1339
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
1356
1340
 
1357
1341
 
1358
- <label class="md-nav__link" for="__nav_2_4">
1342
+
1343
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
1359
1344
  External Authentication
1360
1345
  <span class="md-nav__icon md-icon"></span>
1361
1346
  </label>
1362
1347
 
1363
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
1348
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
1364
1349
  <label class="md-nav__title" for="__nav_2_4">
1365
1350
  <span class="md-nav__icon md-icon"></span>
1366
1351
  External Authentication
@@ -1425,17 +1410,18 @@
1425
1410
  <li class="md-nav__item md-nav__item--nested">
1426
1411
 
1427
1412
 
1428
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
1429
1413
 
1430
1414
 
1415
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
1416
+
1431
1417
 
1432
1418
 
1433
- <label class="md-nav__link" for="__nav_2_5">
1419
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
1434
1420
  Administration
1435
1421
  <span class="md-nav__icon md-icon"></span>
1436
1422
  </label>
1437
1423
 
1438
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
1424
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
1439
1425
  <label class="md-nav__title" for="__nav_2_5">
1440
1426
  <span class="md-nav__icon md-icon"></span>
1441
1427
  Administration
@@ -1528,17 +1514,18 @@
1528
1514
  <li class="md-nav__item md-nav__item--nested">
1529
1515
 
1530
1516
 
1531
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
1532
1517
 
1533
1518
 
1519
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1534
1520
 
1535
1521
 
1536
- <label class="md-nav__link" for="__nav_2_6">
1522
+
1523
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1537
1524
  User Guides
1538
1525
  <span class="md-nav__icon md-icon"></span>
1539
1526
  </label>
1540
1527
 
1541
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
1528
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1542
1529
  <label class="md-nav__title" for="__nav_2_6">
1543
1530
  <span class="md-nav__icon md-icon"></span>
1544
1531
  User Guides
@@ -1719,8 +1706,1115 @@
1719
1706
 
1720
1707
 
1721
1708
  <li class="md-nav__item">
1722
- <a href="../user-guides/graphql.html" class="md-nav__link">
1723
- GraphQL
1709
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1710
+ GraphQL
1711
+ </a>
1712
+ </li>
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+ <li class="md-nav__item">
1723
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1724
+ Relationships
1725
+ </a>
1726
+ </li>
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+ <li class="md-nav__item">
1737
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1738
+ Django Storages with S3
1739
+ </a>
1740
+ </li>
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+ <li class="md-nav__item">
1751
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1752
+ VLANS and VLAN Groups
1753
+ </a>
1754
+ </li>
1755
+
1756
+
1757
+
1758
+
1759
+ </ul>
1760
+ </nav>
1761
+ </li>
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+ <li class="md-nav__item md-nav__item--nested">
1773
+
1774
+
1775
+
1776
+
1777
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1778
+
1779
+
1780
+
1781
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1782
+ Core Functionality
1783
+ <span class="md-nav__icon md-icon"></span>
1784
+ </label>
1785
+
1786
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1787
+ <label class="md-nav__title" for="__nav_2_7">
1788
+ <span class="md-nav__icon md-icon"></span>
1789
+ Core Functionality
1790
+ </label>
1791
+ <ul class="md-nav__list" data-md-scrollfix>
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+ <li class="md-nav__item">
1799
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1800
+ Circuits
1801
+ </a>
1802
+ </li>
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+ <li class="md-nav__item">
1813
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1814
+ Devices and Cabling
1815
+ </a>
1816
+ </li>
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+ <li class="md-nav__item">
1827
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1828
+ Device Types
1829
+ </a>
1830
+ </li>
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+ <li class="md-nav__item">
1841
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1842
+ IP Address Management
1843
+ </a>
1844
+ </li>
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+ <li class="md-nav__item">
1855
+ <a href="../core-functionality/power.html" class="md-nav__link">
1856
+ Power Tracking
1857
+ </a>
1858
+ </li>
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+ <li class="md-nav__item">
1869
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1870
+ Secrets
1871
+ </a>
1872
+ </li>
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+ <li class="md-nav__item">
1883
+ <a href="../core-functionality/services.html" class="md-nav__link">
1884
+ Service Mapping
1885
+ </a>
1886
+ </li>
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+ <li class="md-nav__item">
1897
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1898
+ Sites, Locations, and Racks
1899
+ </a>
1900
+ </li>
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+ <li class="md-nav__item">
1911
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1912
+ Tenancy
1913
+ </a>
1914
+ </li>
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+ <li class="md-nav__item">
1925
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1926
+ Virtualization
1927
+ </a>
1928
+ </li>
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+ <li class="md-nav__item">
1939
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1940
+ VLAN Management
1941
+ </a>
1942
+ </li>
1943
+
1944
+
1945
+
1946
+
1947
+ </ul>
1948
+ </nav>
1949
+ </li>
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+ <li class="md-nav__item md-nav__item--nested">
1961
+
1962
+
1963
+
1964
+
1965
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1966
+
1967
+
1968
+
1969
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1970
+ Model Details
1971
+ <span class="md-nav__icon md-icon"></span>
1972
+ </label>
1973
+
1974
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1975
+ <label class="md-nav__title" for="__nav_2_8">
1976
+ <span class="md-nav__icon md-icon"></span>
1977
+ Model Details
1978
+ </label>
1979
+ <ul class="md-nav__list" data-md-scrollfix>
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+ <li class="md-nav__item md-nav__item--nested">
1988
+
1989
+
1990
+
1991
+
1992
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1993
+
1994
+
1995
+
1996
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1997
+ Circuits
1998
+ <span class="md-nav__icon md-icon"></span>
1999
+ </label>
2000
+
2001
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
2002
+ <label class="md-nav__title" for="__nav_2_8_1">
2003
+ <span class="md-nav__icon md-icon"></span>
2004
+ Circuits
2005
+ </label>
2006
+ <ul class="md-nav__list" data-md-scrollfix>
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+ <li class="md-nav__item">
2014
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
2015
+ Circuit
2016
+ </a>
2017
+ </li>
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+ <li class="md-nav__item">
2028
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
2029
+ Circuit Termination
2030
+ </a>
2031
+ </li>
2032
+
2033
+
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+ <li class="md-nav__item">
2042
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
2043
+ Circuit Type
2044
+ </a>
2045
+ </li>
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+ <li class="md-nav__item">
2056
+ <a href="../models/circuits/provider.html" class="md-nav__link">
2057
+ Circuit Provider
2058
+ </a>
2059
+ </li>
2060
+
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+ <li class="md-nav__item">
2070
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
2071
+ Circuit Provider Network
2072
+ </a>
2073
+ </li>
2074
+
2075
+
2076
+
2077
+
2078
+ </ul>
2079
+ </nav>
2080
+ </li>
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+ <li class="md-nav__item md-nav__item--nested">
2092
+
2093
+
2094
+
2095
+
2096
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
2097
+
2098
+
2099
+
2100
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
2101
+ DCIM
2102
+ <span class="md-nav__icon md-icon"></span>
2103
+ </label>
2104
+
2105
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
2106
+ <label class="md-nav__title" for="__nav_2_8_2">
2107
+ <span class="md-nav__icon md-icon"></span>
2108
+ DCIM
2109
+ </label>
2110
+ <ul class="md-nav__list" data-md-scrollfix>
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+ <li class="md-nav__item">
2118
+ <a href="../models/dcim/cable.html" class="md-nav__link">
2119
+ Cable
2120
+ </a>
2121
+ </li>
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+ <li class="md-nav__item">
2132
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
2133
+ Console Port
2134
+ </a>
2135
+ </li>
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+ <li class="md-nav__item">
2146
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
2147
+ Console Port Template
2148
+ </a>
2149
+ </li>
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+ <li class="md-nav__item">
2160
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
2161
+ Console Server Port
2162
+ </a>
2163
+ </li>
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+ <li class="md-nav__item">
2174
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
2175
+ Console Server Port Template
2176
+ </a>
2177
+ </li>
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+ <li class="md-nav__item">
2188
+ <a href="../models/dcim/device.html" class="md-nav__link">
2189
+ Device
2190
+ </a>
2191
+ </li>
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+ <li class="md-nav__item">
2202
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
2203
+ Device Bay
2204
+ </a>
2205
+ </li>
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+ <li class="md-nav__item">
2216
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
2217
+ Device Bay Template
2218
+ </a>
2219
+ </li>
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+ <li class="md-nav__item">
2230
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
2231
+ Device Redundancy Group
2232
+ </a>
2233
+ </li>
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+ <li class="md-nav__item">
2244
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
2245
+ Device Type
2246
+ </a>
2247
+ </li>
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+ <li class="md-nav__item">
2258
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
2259
+ Front Port
2260
+ </a>
2261
+ </li>
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+ <li class="md-nav__item">
2272
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
2273
+ Front Port Template
2274
+ </a>
2275
+ </li>
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+ <li class="md-nav__item">
2286
+ <a href="../models/dcim/interface.html" class="md-nav__link">
2287
+ Interface
2288
+ </a>
2289
+ </li>
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+ <li class="md-nav__item">
2300
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
2301
+ Interface Template
2302
+ </a>
2303
+ </li>
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+ <li class="md-nav__item">
2314
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
2315
+ Inventory Item
2316
+ </a>
2317
+ </li>
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+ <li class="md-nav__item">
2328
+ <a href="../models/dcim/location.html" class="md-nav__link">
2329
+ Location
2330
+ </a>
2331
+ </li>
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+ <li class="md-nav__item">
2342
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
2343
+ Location Type
2344
+ </a>
2345
+ </li>
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+ <li class="md-nav__item">
2356
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
2357
+ Manufacturer
2358
+ </a>
2359
+ </li>
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+ <li class="md-nav__item">
2370
+ <a href="../models/dcim/platform.html" class="md-nav__link">
2371
+ Platform
2372
+ </a>
2373
+ </li>
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+ <li class="md-nav__item">
2384
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
2385
+ Power Feed
2386
+ </a>
2387
+ </li>
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+ <li class="md-nav__item">
2398
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
2399
+ Power Outlet
2400
+ </a>
2401
+ </li>
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+ <li class="md-nav__item">
2412
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
2413
+ Power Outlet Template
2414
+ </a>
2415
+ </li>
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+ <li class="md-nav__item">
2426
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
2427
+ Power Panel
2428
+ </a>
2429
+ </li>
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+ <li class="md-nav__item">
2440
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
2441
+ Power Port
2442
+ </a>
2443
+ </li>
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+ <li class="md-nav__item">
2454
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
2455
+ Power Port Template
2456
+ </a>
2457
+ </li>
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+ <li class="md-nav__item">
2468
+ <a href="../models/dcim/rack.html" class="md-nav__link">
2469
+ Rack
2470
+ </a>
2471
+ </li>
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+ <li class="md-nav__item">
2482
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
2483
+ Rack Group
2484
+ </a>
2485
+ </li>
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+ <li class="md-nav__item">
2496
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
2497
+ Rack Reservation
2498
+ </a>
2499
+ </li>
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+ <li class="md-nav__item">
2510
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2511
+ Rear Port
2512
+ </a>
2513
+ </li>
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2522
+
2523
+ <li class="md-nav__item">
2524
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2525
+ Rear Port Template
2526
+ </a>
2527
+ </li>
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+ <li class="md-nav__item">
2538
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2539
+ Virtual Chassis
2540
+ </a>
2541
+ </li>
2542
+
2543
+
2544
+
2545
+
2546
+ </ul>
2547
+ </nav>
2548
+ </li>
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+ <li class="md-nav__item md-nav__item--nested">
2560
+
2561
+
2562
+
2563
+
2564
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
2565
+
2566
+
2567
+
2568
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2569
+ Extras
2570
+ <span class="md-nav__icon md-icon"></span>
2571
+ </label>
2572
+
2573
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2574
+ <label class="md-nav__title" for="__nav_2_8_3">
2575
+ <span class="md-nav__icon md-icon"></span>
2576
+ Extras
2577
+ </label>
2578
+ <ul class="md-nav__list" data-md-scrollfix>
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+ <li class="md-nav__item">
2586
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2587
+ Config Context
2588
+ </a>
2589
+ </li>
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+ <li class="md-nav__item">
2600
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2601
+ Config Context Schema
2602
+ </a>
2603
+ </li>
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+ <li class="md-nav__item">
2614
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2615
+ GraphQL Query
2616
+ </a>
2617
+ </li>
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+ <li class="md-nav__item">
2628
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2629
+ Image Attachment
2630
+ </a>
2631
+ </li>
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+ <li class="md-nav__item">
2642
+ <a href="../models/extras/job.html" class="md-nav__link">
2643
+ Job
2644
+ </a>
2645
+ </li>
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+ <li class="md-nav__item">
2656
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2657
+ Job Log Entry
2658
+ </a>
2659
+ </li>
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+ <li class="md-nav__item">
2670
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2671
+ Job Result
2672
+ </a>
2673
+ </li>
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+ <li class="md-nav__item">
2684
+ <a href="../models/extras/role.html" class="md-nav__link">
2685
+ Role
2686
+ </a>
2687
+ </li>
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+ <li class="md-nav__item">
2698
+ <a href="../models/extras/secret.html" class="md-nav__link">
2699
+ Secret
2700
+ </a>
2701
+ </li>
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+ <li class="md-nav__item">
2712
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2713
+ Secrets group
2714
+ </a>
2715
+ </li>
2716
+
2717
+
2718
+
2719
+
2720
+ </ul>
2721
+ </nav>
2722
+ </li>
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+ <li class="md-nav__item md-nav__item--nested">
2734
+
2735
+
2736
+
2737
+
2738
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2739
+
2740
+
2741
+
2742
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2743
+ IPAM
2744
+ <span class="md-nav__icon md-icon"></span>
2745
+ </label>
2746
+
2747
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2748
+ <label class="md-nav__title" for="__nav_2_8_4">
2749
+ <span class="md-nav__icon md-icon"></span>
2750
+ IPAM
2751
+ </label>
2752
+ <ul class="md-nav__list" data-md-scrollfix>
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+ <li class="md-nav__item">
2760
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2761
+ IP Address
2762
+ </a>
2763
+ </li>
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+ <li class="md-nav__item">
2774
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2775
+ Prefix
2776
+ </a>
2777
+ </li>
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+ <li class="md-nav__item">
2788
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2789
+ Rir
2790
+ </a>
2791
+ </li>
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+ <li class="md-nav__item">
2802
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2803
+ Route Target
2804
+ </a>
2805
+ </li>
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+ <li class="md-nav__item">
2816
+ <a href="../models/ipam/service.html" class="md-nav__link">
2817
+ Service
1724
2818
  </a>
1725
2819
  </li>
1726
2820
 
@@ -1733,8 +2827,8 @@
1733
2827
 
1734
2828
 
1735
2829
  <li class="md-nav__item">
1736
- <a href="../user-guides/relationships.html" class="md-nav__link">
1737
- Relationships
2830
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2831
+ VLAN
1738
2832
  </a>
1739
2833
  </li>
1740
2834
 
@@ -1747,8 +2841,8 @@
1747
2841
 
1748
2842
 
1749
2843
  <li class="md-nav__item">
1750
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1751
- Django Storages with S3
2844
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2845
+ VLAN Group
1752
2846
  </a>
1753
2847
  </li>
1754
2848
 
@@ -1761,8 +2855,8 @@
1761
2855
 
1762
2856
 
1763
2857
  <li class="md-nav__item">
1764
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1765
- VLANS and VLAN Groups
2858
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2859
+ VRF
1766
2860
  </a>
1767
2861
  </li>
1768
2862
 
@@ -1785,20 +2879,21 @@
1785
2879
  <li class="md-nav__item md-nav__item--nested">
1786
2880
 
1787
2881
 
1788
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" >
1789
2882
 
1790
2883
 
2884
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1791
2885
 
1792
2886
 
1793
- <label class="md-nav__link" for="__nav_2_7">
1794
- Core Functionality
2887
+
2888
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2889
+ Tenancy
1795
2890
  <span class="md-nav__icon md-icon"></span>
1796
2891
  </label>
1797
2892
 
1798
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1799
- <label class="md-nav__title" for="__nav_2_7">
2893
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2894
+ <label class="md-nav__title" for="__nav_2_8_5">
1800
2895
  <span class="md-nav__icon md-icon"></span>
1801
- Core Functionality
2896
+ Tenancy
1802
2897
  </label>
1803
2898
  <ul class="md-nav__list" data-md-scrollfix>
1804
2899
 
@@ -1808,8 +2903,8 @@
1808
2903
 
1809
2904
 
1810
2905
  <li class="md-nav__item">
1811
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1812
- Circuits
2906
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2907
+ Tenant
1813
2908
  </a>
1814
2909
  </li>
1815
2910
 
@@ -1822,27 +2917,47 @@
1822
2917
 
1823
2918
 
1824
2919
  <li class="md-nav__item">
1825
- <a href="../core-functionality/devices.html" class="md-nav__link">
1826
- Devices and Cabling
2920
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2921
+ Tenant Group
1827
2922
  </a>
1828
2923
  </li>
1829
2924
 
1830
2925
 
1831
2926
 
1832
2927
 
2928
+ </ul>
2929
+ </nav>
2930
+ </li>
2931
+
2932
+
2933
+
2934
+
1833
2935
 
1834
2936
 
1835
2937
 
1836
2938
 
1837
2939
 
1838
- <li class="md-nav__item">
1839
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1840
- Device Types
1841
- </a>
1842
- </li>
1843
-
1844
-
1845
-
2940
+
2941
+ <li class="md-nav__item md-nav__item--nested">
2942
+
2943
+
2944
+
2945
+
2946
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2947
+
2948
+
2949
+
2950
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2951
+ Users
2952
+ <span class="md-nav__icon md-icon"></span>
2953
+ </label>
2954
+
2955
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2956
+ <label class="md-nav__title" for="__nav_2_8_6">
2957
+ <span class="md-nav__icon md-icon"></span>
2958
+ Users
2959
+ </label>
2960
+ <ul class="md-nav__list" data-md-scrollfix>
1846
2961
 
1847
2962
 
1848
2963
 
@@ -1850,8 +2965,8 @@
1850
2965
 
1851
2966
 
1852
2967
  <li class="md-nav__item">
1853
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1854
- IP Address Management
2968
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2969
+ Object Permission
1855
2970
  </a>
1856
2971
  </li>
1857
2972
 
@@ -1864,27 +2979,47 @@
1864
2979
 
1865
2980
 
1866
2981
  <li class="md-nav__item">
1867
- <a href="../core-functionality/power.html" class="md-nav__link">
1868
- Power Tracking
2982
+ <a href="../models/users/token.html" class="md-nav__link">
2983
+ Token
1869
2984
  </a>
1870
2985
  </li>
1871
2986
 
1872
2987
 
1873
2988
 
1874
2989
 
2990
+ </ul>
2991
+ </nav>
2992
+ </li>
2993
+
2994
+
2995
+
2996
+
1875
2997
 
1876
2998
 
1877
2999
 
1878
3000
 
1879
3001
 
1880
- <li class="md-nav__item">
1881
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1882
- Secrets
1883
- </a>
1884
- </li>
1885
-
1886
-
1887
-
3002
+
3003
+ <li class="md-nav__item md-nav__item--nested">
3004
+
3005
+
3006
+
3007
+
3008
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
3009
+
3010
+
3011
+
3012
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
3013
+ Virtualization
3014
+ <span class="md-nav__icon md-icon"></span>
3015
+ </label>
3016
+
3017
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
3018
+ <label class="md-nav__title" for="__nav_2_8_7">
3019
+ <span class="md-nav__icon md-icon"></span>
3020
+ Virtualization
3021
+ </label>
3022
+ <ul class="md-nav__list" data-md-scrollfix>
1888
3023
 
1889
3024
 
1890
3025
 
@@ -1892,8 +3027,8 @@
1892
3027
 
1893
3028
 
1894
3029
  <li class="md-nav__item">
1895
- <a href="../core-functionality/services.html" class="md-nav__link">
1896
- Service Mapping
3030
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
3031
+ Cluster
1897
3032
  </a>
1898
3033
  </li>
1899
3034
 
@@ -1906,8 +3041,8 @@
1906
3041
 
1907
3042
 
1908
3043
  <li class="md-nav__item">
1909
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1910
- Sites, Locations, and Racks
3044
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
3045
+ Cluster Group
1911
3046
  </a>
1912
3047
  </li>
1913
3048
 
@@ -1920,8 +3055,8 @@
1920
3055
 
1921
3056
 
1922
3057
  <li class="md-nav__item">
1923
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1924
- Tenancy
3058
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
3059
+ Cluster Type
1925
3060
  </a>
1926
3061
  </li>
1927
3062
 
@@ -1934,8 +3069,8 @@
1934
3069
 
1935
3070
 
1936
3071
  <li class="md-nav__item">
1937
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1938
- Virtualization
3072
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
3073
+ Virtual Machine
1939
3074
  </a>
1940
3075
  </li>
1941
3076
 
@@ -1948,8 +3083,8 @@
1948
3083
 
1949
3084
 
1950
3085
  <li class="md-nav__item">
1951
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1952
- VLAN Management
3086
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
3087
+ VM Interface
1953
3088
  </a>
1954
3089
  </li>
1955
3090
 
@@ -1963,6 +3098,13 @@
1963
3098
 
1964
3099
 
1965
3100
 
3101
+ </ul>
3102
+ </nav>
3103
+ </li>
3104
+
3105
+
3106
+
3107
+
1966
3108
 
1967
3109
 
1968
3110
 
@@ -1972,18 +3114,19 @@
1972
3114
  <li class="md-nav__item md-nav__item--nested">
1973
3115
 
1974
3116
 
1975
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1976
3117
 
1977
3118
 
3119
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
3120
+
1978
3121
 
1979
3122
 
1980
- <label class="md-nav__link" for="__nav_2_8">
3123
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1981
3124
  Additional Features
1982
3125
  <span class="md-nav__icon md-icon"></span>
1983
3126
  </label>
1984
3127
 
1985
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1986
- <label class="md-nav__title" for="__nav_2_8">
3128
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
3129
+ <label class="md-nav__title" for="__nav_2_9">
1987
3130
  <span class="md-nav__icon md-icon"></span>
1988
3131
  Additional Features
1989
3132
  </label>
@@ -2313,18 +3456,19 @@
2313
3456
  <li class="md-nav__item md-nav__item--nested">
2314
3457
 
2315
3458
 
2316
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
2317
3459
 
2318
3460
 
3461
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2319
3462
 
2320
3463
 
2321
- <label class="md-nav__link" for="__nav_2_9">
3464
+
3465
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2322
3466
  REST API
2323
3467
  <span class="md-nav__icon md-icon"></span>
2324
3468
  </label>
2325
3469
 
2326
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
2327
- <label class="md-nav__title" for="__nav_2_9">
3470
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
3471
+ <label class="md-nav__title" for="__nav_2_10">
2328
3472
  <span class="md-nav__icon md-icon"></span>
2329
3473
  REST API
2330
3474
  </label>
@@ -2372,6 +3516,20 @@
2372
3516
 
2373
3517
 
2374
3518
 
3519
+
3520
+
3521
+
3522
+
3523
+
3524
+ <li class="md-nav__item">
3525
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3526
+ UI Endpoints
3527
+ </a>
3528
+ </li>
3529
+
3530
+
3531
+
3532
+
2375
3533
  </ul>
2376
3534
  </nav>
2377
3535
  </li>
@@ -2388,18 +3546,19 @@
2388
3546
  <li class="md-nav__item md-nav__item--nested">
2389
3547
 
2390
3548
 
2391
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
2392
3549
 
2393
3550
 
3551
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
3552
+
2394
3553
 
2395
3554
 
2396
- <label class="md-nav__link" for="__nav_2_10">
3555
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
2397
3556
  GraphQL API
2398
3557
  <span class="md-nav__icon md-icon"></span>
2399
3558
  </label>
2400
3559
 
2401
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
2402
- <label class="md-nav__title" for="__nav_2_10">
3560
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3561
+ <label class="md-nav__title" for="__nav_2_11">
2403
3562
  <span class="md-nav__icon md-icon"></span>
2404
3563
  GraphQL API
2405
3564
  </label>
@@ -2457,17 +3616,18 @@
2457
3616
  <li class="md-nav__item md-nav__item--nested">
2458
3617
 
2459
3618
 
2460
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
2461
3619
 
2462
3620
 
3621
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
3622
+
2463
3623
 
2464
3624
 
2465
- <label class="md-nav__link" for="__nav_3">
3625
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2466
3626
  App Developer Guide
2467
3627
  <span class="md-nav__icon md-icon"></span>
2468
3628
  </label>
2469
3629
 
2470
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
3630
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
2471
3631
  <label class="md-nav__title" for="__nav_3">
2472
3632
  <span class="md-nav__icon md-icon"></span>
2473
3633
  App Developer Guide
@@ -2511,17 +3671,18 @@
2511
3671
  <li class="md-nav__item md-nav__item--nested">
2512
3672
 
2513
3673
 
2514
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
2515
3674
 
2516
3675
 
3676
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
2517
3677
 
2518
3678
 
2519
- <label class="md-nav__link" for="__nav_3_3">
3679
+
3680
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
2520
3681
  Code Reference
2521
3682
  <span class="md-nav__icon md-icon"></span>
2522
3683
  </label>
2523
3684
 
2524
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
3685
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
2525
3686
  <label class="md-nav__title" for="__nav_3_3">
2526
3687
  <span class="md-nav__icon md-icon"></span>
2527
3688
  Code Reference
@@ -2748,17 +3909,18 @@
2748
3909
  <li class="md-nav__item md-nav__item--nested">
2749
3910
 
2750
3911
 
2751
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2752
3912
 
2753
3913
 
3914
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
3915
+
2754
3916
 
2755
3917
 
2756
- <label class="md-nav__link" for="__nav_4">
3918
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2757
3919
  Core Developer Guide
2758
3920
  <span class="md-nav__icon md-icon"></span>
2759
3921
  </label>
2760
3922
 
2761
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3923
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2762
3924
  <label class="md-nav__title" for="__nav_4">
2763
3925
  <span class="md-nav__icon md-icon"></span>
2764
3926
  Core Developer Guide
@@ -2992,17 +4154,18 @@
2992
4154
  <li class="md-nav__item md-nav__item--nested">
2993
4155
 
2994
4156
 
2995
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
2996
4157
 
2997
4158
 
4159
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
2998
4160
 
2999
4161
 
3000
- <label class="md-nav__link" for="__nav_5">
4162
+
4163
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
3001
4164
  Release Notes
3002
4165
  <span class="md-nav__icon md-icon"></span>
3003
4166
  </label>
3004
4167
 
3005
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
4168
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
3006
4169
  <label class="md-nav__title" for="__nav_5">
3007
4170
  <span class="md-nav__icon md-icon"></span>
3008
4171
  Release Notes
@@ -3138,17 +4301,18 @@
3138
4301
  <li class="md-nav__item md-nav__item--nested">
3139
4302
 
3140
4303
 
3141
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
3142
4304
 
3143
4305
 
4306
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
4307
+
3144
4308
 
3145
4309
 
3146
- <label class="md-nav__link" for="__nav_6">
4310
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
3147
4311
  Nautobot Apps
3148
4312
  <span class="md-nav__icon md-icon"></span>
3149
4313
  </label>
3150
4314
 
3151
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
4315
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
3152
4316
  <label class="md-nav__title" for="__nav_6">
3153
4317
  <span class="md-nav__icon md-icon"></span>
3154
4318
  Nautobot Apps
@@ -3178,17 +4342,18 @@
3178
4342
  <li class="md-nav__item md-nav__item--nested">
3179
4343
 
3180
4344
 
3181
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
3182
4345
 
3183
4346
 
4347
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
3184
4348
 
3185
4349
 
3186
- <label class="md-nav__link" for="__nav_6_2">
4350
+
4351
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
3187
4352
  Network to Code App Docs
3188
4353
  <span class="md-nav__icon md-icon"></span>
3189
4354
  </label>
3190
4355
 
3191
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
4356
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
3192
4357
  <label class="md-nav__title" for="__nav_6_2">
3193
4358
  <span class="md-nav__icon md-icon"></span>
3194
4359
  Network to Code App Docs
@@ -3215,8 +4380,8 @@
3215
4380
 
3216
4381
 
3217
4382
  <li class="md-nav__item">
3218
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
3219
- Nautobot Firewall Models
4383
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
4384
+ Nautobot Circuit Maintenance
3220
4385
  </a>
3221
4386
  </li>
3222
4387
 
@@ -3229,8 +4394,36 @@
3229
4394
 
3230
4395
 
3231
4396
  <li class="md-nav__item">
3232
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
3233
- Nautobot Plugin Nornir
4397
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
4398
+ Nautobot Device LifeCycle Management
4399
+ </a>
4400
+ </li>
4401
+
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+
4408
+
4409
+
4410
+ <li class="md-nav__item">
4411
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
4412
+ Nautobot Device Onboarding
4413
+ </a>
4414
+ </li>
4415
+
4416
+
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4424
+ <li class="md-nav__item">
4425
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
4426
+ Nautobot Firewall Models
3234
4427
  </a>
3235
4428
  </li>
3236
4429
 
@@ -3257,7 +4450,21 @@
3257
4450
 
3258
4451
 
3259
4452
  <li class="md-nav__item">
3260
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
4453
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
4454
+ Nautobot Plugin Nornir
4455
+ </a>
4456
+ </li>
4457
+
4458
+
4459
+
4460
+
4461
+
4462
+
4463
+
4464
+
4465
+
4466
+ <li class="md-nav__item">
4467
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
3261
4468
  Nautobot Single Source of Truth
3262
4469
  </a>
3263
4470
  </li>
@@ -3401,27 +4608,6 @@
3401
4608
  BRANDING_URLS
3402
4609
  </a>
3403
4610
 
3404
- </li>
3405
-
3406
- <li class="md-nav__item">
3407
- <a href="#cacheops_defaults" class="md-nav__link">
3408
- CACHEOPS_DEFAULTS
3409
- </a>
3410
-
3411
- </li>
3412
-
3413
- <li class="md-nav__item">
3414
- <a href="#cacheops_enabled" class="md-nav__link">
3415
- CACHEOPS_ENABLED
3416
- </a>
3417
-
3418
- </li>
3419
-
3420
- <li class="md-nav__item">
3421
- <a href="#cacheops_health_check_enabled" class="md-nav__link">
3422
- CACHEOPS_HEALTH_CHECK_ENABLED
3423
- </a>
3424
-
3425
4611
  </li>
3426
4612
 
3427
4613
  <li class="md-nav__item">
@@ -3467,50 +4653,50 @@
3467
4653
  </li>
3468
4654
 
3469
4655
  <li class="md-nav__item">
3470
- <a href="#changelog_retention" class="md-nav__link">
3471
- CHANGELOG_RETENTION
4656
+ <a href="#celery_worker_redirect_stdouts" class="md-nav__link">
4657
+ CELERY_WORKER_REDIRECT_STDOUTS
3472
4658
  </a>
3473
4659
 
3474
4660
  </li>
3475
4661
 
3476
4662
  <li class="md-nav__item">
3477
- <a href="#config_context_dynamic_groups_enalbed" class="md-nav__link">
3478
- CONFIG_CONTEXT_DYNAMIC_GROUPS_ENALBED
4663
+ <a href="#celery_worker_redirect_stdouts_level" class="md-nav__link">
4664
+ CELERY_WORKER_REDIRECT_STDOUTS_LEVEL
3479
4665
  </a>
3480
4666
 
3481
4667
  </li>
3482
4668
 
3483
4669
  <li class="md-nav__item">
3484
- <a href="#cors_allow_all_origins" class="md-nav__link">
3485
- CORS_ALLOW_ALL_ORIGINS
4670
+ <a href="#changelog_retention" class="md-nav__link">
4671
+ CHANGELOG_RETENTION
3486
4672
  </a>
3487
4673
 
3488
4674
  </li>
3489
4675
 
3490
4676
  <li class="md-nav__item">
3491
- <a href="#cors_allowed_origins" class="md-nav__link">
3492
- CORS_ALLOWED_ORIGINS
4677
+ <a href="#config_context_dynamic_groups_enalbed" class="md-nav__link">
4678
+ CONFIG_CONTEXT_DYNAMIC_GROUPS_ENALBED
3493
4679
  </a>
3494
4680
 
3495
4681
  </li>
3496
4682
 
3497
4683
  <li class="md-nav__item">
3498
- <a href="#cors_allowed_origin_regexes" class="md-nav__link">
3499
- CORS_ALLOWED_ORIGIN_REGEXES
4684
+ <a href="#cors_allow_all_origins" class="md-nav__link">
4685
+ CORS_ALLOW_ALL_ORIGINS
3500
4686
  </a>
3501
4687
 
3502
4688
  </li>
3503
4689
 
3504
4690
  <li class="md-nav__item">
3505
- <a href="#disable_prefix_list_hierarchy" class="md-nav__link">
3506
- DISABLE_PREFIX_LIST_HIERARCHY
4691
+ <a href="#cors_allowed_origins" class="md-nav__link">
4692
+ CORS_ALLOWED_ORIGINS
3507
4693
  </a>
3508
4694
 
3509
4695
  </li>
3510
4696
 
3511
4697
  <li class="md-nav__item">
3512
- <a href="#enforce_global_unique" class="md-nav__link">
3513
- ENFORCE_GLOBAL_UNIQUE
4698
+ <a href="#cors_allowed_origin_regexes" class="md-nav__link">
4699
+ CORS_ALLOWED_ORIGIN_REGEXES
3514
4700
  </a>
3515
4701
 
3516
4702
  </li>
@@ -3951,10 +5137,8 @@
3951
5137
 
3952
5138
 
3953
5139
 
3954
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/configuration/optional-settings.md" title="Edit this page" class="md-content__button md-icon">
3955
-
3956
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
3957
- </a>
5140
+
5141
+
3958
5142
 
3959
5143
 
3960
5144
  <h1 id="optional-configuration-settings">Optional Configuration Settings<a class="headerlink" href="#optional-configuration-settings" title="Permanent link">&para;</a></h1>
@@ -4069,29 +5253,6 @@ can specify additional apps with ease. Similarly, additional <code>MIDDLEWARE</
4069
5253
  </ul>
4070
5254
  <p>If a custom URL is not provided for any of the links, the default link within the Nautobot community is used.</p>
4071
5255
  <hr />
4072
- <h2 id="cacheops_defaults">CACHEOPS_DEFAULTS<a class="headerlink" href="#cacheops_defaults" title="Permanent link">&para;</a></h2>
4073
- <p>Default: <code>{'timeout': 900}</code> (15 minutes, in seconds)</p>
4074
- <p>Environment Variable: <code>NAUTOBOT_CACHEOPS_TIMEOUT</code> (timeout value only)</p>
4075
- <div class="admonition warning">
4076
- <p class="admonition-title">Warning</p>
4077
- <p>It is an error to set the timeout value to <code>0</code>. If you wish to disable caching, please use <a href="#cacheops_enabled"><code>CACHEOPS_ENABLED</code></a>.</p>
4078
- </div>
4079
- <p>Various defaults for caching, the most important of which being the cache timeout. The <code>timeout</code> is the number of seconds that cache entries will be retained before expiring.</p>
4080
- <hr />
4081
- <h2 id="cacheops_enabled">CACHEOPS_ENABLED<a class="headerlink" href="#cacheops_enabled" title="Permanent link">&para;</a></h2>
4082
- <p>Default: <code>False</code></p>
4083
- <p>Environment Variable: <code>NAUTOBOT_CACHEOPS_ENABLED</code></p>
4084
- <p>A boolean that turns on/off caching.</p>
4085
- <div class="admonition check">
4086
- <p class="admonition-title">Changed in 1.5.0</p>
4087
- <p>Cachopes is disabled by default and will be removed entirely in a future release.</p>
4088
- </div>
4089
- <p>If set to <code>False</code>, all caching is bypassed and Nautobot operates as if there is no cache.</p>
4090
- <hr />
4091
- <h2 id="cacheops_health_check_enabled">CACHEOPS_HEALTH_CHECK_ENABLED<a class="headerlink" href="#cacheops_health_check_enabled" title="Permanent link">&para;</a></h2>
4092
- <p>Default: <code>False</code></p>
4093
- <p>A boolean that turns on/off health checks for the Redis server connection utilized by Cacheops. Most deployments share a Redis server with <code>django-redis</code> as such we only need to check the health of Redis one time. If you are using a separate Redis deployment for Cacheops, please consider enabling this to monitor that Redis deployment. Keep in mind the more health checks enabled the longer the health checks will take and timeouts might need to be increased.</p>
4094
- <hr />
4095
5256
  <h2 id="celery_broker_transport_options">CELERY_BROKER_TRANSPORT_OPTIONS<a class="headerlink" href="#celery_broker_transport_options" title="Permanent link">&para;</a></h2>
4096
5257
  <p>Default: <code>{}</code></p>
4097
5258
  <p>A dict of additional options passed to the Celery broker transport. This is only required when <a href="../additional-features/caching.html#celery-sentinel-configuration">configuring Celery to utilize Redis Sentinel</a>.</p>
@@ -4132,6 +5293,22 @@ highest amount of workers you are running on a single machine (comma-separated,
4132
5293
  the <code>target_limit</code> parameter to the Prometheus <code>scrape_config</code> to ensure you are not getting duplicate metrics in that
4133
5294
  case. Set this to an empty list to disable it.</p>
4134
5295
  <hr />
5296
+ <h2 id="celery_worker_redirect_stdouts">CELERY_WORKER_REDIRECT_STDOUTS<a class="headerlink" href="#celery_worker_redirect_stdouts" title="Permanent link">&para;</a></h2>
5297
+ <div class="admonition version-added">
5298
+ <p class="admonition-title">Added in version 2.0.0</p>
5299
+ </div>
5300
+ <p>Environment Variable: <code>NAUTOBOT_CELERY_WORKER_REDIRECT_STDOUTS</code></p>
5301
+ <p>Default: <code>True</code></p>
5302
+ <p>If enabled stdout and stderr of running jobs will be redirected to the task logger.</p>
5303
+ <hr />
5304
+ <h2 id="celery_worker_redirect_stdouts_level">CELERY_WORKER_REDIRECT_STDOUTS_LEVEL<a class="headerlink" href="#celery_worker_redirect_stdouts_level" title="Permanent link">&para;</a></h2>
5305
+ <div class="admonition version-added">
5306
+ <p class="admonition-title">Added in version 2.0.0</p>
5307
+ </div>
5308
+ <p>Environment Variable: <code>NAUTOBOT_CELERY_WORKER_REDIRECT_STDOUTS_LEVEL</code></p>
5309
+ <p>Default: <code>WARNING</code></p>
5310
+ <p>The log level of log messages generated by redirected job stdout and stderr. Can be one of <code>DEBUG</code>, <code>INFO</code>, <code>WARNING</code>, <code>ERROR</code>, or <code>CRITICAL</code>.</p>
5311
+ <hr />
4135
5312
  <h2 id="changelog_retention">CHANGELOG_RETENTION<a class="headerlink" href="#changelog_retention" title="Permanent link">&para;</a></h2>
4136
5313
  <p>Default: <code>90</code></p>
4137
5314
  <p>The number of days to retain logged changes (object creations, updates, and deletions). Set this to <code>0</code> to retain changes in the database indefinitely.</p>
@@ -4185,16 +5362,6 @@ case. Set this to an empty list to disable it.</p>
4185
5362
  </code></pre></div>
4186
5363
  <p>Previously this setting was called <code>CORS_ORIGIN_REGEX_WHITELIST</code>, which still works as an alias, with the new name taking precedence.</p>
4187
5364
  <hr />
4188
- <h2 id="disable_prefix_list_hierarchy">DISABLE_PREFIX_LIST_HIERARCHY<a class="headerlink" href="#disable_prefix_list_hierarchy" title="Permanent link">&para;</a></h2>
4189
- <p>Default: <code>False</code></p>
4190
- <p>This setting disables rendering of the IP prefix hierarchy (parent/child relationships) in the IPAM prefix list view. With large sets of prefixes, users may encounter a performance penalty when trying to load the prefix list view due to the nature of calculating the parent/child relationships. This setting allows users to disable the hierarchy and instead only render a flat list of all prefixes in the table.</p>
4191
- <p>A later release of Nautobot will address the underlying performance issues, and likely remove this configuration option.</p>
4192
- <hr />
4193
- <h2 id="enforce_global_unique">ENFORCE_GLOBAL_UNIQUE<a class="headerlink" href="#enforce_global_unique" title="Permanent link">&para;</a></h2>
4194
- <p>Default: <code>False</code></p>
4195
- <p>Environment Variable: <code>NAUTOBOT_ENFORCE_GLOBAL_UNIQUE</code></p>
4196
- <p>By default, Nautobot will permit users to create duplicate prefixes and IP addresses in the global table (that is, those which are not assigned to any VRF). This behavior can be disabled by setting <code>ENFORCE_GLOBAL_UNIQUE</code> to <code>True</code>.</p>
4197
- <hr />
4198
5365
  <h2 id="exempt_view_permissions">EXEMPT_VIEW_PERMISSIONS<a class="headerlink" href="#exempt_view_permissions" title="Permanent link">&para;</a></h2>
4199
5366
  <p>Default: <code>[]</code> (Empty list)</p>
4200
5367
  <p>A list of Nautobot models to exempt from the enforcement of view permissions. Models listed here will be viewable by all users, both authenticated and anonymous.</p>
@@ -4496,7 +5663,7 @@ case. Set this to an empty list to disable it.</p>
4496
5663
  <p>Default:</p>
4497
5664
  <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="p">[</span>
4498
5665
  <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a> <span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;(https?://)?\S+\s*@&quot;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">IGNORECASE</span><span class="p">),</span> <span class="sa">r</span><span class="s2">&quot;\1</span><span class="si">{replacement}</span><span class="s2">@&quot;</span><span class="p">),</span>
4499
- <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a> <span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;(username|password|passwd|pwd)(\s*i?s?\s*:?\s*)?\S+&quot;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">IGNORECASE</span><span class="p">),</span> <span class="sa">r</span><span class="s2">&quot;\1\2</span><span class="si">{replacement}</span><span class="s2">&quot;</span><span class="p">),</span>
5666
+ <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a> <span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;(username|password|passwd|pwd)((?:\s+is.?|:)?\s+)\S+&quot;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">IGNORECASE</span><span class="p">),</span> <span class="sa">r</span><span class="s2">&quot;\1\2</span><span class="si">{replacement}</span><span class="s2">&quot;</span><span class="p">),</span>
4500
5667
  <a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="p">]</span>
4501
5668
  </code></pre></div>
4502
5669
  <p>List of (regular expression, replacement pattern) tuples used by the <code>nautobot.core.utils.logging.sanitize()</code> function. As of Nautobot 1.3.4 this function is used primarily for sanitization of Job log entries, but it may be used in other scopes in the future.</p>
@@ -4730,6 +5897,10 @@ addresses (and <a href="#debug"><code>DEBUG</code></a> is true).</p>
4730
5897
  <p class="admonition-title">Changed in version 1.4.10</p>
4731
5898
  <p>While running unit or integration tests via <code>nautobot-server test ...</code>, LOGGING will be set to <code>{}</code> instead of the above defaults, as verbose logging to the console is typically not desirable while running tests.</p>
4732
5899
  </div>
5900
+ <div class="admonition version-changed">
5901
+ <p class="admonition-title">Changed in version 2.0.0</p>
5902
+ <p>Unit/integration test logging was modified to send all nautobot logs to a <code>NullHandler</code> to prevent logs falling through to the last resort logger and being output to stderr.</p>
5903
+ </div>
4733
5904
  <p>This translates to:</p>
4734
5905
  <ul>
4735
5906
  <li>all messages from Django and from Nautobot of INFO severity or higher will be logged to the console.</li>
@@ -4752,10 +5923,10 @@ addresses (and <a href="#debug"><code>DEBUG</code></a> is true).</p>
4752
5923
  <li><code>django.*</code> - Generic Django operations (HTTP requests/responses, etc.)</li>
4753
5924
  <li><code>nautobot.&lt;app&gt;.&lt;module&gt;</code> - Generic form for model- or module-specific log messages</li>
4754
5925
  <li><code>nautobot.auth.*</code> - Authentication events</li>
4755
- <li><code>nautobot.jobs.*</code> - Job execution (<code>* = JobClassName</code>)</li>
4756
- <li><code>nautobot.graphql.*</code> - <a href="../additional-features/graphql.html">GraphQL</a> initialization and operation.</li>
4757
- <li><code>nautobot.plugins.*</code> - Plugin loading and activity</li>
4758
- <li><code>nautobot.views.*</code> - Views which handle business logic for the web UI</li>
5926
+ <li><code>nautobot.extras.jobs.*</code> - Job execution (<code>* = JobClassName</code>)</li>
5927
+ <li><code>nautobot.core.graphql.*</code> - <a href="../additional-features/graphql.html">GraphQL</a> initialization and operation.</li>
5928
+ <li><code>nautobot.extras.plugins.*</code> - Plugin loading and activity</li>
5929
+ <li><code>nautobot.core.views.generic.*</code> - Generic views which handle business logic for the web UI</li>
4759
5930
  </ul>
4760
5931
  <hr />
4761
5932
  <h3 id="media_root">MEDIA_ROOT<a class="headerlink" href="#media_root" title="Permanent link">&para;</a></h3>
@@ -4808,42 +5979,6 @@ To use file-based sessions, set this to <code>'django.contrib.sessions.backends.
4808
5979
 
4809
5980
  <footer class="md-footer">
4810
5981
 
4811
-
4812
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
4813
-
4814
-
4815
- <a href="required-settings.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Required Settings" rel="prev">
4816
- <div class="md-footer__button md-icon">
4817
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
4818
- </div>
4819
- <div class="md-footer__title">
4820
- <div class="md-ellipsis">
4821
- <span class="md-footer__direction">
4822
- Previous
4823
- </span>
4824
- Required Settings
4825
- </div>
4826
- </div>
4827
- </a>
4828
-
4829
-
4830
-
4831
- <a href="authentication/ldap.html" class="md-footer__link md-footer__link--next" aria-label="Next: LDAP" rel="next">
4832
- <div class="md-footer__title">
4833
- <div class="md-ellipsis">
4834
- <span class="md-footer__direction">
4835
- Next
4836
- </span>
4837
- LDAP
4838
- </div>
4839
- </div>
4840
- <div class="md-footer__button md-icon">
4841
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
4842
- </div>
4843
- </a>
4844
-
4845
- </nav>
4846
-
4847
5982
  <div class="md-footer-meta md-typeset">
4848
5983
  <div class="md-footer-meta__inner md-grid">
4849
5984
  <div class="md-copyright">
@@ -4871,32 +6006,42 @@ To use file-based sessions, set this to <code>'django.contrib.sessions.backends.
4871
6006
 
4872
6007
 
4873
6008
 
6009
+
6010
+
4874
6011
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
4875
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm128 352c0 35.3-28.7 64-64 64S0 451.3 0 416s28.7-64 64-64 64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
6012
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
4876
6013
  </a>
4877
6014
 
4878
6015
 
4879
6016
 
6017
+
6018
+
4880
6019
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
4881
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
6020
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
4882
6021
  </a>
4883
6022
 
4884
6023
 
4885
6024
 
6025
+
6026
+
4886
6027
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
4887
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
6028
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
4888
6029
  </a>
4889
6030
 
4890
6031
 
4891
6032
 
6033
+
6034
+
4892
6035
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
4893
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
6036
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
4894
6037
  </a>
4895
6038
 
4896
6039
 
4897
6040
 
6041
+
6042
+
4898
6043
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
4899
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
6044
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
4900
6045
  </a>
4901
6046
 
4902
6047
  </div>
@@ -4910,14 +6055,13 @@ To use file-based sessions, set this to <code>'django.contrib.sessions.backends.
4910
6055
  <div class="md-dialog__inner md-typeset"></div>
4911
6056
  </div>
4912
6057
 
4913
- <script id="__config" type="application/json">{"base": "..", "features": ["navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.16e2a7d4.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "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.title": "Select version"}}</script>
6058
+ <script id="__config" type="application/json">{"base": "..", "features": ["navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.208ed371.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>
4914
6059
 
4915
6060
 
4916
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
6061
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
4917
6062
 
4918
6063
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
4919
6064
 
4920
6065
 
4921
-
4922
6066
  </body>
4923
6067
  </html>