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/release-notes/version-2.0.html">
12
12
 
13
+
14
+ <link rel="prev" href="index.html">
15
+
16
+
17
+ <link rel="next" href="version-1.5.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
@@ -387,17 +388,18 @@
387
388
  <li class="md-nav__item md-nav__item--nested">
388
389
 
389
390
 
390
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
391
391
 
392
392
 
393
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
394
+
393
395
 
394
396
 
395
- <label class="md-nav__link" for="__nav_2">
397
+ <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
396
398
  Documentation
397
399
  <span class="md-nav__icon md-icon"></span>
398
400
  </label>
399
401
 
400
- <nav class="md-nav" aria-label="Documentation" data-md-level="1">
402
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
401
403
  <label class="md-nav__title" for="__nav_2">
402
404
  <span class="md-nav__icon md-icon"></span>
403
405
  Documentation
@@ -413,17 +415,18 @@
413
415
  <li class="md-nav__item md-nav__item--nested">
414
416
 
415
417
 
416
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" >
417
418
 
418
419
 
420
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
419
421
 
420
422
 
421
- <label class="md-nav__link" for="__nav_2_1">
423
+
424
+ <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
422
425
  Installation
423
426
  <span class="md-nav__icon md-icon"></span>
424
427
  </label>
425
428
 
426
- <nav class="md-nav" aria-label="Installation" data-md-level="2">
429
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
427
430
  <label class="md-nav__title" for="__nav_2_1">
428
431
  <span class="md-nav__icon md-icon"></span>
429
432
  Installation
@@ -530,17 +533,18 @@
530
533
  <li class="md-nav__item md-nav__item--nested">
531
534
 
532
535
 
533
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
534
536
 
535
537
 
538
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
539
+
536
540
 
537
541
 
538
- <label class="md-nav__link" for="__nav_2_2">
542
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
539
543
  Migration
540
544
  <span class="md-nav__icon md-icon"></span>
541
545
  </label>
542
546
 
543
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
547
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
544
548
  <label class="md-nav__title" for="__nav_2_2">
545
549
  <span class="md-nav__icon md-icon"></span>
546
550
  Migration
@@ -633,17 +637,18 @@
633
637
  <li class="md-nav__item md-nav__item--nested">
634
638
 
635
639
 
636
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
637
640
 
638
641
 
642
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
639
643
 
640
644
 
641
- <label class="md-nav__link" for="__nav_2_3">
645
+
646
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
642
647
  Configuration
643
648
  <span class="md-nav__icon md-icon"></span>
644
649
  </label>
645
650
 
646
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
651
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
647
652
  <label class="md-nav__title" for="__nav_2_3">
648
653
  <span class="md-nav__icon md-icon"></span>
649
654
  Configuration
@@ -708,17 +713,18 @@
708
713
  <li class="md-nav__item md-nav__item--nested">
709
714
 
710
715
 
711
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
712
716
 
713
717
 
718
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
719
+
714
720
 
715
721
 
716
- <label class="md-nav__link" for="__nav_2_4">
722
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
717
723
  External Authentication
718
724
  <span class="md-nav__icon md-icon"></span>
719
725
  </label>
720
726
 
721
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
727
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
722
728
  <label class="md-nav__title" for="__nav_2_4">
723
729
  <span class="md-nav__icon md-icon"></span>
724
730
  External Authentication
@@ -783,17 +789,18 @@
783
789
  <li class="md-nav__item md-nav__item--nested">
784
790
 
785
791
 
786
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
787
792
 
788
793
 
794
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
789
795
 
790
796
 
791
- <label class="md-nav__link" for="__nav_2_5">
797
+
798
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
792
799
  Administration
793
800
  <span class="md-nav__icon md-icon"></span>
794
801
  </label>
795
802
 
796
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
803
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
797
804
  <label class="md-nav__title" for="__nav_2_5">
798
805
  <span class="md-nav__icon md-icon"></span>
799
806
  Administration
@@ -886,17 +893,18 @@
886
893
  <li class="md-nav__item md-nav__item--nested">
887
894
 
888
895
 
889
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
890
896
 
891
897
 
898
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
899
+
892
900
 
893
901
 
894
- <label class="md-nav__link" for="__nav_2_6">
902
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
895
903
  User Guides
896
904
  <span class="md-nav__icon md-icon"></span>
897
905
  </label>
898
906
 
899
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
907
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
900
908
  <label class="md-nav__title" for="__nav_2_6">
901
909
  <span class="md-nav__icon md-icon"></span>
902
910
  User Guides
@@ -1143,17 +1151,18 @@
1143
1151
  <li class="md-nav__item md-nav__item--nested">
1144
1152
 
1145
1153
 
1146
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" >
1147
1154
 
1148
1155
 
1156
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1149
1157
 
1150
1158
 
1151
- <label class="md-nav__link" for="__nav_2_7">
1159
+
1160
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1152
1161
  Core Functionality
1153
1162
  <span class="md-nav__icon md-icon"></span>
1154
1163
  </label>
1155
1164
 
1156
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1165
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1157
1166
  <label class="md-nav__title" for="__nav_2_7">
1158
1167
  <span class="md-nav__icon md-icon"></span>
1159
1168
  Core Functionality
@@ -1330,20 +1339,48 @@
1330
1339
  <li class="md-nav__item md-nav__item--nested">
1331
1340
 
1332
1341
 
1333
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1334
1342
 
1335
1343
 
1344
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1336
1345
 
1337
1346
 
1338
- <label class="md-nav__link" for="__nav_2_8">
1339
- Additional Features
1347
+
1348
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1349
+ Model Details
1340
1350
  <span class="md-nav__icon md-icon"></span>
1341
1351
  </label>
1342
1352
 
1343
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1353
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1344
1354
  <label class="md-nav__title" for="__nav_2_8">
1345
1355
  <span class="md-nav__icon md-icon"></span>
1346
- Additional Features
1356
+ Model Details
1357
+ </label>
1358
+ <ul class="md-nav__list" data-md-scrollfix>
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+ <li class="md-nav__item md-nav__item--nested">
1367
+
1368
+
1369
+
1370
+
1371
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1372
+
1373
+
1374
+
1375
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1376
+ Circuits
1377
+ <span class="md-nav__icon md-icon"></span>
1378
+ </label>
1379
+
1380
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1381
+ <label class="md-nav__title" for="__nav_2_8_1">
1382
+ <span class="md-nav__icon md-icon"></span>
1383
+ Circuits
1347
1384
  </label>
1348
1385
  <ul class="md-nav__list" data-md-scrollfix>
1349
1386
 
@@ -1353,8 +1390,8 @@
1353
1390
 
1354
1391
 
1355
1392
  <li class="md-nav__item">
1356
- <a href="../additional-features/caching.html" class="md-nav__link">
1357
- Caching
1393
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1394
+ Circuit
1358
1395
  </a>
1359
1396
  </li>
1360
1397
 
@@ -1367,8 +1404,8 @@
1367
1404
 
1368
1405
 
1369
1406
  <li class="md-nav__item">
1370
- <a href="../additional-features/change-logging.html" class="md-nav__link">
1371
- Change Logging
1407
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1408
+ Circuit Termination
1372
1409
  </a>
1373
1410
  </li>
1374
1411
 
@@ -1381,8 +1418,8 @@
1381
1418
 
1382
1419
 
1383
1420
  <li class="md-nav__item">
1384
- <a href="../models/extras/computedfield.html" class="md-nav__link">
1385
- Computed Fields
1421
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1422
+ Circuit Type
1386
1423
  </a>
1387
1424
  </li>
1388
1425
 
@@ -1395,8 +1432,8 @@
1395
1432
 
1396
1433
 
1397
1434
  <li class="md-nav__item">
1398
- <a href="../additional-features/config-contexts.html" class="md-nav__link">
1399
- Context Data
1435
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1436
+ Circuit Provider
1400
1437
  </a>
1401
1438
  </li>
1402
1439
 
@@ -1409,22 +1446,56 @@
1409
1446
 
1410
1447
 
1411
1448
  <li class="md-nav__item">
1412
- <a href="../models/extras/customfield.html" class="md-nav__link">
1413
- Custom Fields
1449
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1450
+ Circuit Provider Network
1414
1451
  </a>
1415
1452
  </li>
1416
1453
 
1417
1454
 
1418
1455
 
1419
1456
 
1457
+ </ul>
1458
+ </nav>
1459
+ </li>
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+ <li class="md-nav__item md-nav__item--nested">
1471
+
1472
+
1473
+
1474
+
1475
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1476
+
1477
+
1478
+
1479
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1480
+ DCIM
1481
+ <span class="md-nav__icon md-icon"></span>
1482
+ </label>
1483
+
1484
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1485
+ <label class="md-nav__title" for="__nav_2_8_2">
1486
+ <span class="md-nav__icon md-icon"></span>
1487
+ DCIM
1488
+ </label>
1489
+ <ul class="md-nav__list" data-md-scrollfix>
1490
+
1420
1491
 
1421
1492
 
1422
1493
 
1423
1494
 
1424
1495
 
1425
1496
  <li class="md-nav__item">
1426
- <a href="../models/extras/customlink.html" class="md-nav__link">
1427
- Custom Links
1497
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1498
+ Cable
1428
1499
  </a>
1429
1500
  </li>
1430
1501
 
@@ -1437,8 +1508,8 @@
1437
1508
 
1438
1509
 
1439
1510
  <li class="md-nav__item">
1440
- <a href="../models/extras/dynamicgroup.html" class="md-nav__link">
1441
- Dynamic Groups
1511
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1512
+ Console Port
1442
1513
  </a>
1443
1514
  </li>
1444
1515
 
@@ -1451,8 +1522,8 @@
1451
1522
 
1452
1523
 
1453
1524
  <li class="md-nav__item">
1454
- <a href="../models/extras/exporttemplate.html" class="md-nav__link">
1455
- Export Templates
1525
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1526
+ Console Port Template
1456
1527
  </a>
1457
1528
  </li>
1458
1529
 
@@ -1465,8 +1536,8 @@
1465
1536
 
1466
1537
 
1467
1538
  <li class="md-nav__item">
1468
- <a href="../models/extras/gitrepository.html" class="md-nav__link">
1469
- Git Repositories
1539
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1540
+ Console Server Port
1470
1541
  </a>
1471
1542
  </li>
1472
1543
 
@@ -1479,8 +1550,8 @@
1479
1550
 
1480
1551
 
1481
1552
  <li class="md-nav__item">
1482
- <a href="../additional-features/healthcheck.html" class="md-nav__link">
1483
- Health Check
1553
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1554
+ Console Server Port Template
1484
1555
  </a>
1485
1556
  </li>
1486
1557
 
@@ -1493,8 +1564,8 @@
1493
1564
 
1494
1565
 
1495
1566
  <li class="md-nav__item">
1496
- <a href="../additional-features/jobs.html" class="md-nav__link">
1497
- Jobs
1567
+ <a href="../models/dcim/device.html" class="md-nav__link">
1568
+ Device
1498
1569
  </a>
1499
1570
  </li>
1500
1571
 
@@ -1507,8 +1578,8 @@
1507
1578
 
1508
1579
 
1509
1580
  <li class="md-nav__item">
1510
- <a href="../models/extras/jobbutton.html" class="md-nav__link">
1511
- Job Buttons
1581
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1582
+ Device Bay
1512
1583
  </a>
1513
1584
  </li>
1514
1585
 
@@ -1521,8 +1592,8 @@
1521
1592
 
1522
1593
 
1523
1594
  <li class="md-nav__item">
1524
- <a href="../models/extras/jobhook.html" class="md-nav__link">
1525
- Job Hooks
1595
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1596
+ Device Bay Template
1526
1597
  </a>
1527
1598
  </li>
1528
1599
 
@@ -1535,8 +1606,8 @@
1535
1606
 
1536
1607
 
1537
1608
  <li class="md-nav__item">
1538
- <a href="../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
1539
- Job Scheduling and Approvals
1609
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1610
+ Device Redundancy Group
1540
1611
  </a>
1541
1612
  </li>
1542
1613
 
@@ -1549,8 +1620,8 @@
1549
1620
 
1550
1621
 
1551
1622
  <li class="md-nav__item">
1552
- <a href="../additional-features/napalm.html" class="md-nav__link">
1553
- NAPALM
1623
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1624
+ Device Type
1554
1625
  </a>
1555
1626
  </li>
1556
1627
 
@@ -1563,8 +1634,8 @@
1563
1634
 
1564
1635
 
1565
1636
  <li class="md-nav__item">
1566
- <a href="../models/extras/note.html" class="md-nav__link">
1567
- Notes
1637
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1638
+ Front Port
1568
1639
  </a>
1569
1640
  </li>
1570
1641
 
@@ -1577,8 +1648,8 @@
1577
1648
 
1578
1649
 
1579
1650
  <li class="md-nav__item">
1580
- <a href="../additional-features/prometheus-metrics.html" class="md-nav__link">
1581
- Prometheus Metrics
1651
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1652
+ Front Port Template
1582
1653
  </a>
1583
1654
  </li>
1584
1655
 
@@ -1591,8 +1662,8 @@
1591
1662
 
1592
1663
 
1593
1664
  <li class="md-nav__item">
1594
- <a href="../models/extras/relationship.html" class="md-nav__link">
1595
- Relationships
1665
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1666
+ Interface
1596
1667
  </a>
1597
1668
  </li>
1598
1669
 
@@ -1605,8 +1676,8 @@
1605
1676
 
1606
1677
 
1607
1678
  <li class="md-nav__item">
1608
- <a href="../models/extras/status.html" class="md-nav__link">
1609
- Statuses
1679
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1680
+ Interface Template
1610
1681
  </a>
1611
1682
  </li>
1612
1683
 
@@ -1619,8 +1690,8 @@
1619
1690
 
1620
1691
 
1621
1692
  <li class="md-nav__item">
1622
- <a href="../models/extras/tag.html" class="md-nav__link">
1623
- Tags
1693
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1694
+ Inventory Item
1624
1695
  </a>
1625
1696
  </li>
1626
1697
 
@@ -1633,8 +1704,8 @@
1633
1704
 
1634
1705
 
1635
1706
  <li class="md-nav__item">
1636
- <a href="../additional-features/template-filters.html" class="md-nav__link">
1637
- Template Filters
1707
+ <a href="../models/dcim/location.html" class="md-nav__link">
1708
+ Location
1638
1709
  </a>
1639
1710
  </li>
1640
1711
 
@@ -1647,16 +1718,23 @@
1647
1718
 
1648
1719
 
1649
1720
  <li class="md-nav__item">
1650
- <a href="../models/extras/webhook.html" class="md-nav__link">
1651
- Webhooks
1721
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1722
+ Location Type
1652
1723
  </a>
1653
1724
  </li>
1654
1725
 
1655
1726
 
1656
1727
 
1657
1728
 
1658
- </ul>
1659
- </nav>
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+ <li class="md-nav__item">
1735
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1736
+ Manufacturer
1737
+ </a>
1660
1738
  </li>
1661
1739
 
1662
1740
 
@@ -1667,26 +1745,14 @@
1667
1745
 
1668
1746
 
1669
1747
 
1670
-
1671
- <li class="md-nav__item md-nav__item--nested">
1672
-
1673
-
1674
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
1675
-
1676
-
1677
-
1678
-
1679
- <label class="md-nav__link" for="__nav_2_9">
1680
- REST API
1681
- <span class="md-nav__icon md-icon"></span>
1682
- </label>
1683
-
1684
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
1685
- <label class="md-nav__title" for="__nav_2_9">
1686
- <span class="md-nav__icon md-icon"></span>
1687
- REST API
1688
- </label>
1689
- <ul class="md-nav__list" data-md-scrollfix>
1748
+ <li class="md-nav__item">
1749
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1750
+ Platform
1751
+ </a>
1752
+ </li>
1753
+
1754
+
1755
+
1690
1756
 
1691
1757
 
1692
1758
 
@@ -1694,8 +1760,8 @@
1694
1760
 
1695
1761
 
1696
1762
  <li class="md-nav__item">
1697
- <a href="../rest-api/overview.html" class="md-nav__link">
1698
- Overview
1763
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1764
+ Power Feed
1699
1765
  </a>
1700
1766
  </li>
1701
1767
 
@@ -1708,8 +1774,8 @@
1708
1774
 
1709
1775
 
1710
1776
  <li class="md-nav__item">
1711
- <a href="../rest-api/filtering.html" class="md-nav__link">
1712
- Filtering
1777
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1778
+ Power Outlet
1713
1779
  </a>
1714
1780
  </li>
1715
1781
 
@@ -1722,16 +1788,23 @@
1722
1788
 
1723
1789
 
1724
1790
  <li class="md-nav__item">
1725
- <a href="../rest-api/authentication.html" class="md-nav__link">
1726
- Authentication
1791
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
1792
+ Power Outlet Template
1727
1793
  </a>
1728
1794
  </li>
1729
1795
 
1730
1796
 
1731
1797
 
1732
1798
 
1733
- </ul>
1734
- </nav>
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+ <li class="md-nav__item">
1805
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
1806
+ Power Panel
1807
+ </a>
1735
1808
  </li>
1736
1809
 
1737
1810
 
@@ -1742,26 +1815,14 @@
1742
1815
 
1743
1816
 
1744
1817
 
1745
-
1746
- <li class="md-nav__item md-nav__item--nested">
1747
-
1748
-
1749
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
1750
-
1751
-
1752
-
1753
-
1754
- <label class="md-nav__link" for="__nav_2_10">
1755
- GraphQL API
1756
- <span class="md-nav__icon md-icon"></span>
1757
- </label>
1758
-
1759
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
1760
- <label class="md-nav__title" for="__nav_2_10">
1761
- <span class="md-nav__icon md-icon"></span>
1762
- GraphQL API
1763
- </label>
1764
- <ul class="md-nav__list" data-md-scrollfix>
1818
+ <li class="md-nav__item">
1819
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
1820
+ Power Port
1821
+ </a>
1822
+ </li>
1823
+
1824
+
1825
+
1765
1826
 
1766
1827
 
1767
1828
 
@@ -1769,16 +1830,23 @@
1769
1830
 
1770
1831
 
1771
1832
  <li class="md-nav__item">
1772
- <a href="../additional-features/graphql.html" class="md-nav__link">
1773
- Overview
1833
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
1834
+ Power Port Template
1774
1835
  </a>
1775
1836
  </li>
1776
1837
 
1777
1838
 
1778
1839
 
1779
1840
 
1780
- </ul>
1781
- </nav>
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+ <li class="md-nav__item">
1847
+ <a href="../models/dcim/rack.html" class="md-nav__link">
1848
+ Rack
1849
+ </a>
1782
1850
  </li>
1783
1851
 
1784
1852
 
@@ -1790,47 +1858,41 @@
1790
1858
 
1791
1859
 
1792
1860
  <li class="md-nav__item">
1793
- <a href="../plugins/index.html" class="md-nav__link">
1794
- Installing and Using Plugins
1861
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
1862
+ Rack Group
1795
1863
  </a>
1796
1864
  </li>
1797
1865
 
1798
1866
 
1799
1867
 
1800
1868
 
1801
- </ul>
1802
- </nav>
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+ <li class="md-nav__item">
1875
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
1876
+ Rack Reservation
1877
+ </a>
1803
1878
  </li>
1804
1879
 
1805
1880
 
1806
-
1807
-
1808
-
1809
-
1810
-
1881
+
1882
+
1883
+
1884
+
1811
1885
 
1812
1886
 
1813
1887
 
1814
-
1815
- <li class="md-nav__item md-nav__item--nested">
1816
-
1817
-
1818
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
1819
-
1820
-
1821
-
1822
-
1823
- <label class="md-nav__link" for="__nav_3">
1824
- App Developer Guide
1825
- <span class="md-nav__icon md-icon"></span>
1826
- </label>
1827
-
1828
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
1829
- <label class="md-nav__title" for="__nav_3">
1830
- <span class="md-nav__icon md-icon"></span>
1831
- App Developer Guide
1832
- </label>
1833
- <ul class="md-nav__list" data-md-scrollfix>
1888
+ <li class="md-nav__item">
1889
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
1890
+ Rear Port
1891
+ </a>
1892
+ </li>
1893
+
1894
+
1895
+
1834
1896
 
1835
1897
 
1836
1898
 
@@ -1838,8 +1900,8 @@
1838
1900
 
1839
1901
 
1840
1902
  <li class="md-nav__item">
1841
- <a href="../plugins/development.html" class="md-nav__link">
1842
- Developing Apps
1903
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
1904
+ Rear Port Template
1843
1905
  </a>
1844
1906
  </li>
1845
1907
 
@@ -1852,14 +1914,21 @@
1852
1914
 
1853
1915
 
1854
1916
  <li class="md-nav__item">
1855
- <a href="../plugins/porting-from-netbox.html" class="md-nav__link">
1856
- Porting NetBox Plugins to Nautobot
1917
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
1918
+ Virtual Chassis
1857
1919
  </a>
1858
1920
  </li>
1859
1921
 
1860
1922
 
1861
1923
 
1862
1924
 
1925
+ </ul>
1926
+ </nav>
1927
+ </li>
1928
+
1929
+
1930
+
1931
+
1863
1932
 
1864
1933
 
1865
1934
 
@@ -1869,20 +1938,21 @@
1869
1938
  <li class="md-nav__item md-nav__item--nested">
1870
1939
 
1871
1940
 
1872
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
1873
1941
 
1874
1942
 
1943
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
1875
1944
 
1876
1945
 
1877
- <label class="md-nav__link" for="__nav_3_3">
1878
- Code Reference
1946
+
1947
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
1948
+ Extras
1879
1949
  <span class="md-nav__icon md-icon"></span>
1880
1950
  </label>
1881
1951
 
1882
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
1883
- <label class="md-nav__title" for="__nav_3_3">
1952
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
1953
+ <label class="md-nav__title" for="__nav_2_8_3">
1884
1954
  <span class="md-nav__icon md-icon"></span>
1885
- Code Reference
1955
+ Extras
1886
1956
  </label>
1887
1957
  <ul class="md-nav__list" data-md-scrollfix>
1888
1958
 
@@ -1892,8 +1962,8 @@
1892
1962
 
1893
1963
 
1894
1964
  <li class="md-nav__item">
1895
- <a href="../code-reference/nautobot/apps/__init__.html" class="md-nav__link">
1896
- nautobot.apps
1965
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
1966
+ Config Context
1897
1967
  </a>
1898
1968
  </li>
1899
1969
 
@@ -1906,8 +1976,1120 @@
1906
1976
 
1907
1977
 
1908
1978
  <li class="md-nav__item">
1909
- <a href="../code-reference/nautobot/apps/admin.html" class="md-nav__link">
1910
- nautobot.apps.admin
1979
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
1980
+ Config Context Schema
1981
+ </a>
1982
+ </li>
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+ <li class="md-nav__item">
1993
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
1994
+ GraphQL Query
1995
+ </a>
1996
+ </li>
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+ <li class="md-nav__item">
2007
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2008
+ Image Attachment
2009
+ </a>
2010
+ </li>
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+ <li class="md-nav__item">
2021
+ <a href="../models/extras/job.html" class="md-nav__link">
2022
+ Job
2023
+ </a>
2024
+ </li>
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+ <li class="md-nav__item">
2035
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2036
+ Job Log Entry
2037
+ </a>
2038
+ </li>
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+ <li class="md-nav__item">
2049
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2050
+ Job Result
2051
+ </a>
2052
+ </li>
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+ <li class="md-nav__item">
2063
+ <a href="../models/extras/role.html" class="md-nav__link">
2064
+ Role
2065
+ </a>
2066
+ </li>
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+ <li class="md-nav__item">
2077
+ <a href="../models/extras/secret.html" class="md-nav__link">
2078
+ Secret
2079
+ </a>
2080
+ </li>
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+ <li class="md-nav__item">
2091
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2092
+ Secrets group
2093
+ </a>
2094
+ </li>
2095
+
2096
+
2097
+
2098
+
2099
+ </ul>
2100
+ </nav>
2101
+ </li>
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+ <li class="md-nav__item md-nav__item--nested">
2113
+
2114
+
2115
+
2116
+
2117
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2118
+
2119
+
2120
+
2121
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2122
+ IPAM
2123
+ <span class="md-nav__icon md-icon"></span>
2124
+ </label>
2125
+
2126
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2127
+ <label class="md-nav__title" for="__nav_2_8_4">
2128
+ <span class="md-nav__icon md-icon"></span>
2129
+ IPAM
2130
+ </label>
2131
+ <ul class="md-nav__list" data-md-scrollfix>
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+ <li class="md-nav__item">
2139
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2140
+ IP Address
2141
+ </a>
2142
+ </li>
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+ <li class="md-nav__item">
2153
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2154
+ Prefix
2155
+ </a>
2156
+ </li>
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+ <li class="md-nav__item">
2167
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2168
+ Rir
2169
+ </a>
2170
+ </li>
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+ <li class="md-nav__item">
2181
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2182
+ Route Target
2183
+ </a>
2184
+ </li>
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+ <li class="md-nav__item">
2195
+ <a href="../models/ipam/service.html" class="md-nav__link">
2196
+ Service
2197
+ </a>
2198
+ </li>
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+ <li class="md-nav__item">
2209
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2210
+ VLAN
2211
+ </a>
2212
+ </li>
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+ <li class="md-nav__item">
2223
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2224
+ VLAN Group
2225
+ </a>
2226
+ </li>
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+ <li class="md-nav__item">
2237
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2238
+ VRF
2239
+ </a>
2240
+ </li>
2241
+
2242
+
2243
+
2244
+
2245
+ </ul>
2246
+ </nav>
2247
+ </li>
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+ <li class="md-nav__item md-nav__item--nested">
2259
+
2260
+
2261
+
2262
+
2263
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
2264
+
2265
+
2266
+
2267
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2268
+ Tenancy
2269
+ <span class="md-nav__icon md-icon"></span>
2270
+ </label>
2271
+
2272
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2273
+ <label class="md-nav__title" for="__nav_2_8_5">
2274
+ <span class="md-nav__icon md-icon"></span>
2275
+ Tenancy
2276
+ </label>
2277
+ <ul class="md-nav__list" data-md-scrollfix>
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+ <li class="md-nav__item">
2285
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2286
+ Tenant
2287
+ </a>
2288
+ </li>
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+ <li class="md-nav__item">
2299
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2300
+ Tenant Group
2301
+ </a>
2302
+ </li>
2303
+
2304
+
2305
+
2306
+
2307
+ </ul>
2308
+ </nav>
2309
+ </li>
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+ <li class="md-nav__item md-nav__item--nested">
2321
+
2322
+
2323
+
2324
+
2325
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2326
+
2327
+
2328
+
2329
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2330
+ Users
2331
+ <span class="md-nav__icon md-icon"></span>
2332
+ </label>
2333
+
2334
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2335
+ <label class="md-nav__title" for="__nav_2_8_6">
2336
+ <span class="md-nav__icon md-icon"></span>
2337
+ Users
2338
+ </label>
2339
+ <ul class="md-nav__list" data-md-scrollfix>
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+ <li class="md-nav__item">
2347
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2348
+ Object Permission
2349
+ </a>
2350
+ </li>
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+ <li class="md-nav__item">
2361
+ <a href="../models/users/token.html" class="md-nav__link">
2362
+ Token
2363
+ </a>
2364
+ </li>
2365
+
2366
+
2367
+
2368
+
2369
+ </ul>
2370
+ </nav>
2371
+ </li>
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+ <li class="md-nav__item md-nav__item--nested">
2383
+
2384
+
2385
+
2386
+
2387
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2388
+
2389
+
2390
+
2391
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2392
+ Virtualization
2393
+ <span class="md-nav__icon md-icon"></span>
2394
+ </label>
2395
+
2396
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2397
+ <label class="md-nav__title" for="__nav_2_8_7">
2398
+ <span class="md-nav__icon md-icon"></span>
2399
+ Virtualization
2400
+ </label>
2401
+ <ul class="md-nav__list" data-md-scrollfix>
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+ <li class="md-nav__item">
2409
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2410
+ Cluster
2411
+ </a>
2412
+ </li>
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+ <li class="md-nav__item">
2423
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2424
+ Cluster Group
2425
+ </a>
2426
+ </li>
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+ <li class="md-nav__item">
2437
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2438
+ Cluster Type
2439
+ </a>
2440
+ </li>
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+ <li class="md-nav__item">
2451
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2452
+ Virtual Machine
2453
+ </a>
2454
+ </li>
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+ <li class="md-nav__item">
2465
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2466
+ VM Interface
2467
+ </a>
2468
+ </li>
2469
+
2470
+
2471
+
2472
+
2473
+ </ul>
2474
+ </nav>
2475
+ </li>
2476
+
2477
+
2478
+
2479
+
2480
+ </ul>
2481
+ </nav>
2482
+ </li>
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+ <li class="md-nav__item md-nav__item--nested">
2494
+
2495
+
2496
+
2497
+
2498
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2499
+
2500
+
2501
+
2502
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2503
+ Additional Features
2504
+ <span class="md-nav__icon md-icon"></span>
2505
+ </label>
2506
+
2507
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2508
+ <label class="md-nav__title" for="__nav_2_9">
2509
+ <span class="md-nav__icon md-icon"></span>
2510
+ Additional Features
2511
+ </label>
2512
+ <ul class="md-nav__list" data-md-scrollfix>
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+ <li class="md-nav__item">
2520
+ <a href="../additional-features/caching.html" class="md-nav__link">
2521
+ Caching
2522
+ </a>
2523
+ </li>
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+ <li class="md-nav__item">
2534
+ <a href="../additional-features/change-logging.html" class="md-nav__link">
2535
+ Change Logging
2536
+ </a>
2537
+ </li>
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
2547
+ <li class="md-nav__item">
2548
+ <a href="../models/extras/computedfield.html" class="md-nav__link">
2549
+ Computed Fields
2550
+ </a>
2551
+ </li>
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+ <li class="md-nav__item">
2562
+ <a href="../additional-features/config-contexts.html" class="md-nav__link">
2563
+ Context Data
2564
+ </a>
2565
+ </li>
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+ <li class="md-nav__item">
2576
+ <a href="../models/extras/customfield.html" class="md-nav__link">
2577
+ Custom Fields
2578
+ </a>
2579
+ </li>
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+ <li class="md-nav__item">
2590
+ <a href="../models/extras/customlink.html" class="md-nav__link">
2591
+ Custom Links
2592
+ </a>
2593
+ </li>
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+ <li class="md-nav__item">
2604
+ <a href="../models/extras/dynamicgroup.html" class="md-nav__link">
2605
+ Dynamic Groups
2606
+ </a>
2607
+ </li>
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+ <li class="md-nav__item">
2618
+ <a href="../models/extras/exporttemplate.html" class="md-nav__link">
2619
+ Export Templates
2620
+ </a>
2621
+ </li>
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+ <li class="md-nav__item">
2632
+ <a href="../models/extras/gitrepository.html" class="md-nav__link">
2633
+ Git Repositories
2634
+ </a>
2635
+ </li>
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+ <li class="md-nav__item">
2646
+ <a href="../additional-features/healthcheck.html" class="md-nav__link">
2647
+ Health Check
2648
+ </a>
2649
+ </li>
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+ <li class="md-nav__item">
2660
+ <a href="../additional-features/jobs.html" class="md-nav__link">
2661
+ Jobs
2662
+ </a>
2663
+ </li>
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+ <li class="md-nav__item">
2674
+ <a href="../models/extras/jobbutton.html" class="md-nav__link">
2675
+ Job Buttons
2676
+ </a>
2677
+ </li>
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+ <li class="md-nav__item">
2688
+ <a href="../models/extras/jobhook.html" class="md-nav__link">
2689
+ Job Hooks
2690
+ </a>
2691
+ </li>
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+ <li class="md-nav__item">
2702
+ <a href="../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
2703
+ Job Scheduling and Approvals
2704
+ </a>
2705
+ </li>
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+ <li class="md-nav__item">
2716
+ <a href="../additional-features/napalm.html" class="md-nav__link">
2717
+ NAPALM
2718
+ </a>
2719
+ </li>
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+ <li class="md-nav__item">
2730
+ <a href="../models/extras/note.html" class="md-nav__link">
2731
+ Notes
2732
+ </a>
2733
+ </li>
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+ <li class="md-nav__item">
2744
+ <a href="../additional-features/prometheus-metrics.html" class="md-nav__link">
2745
+ Prometheus Metrics
2746
+ </a>
2747
+ </li>
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+ <li class="md-nav__item">
2758
+ <a href="../models/extras/relationship.html" class="md-nav__link">
2759
+ Relationships
2760
+ </a>
2761
+ </li>
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+ <li class="md-nav__item">
2772
+ <a href="../models/extras/status.html" class="md-nav__link">
2773
+ Statuses
2774
+ </a>
2775
+ </li>
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+ <li class="md-nav__item">
2786
+ <a href="../models/extras/tag.html" class="md-nav__link">
2787
+ Tags
2788
+ </a>
2789
+ </li>
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+ <li class="md-nav__item">
2800
+ <a href="../additional-features/template-filters.html" class="md-nav__link">
2801
+ Template Filters
2802
+ </a>
2803
+ </li>
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+ <li class="md-nav__item">
2814
+ <a href="../models/extras/webhook.html" class="md-nav__link">
2815
+ Webhooks
2816
+ </a>
2817
+ </li>
2818
+
2819
+
2820
+
2821
+
2822
+ </ul>
2823
+ </nav>
2824
+ </li>
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+ <li class="md-nav__item md-nav__item--nested">
2836
+
2837
+
2838
+
2839
+
2840
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2841
+
2842
+
2843
+
2844
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2845
+ REST API
2846
+ <span class="md-nav__icon md-icon"></span>
2847
+ </label>
2848
+
2849
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2850
+ <label class="md-nav__title" for="__nav_2_10">
2851
+ <span class="md-nav__icon md-icon"></span>
2852
+ REST API
2853
+ </label>
2854
+ <ul class="md-nav__list" data-md-scrollfix>
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+ <li class="md-nav__item">
2862
+ <a href="../rest-api/overview.html" class="md-nav__link">
2863
+ Overview
2864
+ </a>
2865
+ </li>
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+ <li class="md-nav__item">
2876
+ <a href="../rest-api/filtering.html" class="md-nav__link">
2877
+ Filtering
2878
+ </a>
2879
+ </li>
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+ <li class="md-nav__item">
2890
+ <a href="../rest-api/authentication.html" class="md-nav__link">
2891
+ Authentication
2892
+ </a>
2893
+ </li>
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+ <li class="md-nav__item">
2904
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
2905
+ UI Endpoints
2906
+ </a>
2907
+ </li>
2908
+
2909
+
2910
+
2911
+
2912
+ </ul>
2913
+ </nav>
2914
+ </li>
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+ <li class="md-nav__item md-nav__item--nested">
2926
+
2927
+
2928
+
2929
+
2930
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
2931
+
2932
+
2933
+
2934
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
2935
+ GraphQL API
2936
+ <span class="md-nav__icon md-icon"></span>
2937
+ </label>
2938
+
2939
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
2940
+ <label class="md-nav__title" for="__nav_2_11">
2941
+ <span class="md-nav__icon md-icon"></span>
2942
+ GraphQL API
2943
+ </label>
2944
+ <ul class="md-nav__list" data-md-scrollfix>
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+ <li class="md-nav__item">
2952
+ <a href="../additional-features/graphql.html" class="md-nav__link">
2953
+ Overview
2954
+ </a>
2955
+ </li>
2956
+
2957
+
2958
+
2959
+
2960
+ </ul>
2961
+ </nav>
2962
+ </li>
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+ <li class="md-nav__item">
2973
+ <a href="../plugins/index.html" class="md-nav__link">
2974
+ Installing and Using Plugins
2975
+ </a>
2976
+ </li>
2977
+
2978
+
2979
+
2980
+
2981
+ </ul>
2982
+ </nav>
2983
+ </li>
2984
+
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+ <li class="md-nav__item md-nav__item--nested">
2996
+
2997
+
2998
+
2999
+
3000
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
3001
+
3002
+
3003
+
3004
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
3005
+ App Developer Guide
3006
+ <span class="md-nav__icon md-icon"></span>
3007
+ </label>
3008
+
3009
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
3010
+ <label class="md-nav__title" for="__nav_3">
3011
+ <span class="md-nav__icon md-icon"></span>
3012
+ App Developer Guide
3013
+ </label>
3014
+ <ul class="md-nav__list" data-md-scrollfix>
3015
+
3016
+
3017
+
3018
+
3019
+
3020
+
3021
+ <li class="md-nav__item">
3022
+ <a href="../plugins/development.html" class="md-nav__link">
3023
+ Developing Apps
3024
+ </a>
3025
+ </li>
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+ <li class="md-nav__item">
3036
+ <a href="../plugins/porting-from-netbox.html" class="md-nav__link">
3037
+ Porting NetBox Plugins to Nautobot
3038
+ </a>
3039
+ </li>
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+ <li class="md-nav__item md-nav__item--nested">
3051
+
3052
+
3053
+
3054
+
3055
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
3056
+
3057
+
3058
+
3059
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
3060
+ Code Reference
3061
+ <span class="md-nav__icon md-icon"></span>
3062
+ </label>
3063
+
3064
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
3065
+ <label class="md-nav__title" for="__nav_3_3">
3066
+ <span class="md-nav__icon md-icon"></span>
3067
+ Code Reference
3068
+ </label>
3069
+ <ul class="md-nav__list" data-md-scrollfix>
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+
3076
+ <li class="md-nav__item">
3077
+ <a href="../code-reference/nautobot/apps/__init__.html" class="md-nav__link">
3078
+ nautobot.apps
3079
+ </a>
3080
+ </li>
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+ <li class="md-nav__item">
3091
+ <a href="../code-reference/nautobot/apps/admin.html" class="md-nav__link">
3092
+ nautobot.apps.admin
1911
3093
  </a>
1912
3094
  </li>
1913
3095
 
@@ -2106,17 +3288,18 @@
2106
3288
  <li class="md-nav__item md-nav__item--nested">
2107
3289
 
2108
3290
 
2109
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2110
3291
 
2111
3292
 
3293
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
2112
3294
 
2113
3295
 
2114
- <label class="md-nav__link" for="__nav_4">
3296
+
3297
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2115
3298
  Core Developer Guide
2116
3299
  <span class="md-nav__icon md-icon"></span>
2117
3300
  </label>
2118
3301
 
2119
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3302
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2120
3303
  <label class="md-nav__title" for="__nav_4">
2121
3304
  <span class="md-nav__icon md-icon"></span>
2122
3305
  Core Developer Guide
@@ -2352,17 +3535,18 @@
2352
3535
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
2353
3536
 
2354
3537
 
2355
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" checked>
2356
3538
 
2357
3539
 
3540
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
3541
+
2358
3542
 
2359
3543
 
2360
- <label class="md-nav__link" for="__nav_5">
3544
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
2361
3545
  Release Notes
2362
3546
  <span class="md-nav__icon md-icon"></span>
2363
3547
  </label>
2364
3548
 
2365
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
3549
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
2366
3550
  <label class="md-nav__title" for="__nav_5">
2367
3551
  <span class="md-nav__icon md-icon"></span>
2368
3552
  Release Notes
@@ -2392,7 +3576,7 @@
2392
3576
 
2393
3577
  <li class="md-nav__item md-nav__item--active">
2394
3578
 
2395
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
3579
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
2396
3580
 
2397
3581
 
2398
3582
 
@@ -2450,6 +3634,13 @@
2450
3634
  Added Site Fields to Location (#2954)
2451
3635
  </a>
2452
3636
 
3637
+ </li>
3638
+
3639
+ <li class="md-nav__item">
3640
+ <a href="#added-depth-rest-api-query-parameter" class="md-nav__link">
3641
+ Added Depth REST API Query Parameter
3642
+ </a>
3643
+
2453
3644
  </li>
2454
3645
 
2455
3646
  <li class="md-nav__item">
@@ -2511,6 +3702,20 @@
2511
3702
  Collapsed nautobot.utilities into nautobot.core (#2721)
2512
3703
  </a>
2513
3704
 
3705
+ </li>
3706
+
3707
+ <li class="md-nav__item">
3708
+ <a href="#rest-api-versioning-behavior-2799" class="md-nav__link">
3709
+ REST API Versioning Behavior (#2799)
3710
+ </a>
3711
+
3712
+ </li>
3713
+
3714
+ <li class="md-nav__item">
3715
+ <a href="#revamped-csv-import-and-export-2569-3715" class="md-nav__link">
3716
+ Revamped CSV Import and Export (#2569, #3715)
3717
+ </a>
3718
+
2514
3719
  </li>
2515
3720
 
2516
3721
  <li class="md-nav__item">
@@ -2561,23 +3766,131 @@
2561
3766
  </li>
2562
3767
 
2563
3768
  <li class="md-nav__item">
2564
- <a href="#removed" class="md-nav__link">
2565
- Removed
3769
+ <a href="#removed" class="md-nav__link">
3770
+ Removed
3771
+ </a>
3772
+
3773
+ <nav class="md-nav" aria-label="Removed">
3774
+ <ul class="md-nav__list">
3775
+
3776
+ <li class="md-nav__item">
3777
+ <a href="#removed-brief-rest-api-query-parameter" class="md-nav__link">
3778
+ Removed Brief REST API Query Parameter
3779
+ </a>
3780
+
3781
+ </li>
3782
+
3783
+ <li class="md-nav__item">
3784
+ <a href="#removed-django-cacheops-1721" class="md-nav__link">
3785
+ Removed django-cacheops (#1721)
3786
+ </a>
3787
+
3788
+ </li>
3789
+
3790
+ <li class="md-nav__item">
3791
+ <a href="#removed-redundant-filter-fields-2804" class="md-nav__link">
3792
+ Removed Redundant Filter Fields (#2804)
3793
+ </a>
3794
+
3795
+ </li>
3796
+
3797
+ <li class="md-nav__item">
3798
+ <a href="#removed-rq-support-2523" class="md-nav__link">
3799
+ Removed RQ support (#2523)
3800
+ </a>
3801
+
3802
+ </li>
3803
+
3804
+ </ul>
3805
+ </nav>
3806
+
3807
+ </li>
3808
+
3809
+ </ul>
3810
+ </nav>
3811
+
3812
+ </li>
3813
+
3814
+ <li class="md-nav__item">
3815
+ <a href="#v200-beta1-2023-06-06" class="md-nav__link">
3816
+ v2.0.0-beta.1 (2023-06-06)
3817
+ </a>
3818
+
3819
+ <nav class="md-nav" aria-label="v2.0.0-beta.1 (2023-06-06)">
3820
+ <ul class="md-nav__list">
3821
+
3822
+ <li class="md-nav__item">
3823
+ <a href="#added_1" class="md-nav__link">
3824
+ Added
3825
+ </a>
3826
+
3827
+ </li>
3828
+
3829
+ <li class="md-nav__item">
3830
+ <a href="#changed_1" class="md-nav__link">
3831
+ Changed
3832
+ </a>
3833
+
3834
+ </li>
3835
+
3836
+ <li class="md-nav__item">
3837
+ <a href="#dependencies" class="md-nav__link">
3838
+ Dependencies
3839
+ </a>
3840
+
3841
+ </li>
3842
+
3843
+ <li class="md-nav__item">
3844
+ <a href="#fixed" class="md-nav__link">
3845
+ Fixed
3846
+ </a>
3847
+
3848
+ </li>
3849
+
3850
+ <li class="md-nav__item">
3851
+ <a href="#removed_1" class="md-nav__link">
3852
+ Removed
3853
+ </a>
3854
+
3855
+ </li>
3856
+
3857
+ </ul>
3858
+ </nav>
3859
+
3860
+ </li>
3861
+
3862
+ <li class="md-nav__item">
3863
+ <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
3864
+ v2.0.0-alpha.3 (2023-04-13)
3865
+ </a>
3866
+
3867
+ <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
3868
+ <ul class="md-nav__list">
3869
+
3870
+ <li class="md-nav__item">
3871
+ <a href="#added_2" class="md-nav__link">
3872
+ Added
3873
+ </a>
3874
+
3875
+ </li>
3876
+
3877
+ <li class="md-nav__item">
3878
+ <a href="#changed_2" class="md-nav__link">
3879
+ Changed
2566
3880
  </a>
2567
3881
 
2568
- <nav class="md-nav" aria-label="Removed">
2569
- <ul class="md-nav__list">
3882
+ </li>
2570
3883
 
2571
3884
  <li class="md-nav__item">
2572
- <a href="#removed-redundant-filter-fields-2804" class="md-nav__link">
2573
- Removed Redundant Filter Fields (#2804)
3885
+ <a href="#dependencies_1" class="md-nav__link">
3886
+ Dependencies
2574
3887
  </a>
2575
3888
 
2576
3889
  </li>
2577
3890
 
2578
3891
  <li class="md-nav__item">
2579
- <a href="#removed-rq-support-2523" class="md-nav__link">
2580
- Removed RQ support (#2523)
3892
+ <a href="#removed_2" class="md-nav__link">
3893
+ Removed
2581
3894
  </a>
2582
3895
 
2583
3896
  </li>
@@ -2585,11 +3898,6 @@
2585
3898
  </ul>
2586
3899
  </nav>
2587
3900
 
2588
- </li>
2589
-
2590
- </ul>
2591
- </nav>
2592
-
2593
3901
  </li>
2594
3902
 
2595
3903
  <li class="md-nav__item">
@@ -2601,35 +3909,35 @@
2601
3909
  <ul class="md-nav__list">
2602
3910
 
2603
3911
  <li class="md-nav__item">
2604
- <a href="#added_1" class="md-nav__link">
3912
+ <a href="#added_3" class="md-nav__link">
2605
3913
  Added
2606
3914
  </a>
2607
3915
 
2608
3916
  </li>
2609
3917
 
2610
3918
  <li class="md-nav__item">
2611
- <a href="#changed_1" class="md-nav__link">
3919
+ <a href="#changed_3" class="md-nav__link">
2612
3920
  Changed
2613
3921
  </a>
2614
3922
 
2615
3923
  </li>
2616
3924
 
2617
3925
  <li class="md-nav__item">
2618
- <a href="#dependencies" class="md-nav__link">
3926
+ <a href="#dependencies_2" class="md-nav__link">
2619
3927
  Dependencies
2620
3928
  </a>
2621
3929
 
2622
3930
  </li>
2623
3931
 
2624
3932
  <li class="md-nav__item">
2625
- <a href="#fixed" class="md-nav__link">
3933
+ <a href="#fixed_1" class="md-nav__link">
2626
3934
  Fixed
2627
3935
  </a>
2628
3936
 
2629
3937
  </li>
2630
3938
 
2631
3939
  <li class="md-nav__item">
2632
- <a href="#removed_1" class="md-nav__link">
3940
+ <a href="#removed_3" class="md-nav__link">
2633
3941
  Removed
2634
3942
  </a>
2635
3943
 
@@ -2649,28 +3957,28 @@
2649
3957
  <ul class="md-nav__list">
2650
3958
 
2651
3959
  <li class="md-nav__item">
2652
- <a href="#added_2" class="md-nav__link">
3960
+ <a href="#added_4" class="md-nav__link">
2653
3961
  Added
2654
3962
  </a>
2655
3963
 
2656
3964
  </li>
2657
3965
 
2658
3966
  <li class="md-nav__item">
2659
- <a href="#changed_2" class="md-nav__link">
3967
+ <a href="#changed_4" class="md-nav__link">
2660
3968
  Changed
2661
3969
  </a>
2662
3970
 
2663
3971
  </li>
2664
3972
 
2665
3973
  <li class="md-nav__item">
2666
- <a href="#fixed_1" class="md-nav__link">
3974
+ <a href="#fixed_2" class="md-nav__link">
2667
3975
  Fixed
2668
3976
  </a>
2669
3977
 
2670
3978
  </li>
2671
3979
 
2672
3980
  <li class="md-nav__item">
2673
- <a href="#removed_2" class="md-nav__link">
3981
+ <a href="#removed_4" class="md-nav__link">
2674
3982
  Removed
2675
3983
  </a>
2676
3984
 
@@ -2791,17 +4099,18 @@
2791
4099
  <li class="md-nav__item md-nav__item--nested">
2792
4100
 
2793
4101
 
2794
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2795
4102
 
2796
4103
 
4104
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
4105
+
2797
4106
 
2798
4107
 
2799
- <label class="md-nav__link" for="__nav_6">
4108
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
2800
4109
  Nautobot Apps
2801
4110
  <span class="md-nav__icon md-icon"></span>
2802
4111
  </label>
2803
4112
 
2804
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
4113
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
2805
4114
  <label class="md-nav__title" for="__nav_6">
2806
4115
  <span class="md-nav__icon md-icon"></span>
2807
4116
  Nautobot Apps
@@ -2831,17 +4140,18 @@
2831
4140
  <li class="md-nav__item md-nav__item--nested">
2832
4141
 
2833
4142
 
2834
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2835
4143
 
2836
4144
 
4145
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
2837
4146
 
2838
4147
 
2839
- <label class="md-nav__link" for="__nav_6_2">
4148
+
4149
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2840
4150
  Network to Code App Docs
2841
4151
  <span class="md-nav__icon md-icon"></span>
2842
4152
  </label>
2843
4153
 
2844
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
4154
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
2845
4155
  <label class="md-nav__title" for="__nav_6_2">
2846
4156
  <span class="md-nav__icon md-icon"></span>
2847
4157
  Network to Code App Docs
@@ -2868,8 +4178,8 @@
2868
4178
 
2869
4179
 
2870
4180
  <li class="md-nav__item">
2871
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
2872
- Nautobot Firewall Models
4181
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
4182
+ Nautobot Circuit Maintenance
2873
4183
  </a>
2874
4184
  </li>
2875
4185
 
@@ -2882,8 +4192,36 @@
2882
4192
 
2883
4193
 
2884
4194
  <li class="md-nav__item">
2885
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
2886
- Nautobot Plugin Nornir
4195
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
4196
+ Nautobot Device LifeCycle Management
4197
+ </a>
4198
+ </li>
4199
+
4200
+
4201
+
4202
+
4203
+
4204
+
4205
+
4206
+
4207
+
4208
+ <li class="md-nav__item">
4209
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
4210
+ Nautobot Device Onboarding
4211
+ </a>
4212
+ </li>
4213
+
4214
+
4215
+
4216
+
4217
+
4218
+
4219
+
4220
+
4221
+
4222
+ <li class="md-nav__item">
4223
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
4224
+ Nautobot Firewall Models
2887
4225
  </a>
2888
4226
  </li>
2889
4227
 
@@ -2910,7 +4248,21 @@
2910
4248
 
2911
4249
 
2912
4250
  <li class="md-nav__item">
2913
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
4251
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
4252
+ Nautobot Plugin Nornir
4253
+ </a>
4254
+ </li>
4255
+
4256
+
4257
+
4258
+
4259
+
4260
+
4261
+
4262
+
4263
+
4264
+ <li class="md-nav__item">
4265
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
2914
4266
  Nautobot Single Source of Truth
2915
4267
  </a>
2916
4268
  </li>
@@ -3014,6 +4366,13 @@
3014
4366
  Added Site Fields to Location (#2954)
3015
4367
  </a>
3016
4368
 
4369
+ </li>
4370
+
4371
+ <li class="md-nav__item">
4372
+ <a href="#added-depth-rest-api-query-parameter" class="md-nav__link">
4373
+ Added Depth REST API Query Parameter
4374
+ </a>
4375
+
3017
4376
  </li>
3018
4377
 
3019
4378
  <li class="md-nav__item">
@@ -3075,6 +4434,20 @@
3075
4434
  Collapsed nautobot.utilities into nautobot.core (#2721)
3076
4435
  </a>
3077
4436
 
4437
+ </li>
4438
+
4439
+ <li class="md-nav__item">
4440
+ <a href="#rest-api-versioning-behavior-2799" class="md-nav__link">
4441
+ REST API Versioning Behavior (#2799)
4442
+ </a>
4443
+
4444
+ </li>
4445
+
4446
+ <li class="md-nav__item">
4447
+ <a href="#revamped-csv-import-and-export-2569-3715" class="md-nav__link">
4448
+ Revamped CSV Import and Export (#2569, #3715)
4449
+ </a>
4450
+
3078
4451
  </li>
3079
4452
 
3080
4453
  <li class="md-nav__item">
@@ -3132,6 +4505,20 @@
3132
4505
  <nav class="md-nav" aria-label="Removed">
3133
4506
  <ul class="md-nav__list">
3134
4507
 
4508
+ <li class="md-nav__item">
4509
+ <a href="#removed-brief-rest-api-query-parameter" class="md-nav__link">
4510
+ Removed Brief REST API Query Parameter
4511
+ </a>
4512
+
4513
+ </li>
4514
+
4515
+ <li class="md-nav__item">
4516
+ <a href="#removed-django-cacheops-1721" class="md-nav__link">
4517
+ Removed django-cacheops (#1721)
4518
+ </a>
4519
+
4520
+ </li>
4521
+
3135
4522
  <li class="md-nav__item">
3136
4523
  <a href="#removed-redundant-filter-fields-2804" class="md-nav__link">
3137
4524
  Removed Redundant Filter Fields (#2804)
@@ -3157,11 +4544,11 @@
3157
4544
  </li>
3158
4545
 
3159
4546
  <li class="md-nav__item">
3160
- <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
3161
- v2.0.0-alpha.2 (2023-03-29)
4547
+ <a href="#v200-beta1-2023-06-06" class="md-nav__link">
4548
+ v2.0.0-beta.1 (2023-06-06)
3162
4549
  </a>
3163
4550
 
3164
- <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
4551
+ <nav class="md-nav" aria-label="v2.0.0-beta.1 (2023-06-06)">
3165
4552
  <ul class="md-nav__list">
3166
4553
 
3167
4554
  <li class="md-nav__item">
@@ -3205,11 +4592,11 @@
3205
4592
  </li>
3206
4593
 
3207
4594
  <li class="md-nav__item">
3208
- <a href="#v200-alpha1-2023-01-31" class="md-nav__link">
3209
- v2.0.0-alpha.1 (2023-01-31)
4595
+ <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
4596
+ v2.0.0-alpha.3 (2023-04-13)
3210
4597
  </a>
3211
4598
 
3212
- <nav class="md-nav" aria-label="v2.0.0-alpha.1 (2023-01-31)">
4599
+ <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
3213
4600
  <ul class="md-nav__list">
3214
4601
 
3215
4602
  <li class="md-nav__item">
@@ -3224,6 +4611,54 @@
3224
4611
  Changed
3225
4612
  </a>
3226
4613
 
4614
+ </li>
4615
+
4616
+ <li class="md-nav__item">
4617
+ <a href="#dependencies_1" class="md-nav__link">
4618
+ Dependencies
4619
+ </a>
4620
+
4621
+ </li>
4622
+
4623
+ <li class="md-nav__item">
4624
+ <a href="#removed_2" class="md-nav__link">
4625
+ Removed
4626
+ </a>
4627
+
4628
+ </li>
4629
+
4630
+ </ul>
4631
+ </nav>
4632
+
4633
+ </li>
4634
+
4635
+ <li class="md-nav__item">
4636
+ <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
4637
+ v2.0.0-alpha.2 (2023-03-29)
4638
+ </a>
4639
+
4640
+ <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
4641
+ <ul class="md-nav__list">
4642
+
4643
+ <li class="md-nav__item">
4644
+ <a href="#added_3" class="md-nav__link">
4645
+ Added
4646
+ </a>
4647
+
4648
+ </li>
4649
+
4650
+ <li class="md-nav__item">
4651
+ <a href="#changed_3" class="md-nav__link">
4652
+ Changed
4653
+ </a>
4654
+
4655
+ </li>
4656
+
4657
+ <li class="md-nav__item">
4658
+ <a href="#dependencies_2" class="md-nav__link">
4659
+ Dependencies
4660
+ </a>
4661
+
3227
4662
  </li>
3228
4663
 
3229
4664
  <li class="md-nav__item">
@@ -3234,7 +4669,48 @@
3234
4669
  </li>
3235
4670
 
3236
4671
  <li class="md-nav__item">
3237
- <a href="#removed_2" class="md-nav__link">
4672
+ <a href="#removed_3" class="md-nav__link">
4673
+ Removed
4674
+ </a>
4675
+
4676
+ </li>
4677
+
4678
+ </ul>
4679
+ </nav>
4680
+
4681
+ </li>
4682
+
4683
+ <li class="md-nav__item">
4684
+ <a href="#v200-alpha1-2023-01-31" class="md-nav__link">
4685
+ v2.0.0-alpha.1 (2023-01-31)
4686
+ </a>
4687
+
4688
+ <nav class="md-nav" aria-label="v2.0.0-alpha.1 (2023-01-31)">
4689
+ <ul class="md-nav__list">
4690
+
4691
+ <li class="md-nav__item">
4692
+ <a href="#added_4" class="md-nav__link">
4693
+ Added
4694
+ </a>
4695
+
4696
+ </li>
4697
+
4698
+ <li class="md-nav__item">
4699
+ <a href="#changed_4" class="md-nav__link">
4700
+ Changed
4701
+ </a>
4702
+
4703
+ </li>
4704
+
4705
+ <li class="md-nav__item">
4706
+ <a href="#fixed_2" class="md-nav__link">
4707
+ Fixed
4708
+ </a>
4709
+
4710
+ </li>
4711
+
4712
+ <li class="md-nav__item">
4713
+ <a href="#removed_4" class="md-nav__link">
3238
4714
  Removed
3239
4715
  </a>
3240
4716
 
@@ -3259,10 +4735,8 @@
3259
4735
 
3260
4736
 
3261
4737
 
3262
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/release-notes/version-2.0.md" title="Edit this page" class="md-content__button md-icon">
3263
-
3264
- <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>
3265
- </a>
4738
+
4739
+
3266
4740
 
3267
4741
 
3268
4742
  <!-- markdownlint-disable MD024 -->
@@ -3276,6 +4750,8 @@
3276
4750
  <p>DeviceRole, RackRole, IPAM Role, and IPAddressRoleChoices have all been merged into a single generic Role model. A role can now be created and associated to one or more of the content-types that previously implemented role as a field. These model content-types include dcim.device, dcim.rack, virtualization.virtualmachine, ipam.ipaddress, ipam.prefix, and ipam.vlan.</p>
3277
4751
  <h4 id="added-site-fields-to-location-2954">Added Site Fields to Location (<a href="https://github.com/nautobot/nautobot/issues/2954">#2954</a>)<a class="headerlink" href="#added-site-fields-to-location-2954" title="Permanent link">&para;</a></h4>
3278
4752
  <p>Added Site Model Fields to Location. Location Model now has <code>asn</code>, <code>comments</code>, <code>contact_email</code>, <code>contact_name</code>, <code>contact_phone</code>, <code>facility</code>, <code>latitude</code>, <code>longitude</code>, <code>physical_address</code>, <code>shipping_address</code> and <code>time_zone</code> fields.</p>
4753
+ <h4 id="added-depth-rest-api-query-parameter">Added Depth REST API Query Parameter<a class="headerlink" href="#added-depth-rest-api-query-parameter" title="Permanent link">&para;</a></h4>
4754
+ <p>Added the <code>?depth</code> query parameter in Nautobot v2.X to replace the <code>?brief</code> parameter in the REST API. It enables <a href="https://www.django-rest-framework.org/api-guide/serializers/#specifying-nested-serialization">nested serialization</a> functionality and offers a more dynamic and comprehensive browsable API. It allows users greater control of the API response data and it is available for both retrieving a single object and a list of objects. This parameter is a positive integer value that can range from 0 to 10. To learn more more, check out the <a href="../rest-api/overview.md/#depth-query-parameter">documentation on the <code>?depth</code> query parameter</a>.</p>
3279
4755
  <h4 id="natural-key-support-across-nautobot-models-2900">Natural Key Support Across Nautobot Models (<a href="https://github.com/nautobot/nautobot/issues/2900">#2900</a>)<a class="headerlink" href="#natural-key-support-across-nautobot-models-2900" title="Permanent link">&para;</a></h4>
3280
4756
  <p>Nautobot's <code>BaseModel</code> base class and related classes now implement automatic support for Django <a href="https://docs.djangoproject.com/en/3.2/topics/serialization/#natural-keys">natural keys</a> for lookup and referencing, as well as supporting a <code>natural_key_slug</code> concept similar to that introduced by <code>django-natural-keys</code>. (Nautobot does not depend on <code>django-natural-keys</code> but its implementation is heavily inspired by that project.) For example:</p>
3281
4757
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">DeviceType</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">first</span><span class="p">()</span><span class="o">.</span><span class="n">natural_key</span><span class="p">()</span>
@@ -3395,6 +4871,12 @@
3395
4871
  <p>Check out the <a href="../installation/region-and-site-data-migration-guide.html#region-and-site-related-data-model-migration-guide-for-existing-nautobot-app-installations">Region and Site Related Data Model Migration Guide</a> to learn how to migrate your Nautobot Apps and data models from <code>Site</code> and <code>Region</code> to <code>Location</code>.</p>
3396
4872
  <h4 id="collapsed-nautobotutilities-into-nautobotcore-2721">Collapsed <code>nautobot.utilities</code> into <code>nautobot.core</code> (<a href="https://github.com/nautobot/nautobot/issues/2721">#2721</a>)<a class="headerlink" href="#collapsed-nautobotutilities-into-nautobotcore-2721" title="Permanent link">&para;</a></h4>
3397
4873
  <p><code>nautobot.utilities</code> no longer exists as a separate Python module or Django app. Its functionality has been collapsed into the <code>nautobot.core</code> app. See details at <a href="../installation/upgrading-from-nautobot-v1.html#python-code-location-changes">Python Code Location Changes</a>.</p>
4874
+ <h4 id="rest-api-versioning-behavior-2799">REST API Versioning Behavior (<a href="https://github.com/nautobot/nautobot/issues/2799">#2799</a>)<a class="headerlink" href="#rest-api-versioning-behavior-2799" title="Permanent link">&para;</a></h4>
4875
+ <p>In Nautobot 2.0 and later, the REST API defaults, when the caller doesn't request a specific API version, to using the latest available version of the REST API. This is a change from Nautobot 1.x, where the default behavior was to use the 1.2 version of the REST API even when newer versions were available.</p>
4876
+ <h4 id="revamped-csv-import-and-export-2569-3715">Revamped CSV Import and Export (<a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a>, <a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a>)<a class="headerlink" href="#revamped-csv-import-and-export-2569-3715" title="Permanent link">&para;</a></h4>
4877
+ <p>Exporting objects and lists of objects to CSV format has been totally reimplemented in a new framework for ease of use and maintainability. Instead of accessing <code>http://nautobot/&lt;app&gt;/&lt;model&gt;/?export</code> you will now use the URL pattern <code>http://nautobot/api/&lt;app&gt;/&lt;model&gt;/?format=csv</code>, as the new CSV renderer is based on the REST API serializer definitions. This results in substantially more comprehensive CSV representations of many models.</p>
4878
+ <p>Conversely, importing objects from CSV format has also been reimplemented in the same new framework. The REST API can now accept CSV files as well as the existing JSON support, and the UI for importing CSVs uses this same framework behind the scenes.</p>
4879
+ <p>An immediate benefit you can notice from this reimplementation is that CSVs should now <strong>generally</strong> be "round-trip" capable, meaning that you can export a set of records to CSV format and then import that CSV into a different Nautobot instance (or delete the records and use the CSV to recreate them) without needing to "massage" the CSV into a different set of columns or fields.</p>
3398
4880
  <h4 id="renamed-database-foreign-keys-and-related-names-2520">Renamed Database Foreign Keys and Related Names (<a href="https://github.com/nautobot/nautobot/issues/2520">#2520</a>)<a class="headerlink" href="#renamed-database-foreign-keys-and-related-names-2520" title="Permanent link">&para;</a></h4>
3399
4881
  <p>Some Foreign Key fields have been renamed to follow a more self-consistent pattern across the Nautobot app. This change is aimed to offer more clarity and predictability when it comes to related object database operations:</p>
3400
4882
  <p>For example in v1.x to create a circuit object with <code>type</code> "circuit-type-1", you would do:</p>
@@ -3456,6 +4938,11 @@
3456
4938
  <p>Existing prefixes with a status of "Container" will be migrated to the "Container" type. Existing prefixes with <code>is_pool</code> set will be migrated to the "Pool" type. Prefixes with both <code>is_pool</code> set and a status of "Container" will be migrated to the "Pool" type.</p>
3457
4939
  <p>The "Container" status will be removed and all prefixes will be migrated to the "Active" status if it exists. If the "Active" status was deleted, prefixes will be migrated to the first available prefix status in the database that is not "Container".</p>
3458
4940
  <h3 id="removed">Removed<a class="headerlink" href="#removed" title="Permanent link">&para;</a></h3>
4941
+ <h4 id="removed-brief-rest-api-query-parameter">Removed Brief REST API Query Parameter<a class="headerlink" href="#removed-brief-rest-api-query-parameter" title="Permanent link">&para;</a></h4>
4942
+ <p>Support for <code>?brief</code> REST API query parameter and <code>Nested*Serializers</code> have been removed in Nautobot v2.X. They are replaced by the new <a href="../rest-api/overview.md/#depth-query-parameter"><code>?depth</code> query parameter</a>.</p>
4943
+ <h4 id="removed-django-cacheops-1721">Removed <code>django-cacheops</code> (<a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a>)<a class="headerlink" href="#removed-django-cacheops-1721" title="Permanent link">&para;</a></h4>
4944
+ <p>Nautobot no longer uses <code>django-cacheops</code> for caching of database queries or other information. In some cases this has been replaced by the use of Django's native Redis caching capabilities.</p>
4945
+ <p>The configuration settings <code>CACHEOPS</code>, <code>CACHEOPS_DEFAULTS</code>, <code>CACHEOPS_DEGRADE_ON_FAILURE</code>, <code>CACHEOPS_ENABLED</code>, <code>CACHEOPS_HEALTH_CHECK_ENABLED</code>, <code>CACHEOPS_REDIS</code>, etc. are now unused by Nautobot and may be removed from your configuration.</p>
3459
4946
  <h4 id="removed-redundant-filter-fields-2804">Removed Redundant Filter Fields (<a href="https://github.com/nautobot/nautobot/pull/2804">#2804</a>)<a class="headerlink" href="#removed-redundant-filter-fields-2804" title="Permanent link">&para;</a></h4>
3460
4947
  <p>As a part of breaking changes made in v2.X, shadowed filter/filterset fields are being removed throughout Nautobot.</p>
3461
4948
  <p>In Nautobot 1.x, for some of the foreign-key related fields:
@@ -3470,9 +4957,197 @@
3470
4957
  <h4 id="removed-rq-support-2523">Removed RQ support (<a href="https://github.com/nautobot/nautobot/issue/2523">#2523</a>)<a class="headerlink" href="#removed-rq-support-2523" title="Permanent link">&para;</a></h4>
3471
4958
  <p>Support for RQ and <code>django-rq</code>, deprecated since Nautobot 1.1.0, has been fully removed from Nautobot 2.0.</p>
3472
4959
  <!-- towncrier release notes start -->
3473
- <h2 id="v200-alpha2-2023-03-29">v2.0.0-alpha.2 (2023-03-29)<a class="headerlink" href="#v200-alpha2-2023-03-29" title="Permanent link">&para;</a></h2>
4960
+ <h2 id="v200-beta1-2023-06-06">v2.0.0-beta.1 (2023-06-06)<a class="headerlink" href="#v200-beta1-2023-06-06" title="Permanent link">&para;</a></h2>
3474
4961
  <h3 id="added_1">Added<a class="headerlink" href="#added_1" title="Permanent link">&para;</a></h3>
3475
4962
  <ul>
4963
+ <li><a href="https://github.com/nautobot/nautobot/issues/851">#851</a> - Added list view with CSV import/export buttons for <code>CircuitTermination</code> objects.</li>
4964
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Added <code>created</code> and <code>last_updated</code> fields on the <code>VMInterface</code> model. When migrating to this release, these fields will default to <code>None</code> for any pre-existing instances of this model.</li>
4965
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Added job stdout/stderr redirection to database <code>JobLogEntry</code> records.</li>
4966
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Added support to skip job logs from being written to the database.</li>
4967
+ <li><a href="https://github.com/nautobot/nautobot/issues/2901">#2901</a> - Added <code>get_absolute_url</code> method on <code>BaseModel</code> which will attempt to resolve the detail view route for all subclassed models.</li>
4968
+ <li><a href="https://github.com/nautobot/nautobot/issues/3192">#3192</a> - Added a data migration to migrate existing ScheduledJob instances to support new format.</li>
4969
+ <li><a href="https://github.com/nautobot/nautobot/issues/3203">#3203</a> - Added a <code>nautobot-server build_ui</code> command for building the web UI</li>
4970
+ <li><a href="https://github.com/nautobot/nautobot/issues/3237">#3237</a> - Added Node.JS to Docker final image, bundled <code>node_modules</code> to speed up rebuilds.</li>
4971
+ <li><a href="https://github.com/nautobot/nautobot/issues/3615">#3615</a> - Added toggle buttons between Legacy UI and New UI.</li>
4972
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>pre_delete</code> signal to nullify the device's <code>primary_ip</code> field/fields if its primary ips are removed from interface's <code>ip_addresses</code> m2m field.</li>
4973
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>pre_save</code> signal to catch invalid operations in manual creations of <code>IPAddressToInterface</code>.</li>
4974
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>unique_together</code> for through model <code>IPAddressToInterface</code>.</li>
4975
+ <li><a href="https://github.com/nautobot/nautobot/issues/3651">#3651</a> - Added <code>home_url</code>, <code>config_url</code>, and <code>docs_url</code> keys to the <code>/api/plugins/installed-plugins/</code> REST API endpoint.</li>
4976
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Added optional <code>api</code> argument to <code>BaseModel.get_absolute_url()</code>.</li>
4977
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Added basic Redis caching for <code>TreeModel.display</code> to reduce redundant queries when listing such objects.</li>
4978
+ <li><a href="https://github.com/nautobot/nautobot/issues/3708">#3708</a> - Added sorting support to the REST API via the <code>sort</code> query parameter.</li>
4979
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Added <code>celery_kwargs</code> field to <code>JobResult</code> and <code>ScheduledJob</code> models.</li>
4980
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Added generic test for GET/PUT round-trip in the REST API.</li>
4981
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Added support for <code>{"value": "x"}</code> format when writing to ChoiceFields in the REST API, making round-trip data easier.</li>
4982
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added <code>NautobotCSVParser</code> class, providing the ability for the REST API to accept CSV as an input format.</li>
4983
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added ability to specify a <code>parent_bay</code> when creating a Device via the REST API.</li>
4984
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added <code>APIViewTestCases.CreateObjectViewTestCase.test_recreate_object_csv</code> generic test, testing the "round-trip" capability of each API endpoint's CSV export and import.</li>
4985
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added (temporary) <code>natural_key_field_names</code> to <code>IPAddress</code>, <code>Prefix</code>, <code>RackReservation</code>, <code>ScheduledJob</code>, and <code>Service</code> models.</li>
4986
+ <li><a href="https://github.com/nautobot/nautobot/issues/3721">#3721</a> - Added App provided model view override.</li>
4987
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Added <code>termination_type</code> filter to <code>CableFilterSet</code>.</li>
4988
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Added <code>natural_key_slug</code> field to REST API serializers.</li>
4989
+ <li><a href="https://github.com/nautobot/nautobot/issues/3736">#3736</a> - Added App provided custom route view.</li>
4990
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Added natural-key-slug information to UI detail views.</li>
4991
+ <li><a href="https://github.com/nautobot/nautobot/issues/3754">#3754</a> - Added loading widget to the left of the ObjectListTable Buttons after initial data load.</li>
4992
+ <li><a href="https://github.com/nautobot/nautobot/issues/3759">#3759</a> - Implemented IPAM Namespace &amp; parenting data migrations.</li>
4993
+ <li><a href="https://github.com/nautobot/nautobot/issues/3767">#3767</a> - Added <code>detail-view-config</code> API endpoint to <code>ModelViewSetMixin</code>.</li>
4994
+ <li><a href="https://github.com/nautobot/nautobot/issues/3804">#3804</a> - Added feature to redirect all add and edit views to legacy UI.</li>
4995
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Added <code>bool</code> return value for <code>Nautobot.extras.datasources.git.ensure_git_repository()</code> to indicate whether the filesystem was changed.</li>
4996
+ </ul>
4997
+ <h3 id="changed_1">Changed<a class="headerlink" href="#changed_1" title="Permanent link">&para;</a></h3>
4998
+ <ul>
4999
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - The base class for all <code>tags</code> fields on <code>PrimaryModel</code> subclasses is now <code>nautobot.core.models.fields.TagsField</code> rather than <code>taggit.managers.TaggableManager</code>. Any apps using <code>PrimaryModel</code> as a base class will likely need to generate and run a schema migration to reflect this change.</li>
5000
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Changed <code>JobLogEntry.log_level</code> choices from <code>default</code>, <code>info</code>, <code>success</code>, <code>warning</code>, <code>failure</code> to Python default logging levels <code>debug</code>, <code>info</code>, <code>warning</code>, <code>error</code> and <code>critical</code>.</li>
5001
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Changed job logging from custom log methods on the <code>BaseJob</code> class to celery's <code>get_task_logger</code> logging implementation.</li>
5002
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Revamped CSV export functionality to use REST API serializers for more self-consistency and reduced boilerplate.</li>
5003
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Revised the natural key for <code>SecretsGroupAssociation</code> through-table model.</li>
5004
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Changed behavior of <code>JobLogEntry.display</code> REST API field to match the model behavior.</li>
5005
+ <li><a href="https://github.com/nautobot/nautobot/issues/2799">#2799</a> - Changed REST API versioning to default to latest instead of earliest when unspecified by the client.</li>
5006
+ <li><a href="https://github.com/nautobot/nautobot/issues/3042">#3042</a> - Removed all <code>Nested*Serializer</code> classes in favor of a <code>depth</code>-based REST API design.</li>
5007
+ <li><a href="https://github.com/nautobot/nautobot/issues/3042">#3042</a> - The <code>?brief=True</code> REST API parameter has been replaced by a new <code>?depth=&lt;0-10&gt;</code> API parameter, allowing greater control of the returned data.</li>
5008
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed <code>run_job</code> Celery task and updated <code>BaseJob</code> to subclass Celery <code>Task</code>.</li>
5009
+ <li><a href="https://github.com/nautobot/nautobot/issues/3449">#3449</a> - Renamed <code>Relationship</code> model attribute <code>slug</code> to <code>key</code>.</li>
5010
+ <li><a href="https://github.com/nautobot/nautobot/issues/3449">#3449</a> - Renamed <code>Relationship</code> model attribute <code>name</code> to <code>label</code>.</li>
5011
+ <li><a href="https://github.com/nautobot/nautobot/issues/3450">#3450</a> - Renamed <code>ComputedField</code> model attribute <code>slug</code> to <code>key</code>.</li>
5012
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Renamed IPAddress <code>prefix_length</code> field to <code>mask_length</code>.</li>
5013
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Made IPAddress <code>host</code> field non-modifiable.</li>
5014
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Restructured navigation menus to context-centered design for 2.0.</li>
5015
+ <li><a href="https://github.com/nautobot/nautobot/issues/3552">#3552</a> - Extracted data tables from upgrading-from-nautobot-v1.md into separate YAML files.</li>
5016
+ <li><a href="https://github.com/nautobot/nautobot/issues/3586">#3586</a> - Changed REST API for Device and VirtualMachine to omit <code>config_context</code> by default and only include it when requested by using the <code>?include=config_context</code> query parameter.</li>
5017
+ <li><a href="https://github.com/nautobot/nautobot/issues/3607">#3607</a> - Changed the default <code>lookup_field</code> for <code>NautobotUIViewSet</code> to <code>"pk"</code> instead of <code>"slug"</code>.</li>
5018
+ <li><a href="https://github.com/nautobot/nautobot/issues/3650">#3650</a> - Updated ui 2.0 jsconfig.json to exclude <code>node_modules</code> and <code>build</code> directories.</li>
5019
+ <li><a href="https://github.com/nautobot/nautobot/issues/3663">#3663</a> - Modified <code>delete_button</code> and <code>edit_button</code> template tags to lookup <code>pk</code> and <code>slug</code> without the need to specify the lookup key.</li>
5020
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Changed <code>BaseModelSerializer</code> to inherit from <code>HyperlinkedModelSerializer</code> instead of <code>ModelSerializer</code>. This changed the REST API representation of related objects (at depth 0) from UUIDs to API hyperlinks to improve discoverability and usability of the API.</li>
5021
+ <li><a href="https://github.com/nautobot/nautobot/issues/3691">#3691</a> - Implemented <code>Meta.list_display_fields</code> for all serializers.</li>
5022
+ <li><a href="https://github.com/nautobot/nautobot/issues/3692">#3692</a> - Updated <code>JobResult</code> manager <code>store_result</code> method to censor sensitive variables.</li>
5023
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Changed nested serialization to never include tags, computed fields, relationships, and other M2M fields.</li>
5024
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Changed <code>Job.read_only</code> field to an informational field set by the job author and removed the ability for administrators to override this field. This field no longer changes the behavior of Nautobot core.</li>
5025
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Reworked CSV import to be based on the REST API implementation instead of custom forms and views.</li>
5026
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Changed the parameters and behavior of <code>CSVDataField</code> and <code>CSVFileField</code> in support of the new CSV import framework.</li>
5027
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Changed the <code>user</code> parameter on the RackReservation REST API to optional; if omitted, the requesting user will now be automatically selected as the owner of any created reservations.</li>
5028
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Centered the LoadingWidget component in UI.</li>
5029
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Lightened the color of the LoadingWidget text to gray-3.</li>
5030
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Lightened the color of the skeleton component when loading tables.</li>
5031
+ <li><a href="https://github.com/nautobot/nautobot/issues/3744">#3744</a> - A batch of improvements to state handling in the UI to solve loading bugs.</li>
5032
+ <li><a href="https://github.com/nautobot/nautobot/issues/3767">#3767</a> - Enhanced error handling for fetcher in React UI <code>ObjectRetrieveView</code>.</li>
5033
+ <li><a href="https://github.com/nautobot/nautobot/issues/3785">#3785</a> - Deprecated <code>StatusModel</code> mixin in favor of directly including a <code>StatusField</code> as needed.</li>
5034
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed Job <code>class_path</code> property from <code>&lt;source&gt;/&lt;module&gt;/&lt;ClassName&gt;</code> to simply <code>&lt;module&gt;.&lt;ClassName&gt;</code>.</li>
5035
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed GitRepository slugs to use underscores rather than dashes so they can be used as Python module names.</li>
5036
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed Job <code>module_name</code> for Git-derived Jobs to <code>&lt;git_repository_slug&gt;.jobs.&lt;module&gt;</code>.</li>
5037
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - System-provided Jobs are now enabled by default for running.</li>
5038
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed return signature for <code>Nautobot.core.utils.git.GitRepo.checkout()</code> to include whether the filesystem was changed.</li>
5039
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed <code>job</code> filter on JobButton, JobHook, JobResult, and ScheduledJob to be name-based rather than slug-based.</li>
5040
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed <code>Job.runnable</code> property to not consider whether the <code>job_class</code> is set, as a performance optimization.</li>
5041
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Moved test Jobs from <code>nautobot/extras/tests/example_jobs/test_*.py</code> to <code>nautobot/extras/test_jobs/*.py</code> to avoid unnecessary loading by the <code>unittest</code> runner.</li>
5042
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed client-side slug construction (legacy UI) to use underscores rather than dashes.</li>
5043
+ </ul>
5044
+ <h3 id="dependencies">Dependencies<a class="headerlink" href="#dependencies" title="Permanent link">&para;</a></h3>
5045
+ <ul>
5046
+ <li><a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a> - Removed dependency on <code>django-cacheops</code>.</li>
5047
+ <li><a href="https://github.com/nautobot/nautobot/issues/3672">#3672</a> - Changed <code>napalm</code> dependency to 4.x release in order to allow Netmiko 4.x to install. Dependency resolution resulted in removing the following packages: <code>ciscoconfparse</code>, <code>deprecat</code>, <code>dnspython</code>, <code>loguru</code>, <code>toml</code>, <code>win32-setctime</code>.</li>
5048
+ </ul>
5049
+ <h3 id="fixed">Fixed<a class="headerlink" href="#fixed" title="Permanent link">&para;</a></h3>
5050
+ <ul>
5051
+ <li><a href="https://github.com/nautobot/nautobot/issues/3378">#3378</a> - Re-enabled skipped tests.</li>
5052
+ <li><a href="https://github.com/nautobot/nautobot/issues/3437">#3437</a> - Fixed the possibility of inadvertently applying the same <code>Tag</code> to the same object multiple times by adding appropriate uniqueness constraints on the <code>TaggedItem</code> through table.</li>
5053
+ <li><a href="https://github.com/nautobot/nautobot/issues/3518">#3518</a> - Fixed an error seen when running the <code>extras.0061_collect_roles_from_related_apps_roles</code> migration.</li>
5054
+ <li><a href="https://github.com/nautobot/nautobot/issues/3545">#3545</a> - Fixed a bug in Job edit view template where slug was missing, preventing creation from happening.</li>
5055
+ <li><a href="https://github.com/nautobot/nautobot/issues/3591">#3591</a> - Fixed a few errors in the v2.0 migration documentation.</li>
5056
+ <li><a href="https://github.com/nautobot/nautobot/issues/3592">#3592</a> - Fixed heuristic for duplicate calls to <code>populate_model_features_registry</code> causing skipped updates.</li>
5057
+ <li><a href="https://github.com/nautobot/nautobot/issues/3618">#3618</a> - Fix corrupted <code>package-lock.json</code> which was causing test failures.</li>
5058
+ <li><a href="https://github.com/nautobot/nautobot/issues/3675">#3675</a> - Fixed job edit form silently failing.</li>
5059
+ <li><a href="https://github.com/nautobot/nautobot/issues/3687">#3687</a> - Fixed a bug in <code>Prefix.reparent_ips()</code> that was too greedy in reparenting IP addresses when child prexies were deeply nested (such as /31)</li>
5060
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Added some missing <code>select_related</code> on <code>DeviceViewSet</code> and <code>PrefixViewSet</code> to improve performance.</li>
5061
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed inability to set null via the REST API on <code>Interface.mac_address</code> and <code>VMInterface.mac_address</code>.</li>
5062
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed inability to set null via the REST API on <code>DeviceType.front_image</code> and <code>DeviceType.rear_image</code>.</li>
5063
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed <code>password</code> being incorrectly marked as a required field when editing a User via the REST API.</li>
5064
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed inability to set the <code>failover_strategy</code> field as unspecified/blank when creating/updating <code>DeviceRedundancyGroup</code> via the REST API.</li>
5065
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed incorrect interim natural key definition for <code>Device</code> and <code>VRF</code> models.</li>
5066
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed the possibility of setting values for nonexistent custom fields via the REST API.</li>
5067
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed incorrect password-handling logic when creating/updating a <code>User</code> via the REST API.</li>
5068
+ <li><a href="https://github.com/nautobot/nautobot/issues/3716">#3716</a> - Fixed an error when attempting to edit a user via the Nautobot admin UI.</li>
5069
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Fixed incorrect filter forms on console-connections, power-connections, and interface-connections list views.</li>
5070
+ <li><a href="https://github.com/nautobot/nautobot/issues/3729">#3729</a> - Fixed a bug that references a non-existent Relationship model attribute in Relationship migration file.</li>
5071
+ <li><a href="https://github.com/nautobot/nautobot/issues/3731">#3731</a> - Fixed <code>debugpy</code> workflow not working with the removal of <code>manage.py</code>.</li>
5072
+ <li><a href="https://github.com/nautobot/nautobot/issues/3737">#3737</a> - Fixed broken <code>--cache_test_fixtures</code> when running tests.</li>
5073
+ <li><a href="https://github.com/nautobot/nautobot/issues/3740">#3740</a> - Fixed container builds failed resulting from #3731.</li>
5074
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Fixed missing time-zone information on various Job-related tests in <code>nautobot.extras.tests.test_views</code>.</li>
5075
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Fixed various cable-termination API serializers incorrectly reporting the <code>cable</code> field as writable.</li>
5076
+ <li><a href="https://github.com/nautobot/nautobot/issues/3768">#3768</a> - Fixed new UI homepage breaks if recent object-changes reference objects that no longer exist.</li>
5077
+ <li><a href="https://github.com/nautobot/nautobot/issues/3785">#3785</a> - Fixed undesirable nullability of <code>status</code> fields to correctly match their intended usage.</li>
5078
+ <li><a href="https://github.com/nautobot/nautobot/issues/3786">#3786</a> - Fixed default descriptions of REST API actions in the OpenAPI schema to be more accurate.</li>
5079
+ <li><a href="https://github.com/nautobot/nautobot/issues/3792">#3792</a> - Fixed logging output not being suppressed during unit and integration tests.</li>
5080
+ <li><a href="https://github.com/nautobot/nautobot/issues/3828">#3828</a> - Fixed a bug caused by <a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> that prevents devices with primary_ip from being deleted.</li>
5081
+ <li><a href="https://github.com/nautobot/nautobot/issues/3829">#3829</a> - Fixed build failure caused by registered App missing ui/index.js.</li>
5082
+ <li><a href="https://github.com/nautobot/nautobot/issues/3833">#3833</a> - Fixed build failure caused by registered App missing urls.py file or a urlpatterns.</li>
5083
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed leftover/non-functional <code>Source</code> tab from job_approval_request.html.</li>
5084
+ <li><a href="https://github.com/nautobot/nautobot/issues/3864">#3864</a> - Fixed cases where Device.role was null, incongruent with the enforcement in the API and UI.</li>
5085
+ </ul>
5086
+ <h3 id="removed_1">Removed<a class="headerlink" href="#removed_1" title="Permanent link">&para;</a></h3>
5087
+ <ul>
5088
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed monkey-patching of <code>taggit.managers.TaggableManager</code>.</li>
5089
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed <code>nautobot.extras.utils.is_taggable</code>; use <code>nautobot.core.models.utils.is_taggable</code> instead.</li>
5090
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed backward-compatibility with <code>taggit</code> 1.x Python API; instead of <code>object.tags.set(tag1, tag2, tag3)</code> you must now do <code>object.tags.set([tag1, tag2, tag3])</code>.</li>
5091
+ <li><a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a> - Removed dependency on and usage of <code>django-cacheops</code>.</li>
5092
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Removed custom <code>BaseJob</code> logging methods <code>_log</code>, <code>log</code>, <code>log_debug</code>, <code>log_success</code>, <code>log_info</code>, <code>log_warning</code> and <code>log_failure</code>.</li>
5093
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Removed <code>active_test</code> and <code>failed</code> properties from <code>BaseJob</code> class.</li>
5094
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Removed <code>csv_headers</code> and <code>to_csv()</code> from all models as they are no longer needed.</li>
5095
+ <li><a href="https://github.com/nautobot/nautobot/issues/2885">#2885</a> - Removed <code>changelog_url</code> from <code>ObjectView</code>'s context.</li>
5096
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed atomic transaction from Jobs.</li>
5097
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed support for <code>test_*</code> and <code>post_run</code> methods in Jobs.</li>
5098
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Removed <code>broadcast</code> field from IPAddress.</li>
5099
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Removed <code>NavMenuButton</code> and its subclasses as they are not a part of the 2.0 UI.</li>
5100
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Removed <code>NavMenuTab.weight</code> property as the menu tabs/contexts are not reorderable in 2.0.</li>
5101
+ <li><a href="https://github.com/nautobot/nautobot/issues/3623">#3623</a> - Removed remaining erroneous slug references from tenant.html and tenantgroup.html.</li>
5102
+ <li><a href="https://github.com/nautobot/nautobot/issues/3651">#3651</a> - Removed misspelled <code>verison</code> key from <code>/api/plugins/installed-plugins</code> REST API endpoint.</li>
5103
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Removed explicit <code>url</code> field declarations from most REST API serializers as they are now derived automatically.</li>
5104
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Removed <code>Job.read_only_override</code>, <code>JobResult.obj_type</code>, <code>JobResult.periodic_task_name</code>, and <code>JobResult.task_id</code> fields.</li>
5105
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Removed <code>NautobotFakeRequest</code> and associated methods, variables and logic.</li>
5106
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>LocatableModelCSVFormMixin</code>, <code>RoleModelCSVFormMixin</code>, <code>RoleRequiredRoleModelCSVFormMixin</code>, and <code>StatusModelCSVFormMixin</code> classes, as they are no longer needed after reworking how CSV import is handled.</li>
5107
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>bulk_create_form_class</code> field from <code>NautobotUIViewSet</code> as it's no longer used or needed.</li>
5108
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>model_form</code> and <code>widget_attrs</code> fields from <code>BulkImportView</code> as they are no longer used or needed.</li>
5109
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>Job.slug</code>, <code>Job.source</code>, and <code>Job.git_repository</code> database fields.</li>
5110
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>source</code> and <code>slug</code> filters for Jobs.</li>
5111
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>get_jobs()</code>, <code>get_job_classpaths()</code>, <code>jobs_in_directory()</code> functions.</li>
5112
+ </ul>
5113
+ <h2 id="v200-alpha3-2023-04-13">v2.0.0-alpha.3 (2023-04-13)<a class="headerlink" href="#v200-alpha3-2023-04-13" title="Permanent link">&para;</a></h2>
5114
+ <h3 id="added_2">Added<a class="headerlink" href="#added_2" title="Permanent link">&para;</a></h3>
5115
+ <ul>
5116
+ <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - Add <code>Namespace</code> model to IPAM.</li>
5117
+ </ul>
5118
+ <h3 id="changed_2">Changed<a class="headerlink" href="#changed_2" title="Permanent link">&para;</a></h3>
5119
+ <ul>
5120
+ <li><a href="https://github.com/nautobot/nautobot/issues/2915">#2915</a> - Implemented a concrete <code>parent</code> relationship from <code>Prefix</code> to itself.</li>
5121
+ <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - Changed Prefix and other model uniqueness to center around Namespace model.</li>
5122
+ <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - TODO: Update with many more changes.</li>
5123
+ <li><a href="https://github.com/nautobot/nautobot/issues/3439">#3439</a> - Changed the GraphQL <code>execute_saved_query</code> function's argument from <code>saved_query_slug</code> to <code>saved_query_name</code>.</li>
5124
+ <li><a href="https://github.com/nautobot/nautobot/issues/3523">#3523</a> - Renamed <code>nat_outside</code> field on IPAddress serializer to <code>nat_outside_list</code> for self-consistency.</li>
5125
+ </ul>
5126
+ <h3 id="dependencies_1">Dependencies<a class="headerlink" href="#dependencies_1" title="Permanent link">&para;</a></h3>
5127
+ <ul>
5128
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Dropped support for Python 3.7. Python 3.8 is now the minimum version required by Nautobot.</li>
5129
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-auth-ldap</code> dependency to <code>~4.2.0</code>.</li>
5130
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-cors-headers</code> dependency to <code>~3.14.0</code>.</li>
5131
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-filter</code> dependency to <code>~23.1</code>.</li>
5132
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-health-check</code> dependency to <code>~3.17.0</code>.</li>
5133
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-tables2</code> dependency to <code>~2.5.3</code>.</li>
5134
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-tree-queries</code> dependency to <code>~0.14.0</code>.</li>
5135
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Removed direct dependency on <code>importlib-metadata</code>.</li>
5136
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>pillow</code> dependency to <code>~9.5.0</code>.</li>
5137
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>prometheus-client</code> dependency to <code>~0.16.0</code>.</li>
5138
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>social-auth-core</code> dependency to <code>~4.4.1</code>.</li>
5139
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>social-auth-app-django</code> dependency to <code>~5.2.0</code>.</li>
5140
+ <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated various development-only dependencies to the latest available versions.</li>
5141
+ <li><a href="https://github.com/nautobot/nautobot/issues/3525">#3525</a> - Added explicit dependency on <code>packaging</code> that had been inadvertently omitted.</li>
5142
+ </ul>
5143
+ <h3 id="removed_2">Removed<a class="headerlink" href="#removed_2" title="Permanent link">&para;</a></h3>
5144
+ <ul>
5145
+ <li><a href="https://github.com/nautobot/nautobot/issues/3439">#3439</a> - Removed <code>slug</code> field from many database models.</li>
5146
+ <li><a href="https://github.com/nautobot/nautobot/issues/3523">#3523</a> - Removed <code>nat_outside</code> getter-setter in IPAddress model.</li>
5147
+ </ul>
5148
+ <h2 id="v200-alpha2-2023-03-29">v2.0.0-alpha.2 (2023-03-29)<a class="headerlink" href="#v200-alpha2-2023-03-29" title="Permanent link">&para;</a></h2>
5149
+ <h3 id="added_3">Added<a class="headerlink" href="#added_3" title="Permanent link">&para;</a></h3>
5150
+ <ul>
3476
5151
  <li><a href="https://github.com/nautobot/nautobot/issues/2900">#2900</a> - Added natural-key support to most Nautobot models, inspired by the <code>django-natural-keys</code> library.</li>
3477
5152
  <li><a href="https://github.com/nautobot/nautobot/issues/2957">#2957</a> - Added Location constraints for objects (CircuitTermination, Device, PowerPanel, PowerFeed, RackGroup, Rack, Prefix, VLAN, VLANGroup, Cluster).</li>
3478
5153
  <li><a href="https://github.com/nautobot/nautobot/issues/2957">#2957</a> - Added Region and Site data migration to Locations for existing ConfigContext instances.</li>
@@ -3488,7 +5163,7 @@
3488
5163
  <li><a href="https://github.com/nautobot/nautobot/issues/3403">#3403</a> - Added support for Nautobot Apps to provide Django Constance Fields for the settings.</li>
3489
5164
  <li><a href="https://github.com/nautobot/nautobot/issues/3418">#3418</a> - Added ObjectPermission Data Migration from Region/Site to Location.</li>
3490
5165
  </ul>
3491
- <h3 id="changed_1">Changed<a class="headerlink" href="#changed_1" title="Permanent link">&para;</a></h3>
5166
+ <h3 id="changed_3">Changed<a class="headerlink" href="#changed_3" title="Permanent link">&para;</a></h3>
3492
5167
  <ul>
3493
5168
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Renamed <code>slug</code> field to <code>key</code> on CustomField model class.</li>
3494
5169
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Changed validation of CustomField <code>key</code> to enforce that it is valid as a GraphQL identifier.</li>
@@ -3532,12 +5207,12 @@
3532
5207
  <li><a href="https://github.com/nautobot/nautobot/issues/3351">#3351</a> - Changed extras abstract model ForeignKeys to use ForeignKeyWithAutoRelatedName.</li>
3533
5208
  <li><a href="https://github.com/nautobot/nautobot/issues/3354">#3354</a> - Synced in fixes from 1.5.x LTM branch up through v1.5.11.</li>
3534
5209
  </ul>
3535
- <h3 id="dependencies">Dependencies<a class="headerlink" href="#dependencies" title="Permanent link">&para;</a></h3>
5210
+ <h3 id="dependencies_2">Dependencies<a class="headerlink" href="#dependencies_2" title="Permanent link">&para;</a></h3>
3536
5211
  <ul>
3537
5212
  <li><a href="https://github.com/nautobot/nautobot/issues/2521">#2521</a> - Removed dependency on <code>django-cryptography</code>.</li>
3538
5213
  <li><a href="https://github.com/nautobot/nautobot/issues/2524">#2524</a> - Removed no-longer-used <code>drf-yasg</code> dependency.</li>
3539
5214
  </ul>
3540
- <h3 id="fixed">Fixed<a class="headerlink" href="#fixed" title="Permanent link">&para;</a></h3>
5215
+ <h3 id="fixed_1">Fixed<a class="headerlink" href="#fixed_1" title="Permanent link">&para;</a></h3>
3541
5216
  <ul>
3542
5217
  <li><a href="https://github.com/nautobot/nautobot/issues/633">#633</a> - Fixed job result not updating when job hard time limit is reached.</li>
3543
5218
  <li><a href="https://github.com/nautobot/nautobot/issues/1362">#1362</a> - Fixed migrations for <code>Prefix.type</code>.</li>
@@ -3552,7 +5227,7 @@
3552
5227
  <li><a href="https://github.com/nautobot/nautobot/issues/3342">#3342</a> - Fixed BaseFilterSet not using multiple choice filters for CharFields with choices.</li>
3553
5228
  <li><a href="https://github.com/nautobot/nautobot/issues/3457">#3457</a> - Fixed bug preventing scheduled job from running.</li>
3554
5229
  </ul>
3555
- <h3 id="removed_1">Removed<a class="headerlink" href="#removed_1" title="Permanent link">&para;</a></h3>
5230
+ <h3 id="removed_3">Removed<a class="headerlink" href="#removed_3" title="Permanent link">&para;</a></h3>
3556
5231
  <ul>
3557
5232
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Removed <code>name</code> field from CustomField model class.</li>
3558
5233
  <li><a href="https://github.com/nautobot/nautobot/issues/1634">#1634</a> - Removed unnecessary legacy <code>manage.py</code> file from Nautobot repository.</li>
@@ -3569,7 +5244,7 @@
3569
5244
  <li><a href="https://github.com/nautobot/nautobot/issues/3302">#3302</a> - Removed <code>Aggregate</code> and migrated all existing instances to <code>Prefix</code>.</li>
3570
5245
  </ul>
3571
5246
  <h2 id="v200-alpha1-2023-01-31">v2.0.0-alpha.1 (2023-01-31)<a class="headerlink" href="#v200-alpha1-2023-01-31" title="Permanent link">&para;</a></h2>
3572
- <h3 id="added_2">Added<a class="headerlink" href="#added_2" title="Permanent link">&para;</a></h3>
5247
+ <h3 id="added_4">Added<a class="headerlink" href="#added_4" title="Permanent link">&para;</a></h3>
3573
5248
  <ul>
3574
5249
  <li><a href="https://github.com/nautobot/nautobot/issues/204">#204</a> - Added style guide documentation for importing python modules in Nautobot.</li>
3575
5250
  <li><a href="https://github.com/nautobot/nautobot/issues/1731">#1731</a> - Added missing filters to <code>circuits</code> app.</li>
@@ -3578,7 +5253,7 @@
3578
5253
  <li><a href="https://github.com/nautobot/nautobot/issues/2955">#2955</a> - Added "Region" and "Site" <code>LocationTypes</code> and their respective locations based on existing <code>Site</code> and <code>Region</code> instances.</li>
3579
5254
  <li><a href="https://github.com/nautobot/nautobot/issues/3132">#3132</a> - Added the ability for apps to register their models for inclusion in the global Nautobot search.</li>
3580
5255
  </ul>
3581
- <h3 id="changed_2">Changed<a class="headerlink" href="#changed_2" title="Permanent link">&para;</a></h3>
5256
+ <h3 id="changed_4">Changed<a class="headerlink" href="#changed_4" title="Permanent link">&para;</a></h3>
3582
5257
  <ul>
3583
5258
  <li><a href="https://github.com/nautobot/nautobot/issues/204">#204</a> - Changed imports to use module namespaces in <code>utilities/filters.py</code>.</li>
3584
5259
  <li><a href="https://github.com/nautobot/nautobot/issues/510">#510</a> - The <code>Region</code>, <code>RackGroup</code>, <code>TenantGroup</code>, and <code>InventoryItem</code> models are now based on <code>django-tree-queries</code> instead of <code>django-mptt</code>. This does change the API for certain tree operations on these models, for example <code>get_ancestors()</code> is now <code>ancestors()</code> and <code>get_descendants()</code> is now <code>descendants()</code>.</li>
@@ -3608,7 +5283,7 @@
3608
5283
  <li><a href="https://github.com/nautobot/nautobot/issues/3069">#3069</a> - Renamed foreign key fields and related names in Virtualization and DCIM apps to follow a common naming convention. See v2 upgrade guide for full list of changes.</li>
3609
5284
  <li><a href="https://github.com/nautobot/nautobot/issues/3177">#3177</a> - Updated <code>VLANFactory</code> to generate longer and more "realistic" <code>VLAN</code> names.</li>
3610
5285
  </ul>
3611
- <h3 id="fixed_1">Fixed<a class="headerlink" href="#fixed_1" title="Permanent link">&para;</a></h3>
5286
+ <h3 id="fixed_2">Fixed<a class="headerlink" href="#fixed_2" title="Permanent link">&para;</a></h3>
3612
5287
  <ul>
3613
5288
  <li><a href="https://github.com/nautobot/nautobot/issues/1982">#1982</a> - Fixed a UI presentation/validation issue with dynamic-groups using foreign-key filters that aren't explicitly defined in the corresponding FilterForm.</li>
3614
5289
  <li><a href="https://github.com/nautobot/nautobot/issues/2808">#2808</a> - Fixed incorrectly named filters in <code>circuits</code> app.</li>
@@ -3617,7 +5292,7 @@
3617
5292
  <li><a href="https://github.com/nautobot/nautobot/issues/3167">#3167</a> - Fixed <code>ObjectChange</code> records not being migrated and <code>legacy_role__name</code> not being a property in <code>Role</code> migrations.</li>
3618
5293
  <li><a href="https://github.com/nautobot/nautobot/issues/3177">#3177</a> - Fixed a spurious failure in <code>BulkEditObjectsViewTestCase.test_bulk_edit_objects_with_constrained_permission</code>.</li>
3619
5294
  </ul>
3620
- <h3 id="removed_2">Removed<a class="headerlink" href="#removed_2" title="Permanent link">&para;</a></h3>
5295
+ <h3 id="removed_4">Removed<a class="headerlink" href="#removed_4" title="Permanent link">&para;</a></h3>
3621
5296
  <ul>
3622
5297
  <li><a href="https://github.com/nautobot/nautobot/issues/510">#510</a> - Removed dependency on <code>django-mptt</code>. Models (<code>Region</code>, <code>RackGroup</code>, <code>TenantGroup</code>, <code>InventoryItem</code>) that previously were based on MPTT are now implemented using <code>django-tree-queries</code> instead.</li>
3623
5298
  <li><a href="https://github.com/nautobot/nautobot/issues/1731">#1731</a> - Removed redundant filters from <code>circuits</code> app.</li>
@@ -3645,42 +5320,6 @@
3645
5320
 
3646
5321
  <footer class="md-footer">
3647
5322
 
3648
-
3649
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
3650
-
3651
-
3652
- <a href="index.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Overview" rel="prev">
3653
- <div class="md-footer__button md-icon">
3654
- <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>
3655
- </div>
3656
- <div class="md-footer__title">
3657
- <div class="md-ellipsis">
3658
- <span class="md-footer__direction">
3659
- Previous
3660
- </span>
3661
- Overview
3662
- </div>
3663
- </div>
3664
- </a>
3665
-
3666
-
3667
-
3668
- <a href="version-1.5.html" class="md-footer__link md-footer__link--next" aria-label="Next: Version 1.5" rel="next">
3669
- <div class="md-footer__title">
3670
- <div class="md-ellipsis">
3671
- <span class="md-footer__direction">
3672
- Next
3673
- </span>
3674
- Version 1.5
3675
- </div>
3676
- </div>
3677
- <div class="md-footer__button md-icon">
3678
- <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>
3679
- </div>
3680
- </a>
3681
-
3682
- </nav>
3683
-
3684
5323
  <div class="md-footer-meta md-typeset">
3685
5324
  <div class="md-footer-meta__inner md-grid">
3686
5325
  <div class="md-copyright">
@@ -3708,32 +5347,42 @@
3708
5347
 
3709
5348
 
3710
5349
 
5350
+
5351
+
3711
5352
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
3712
- <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>
5353
+ <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>
3713
5354
  </a>
3714
5355
 
3715
5356
 
3716
5357
 
5358
+
5359
+
3717
5360
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
3718
- <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>
5361
+ <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>
3719
5362
  </a>
3720
5363
 
3721
5364
 
3722
5365
 
5366
+
5367
+
3723
5368
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
3724
- <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>
5369
+ <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>
3725
5370
  </a>
3726
5371
 
3727
5372
 
3728
5373
 
5374
+
5375
+
3729
5376
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
3730
- <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>
5377
+ <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>
3731
5378
  </a>
3732
5379
 
3733
5380
 
3734
5381
 
5382
+
5383
+
3735
5384
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
3736
- <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>
5385
+ <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>
3737
5386
  </a>
3738
5387
 
3739
5388
  </div>
@@ -3747,14 +5396,13 @@
3747
5396
  <div class="md-dialog__inner md-typeset"></div>
3748
5397
  </div>
3749
5398
 
3750
- <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>
5399
+ <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>
3751
5400
 
3752
5401
 
3753
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
5402
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
3754
5403
 
3755
5404
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
3756
5405
 
3757
5406
 
3758
-
3759
5407
  </body>
3760
5408
  </html>