nautobot 2.0.0a3__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 (780) hide show
  1. nautobot/apps/api.py +6 -8
  2. nautobot/apps/forms.py +0 -2
  3. nautobot/apps/ui.py +0 -8
  4. nautobot/circuits/api/serializers.py +9 -117
  5. nautobot/circuits/api/urls.py +1 -1
  6. nautobot/circuits/api/views.py +0 -1
  7. nautobot/circuits/forms.py +0 -65
  8. nautobot/circuits/migrations/0014_related_name_changes.py +1 -1
  9. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  10. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  11. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  12. nautobot/circuits/models.py +3 -87
  13. nautobot/circuits/navigation.py +14 -69
  14. nautobot/circuits/signals.py +0 -2
  15. nautobot/circuits/tables.py +39 -1
  16. nautobot/circuits/tests/integration/test_relationships.py +9 -9
  17. nautobot/circuits/tests/test_api.py +4 -8
  18. nautobot/circuits/tests/test_filters.py +10 -4
  19. nautobot/circuits/tests/test_models.py +5 -1
  20. nautobot/circuits/tests/test_views.py +27 -5
  21. nautobot/circuits/views.py +18 -10
  22. nautobot/core/api/__init__.py +8 -2
  23. nautobot/core/api/fields.py +15 -6
  24. nautobot/core/api/filter_backends.py +3 -2
  25. nautobot/core/api/metadata.py +237 -30
  26. nautobot/core/api/mixins.py +94 -0
  27. nautobot/core/api/pagination.py +4 -0
  28. nautobot/core/api/parsers.py +154 -0
  29. nautobot/core/api/renderers.py +153 -2
  30. nautobot/core/api/schema.py +46 -2
  31. nautobot/core/api/serializers.py +377 -35
  32. nautobot/core/api/urls.py +11 -3
  33. nautobot/core/api/utils.py +174 -2
  34. nautobot/core/api/versioning.py +32 -10
  35. nautobot/core/api/views.py +266 -72
  36. nautobot/core/apps/__init__.py +138 -220
  37. nautobot/core/celery/__init__.py +112 -41
  38. nautobot/core/celery/backends.py +19 -12
  39. nautobot/core/celery/control.py +46 -0
  40. nautobot/core/celery/encoders.py +53 -0
  41. nautobot/core/celery/log.py +38 -0
  42. nautobot/core/celery/schedulers.py +23 -4
  43. nautobot/core/celery/task.py +1 -16
  44. nautobot/core/checks.py +0 -27
  45. nautobot/core/choices.py +0 -113
  46. nautobot/core/{cli.py → cli/__init__.py} +1 -1
  47. nautobot/core/cli/__main__.py +3 -0
  48. nautobot/core/constants.py +0 -24
  49. nautobot/core/context_processors.py +12 -0
  50. nautobot/core/filters.py +2 -2
  51. nautobot/core/forms/__init__.py +0 -4
  52. nautobot/core/forms/fields.py +38 -65
  53. nautobot/core/forms/forms.py +4 -1
  54. nautobot/core/forms/utils.py +0 -52
  55. nautobot/core/graphql/schema.py +4 -27
  56. nautobot/core/jobs/__init__.py +75 -0
  57. nautobot/core/management/commands/build_ui.py +255 -0
  58. nautobot/core/management/commands/generate_test_data.py +3 -2
  59. nautobot/core/management/commands/post_upgrade.py +24 -24
  60. nautobot/core/models/__init__.py +26 -1
  61. nautobot/core/models/fields.py +24 -5
  62. nautobot/core/models/generics.py +2 -42
  63. nautobot/core/models/managers.py +5 -0
  64. nautobot/core/models/name_color_content_types.py +0 -14
  65. nautobot/core/models/tree_queries.py +14 -4
  66. nautobot/core/models/utils.py +5 -6
  67. nautobot/core/models/validators.py +17 -8
  68. nautobot/core/releases.py +8 -10
  69. nautobot/core/settings.py +80 -42
  70. nautobot/core/tables.py +5 -5
  71. nautobot/core/tasks.py +4 -7
  72. nautobot/core/templates/base.html +1 -49
  73. nautobot/core/templates/base_django.html +49 -0
  74. nautobot/core/templates/base_react.html +55 -0
  75. nautobot/core/templates/buttons/export.html +6 -4
  76. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  77. nautobot/core/templates/generic/object_list.html +3 -1
  78. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  79. nautobot/core/templates/inc/footer.html +1 -0
  80. nautobot/core/templates/inc/javascript.html +0 -14
  81. nautobot/core/templates/inc/nav_menu.html +28 -33
  82. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  83. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  84. nautobot/core/templates/nautobot_config.py.j2 +8 -20
  85. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  86. nautobot/core/templates/rest_framework/api.html +8 -0
  87. nautobot/core/templatetags/buttons.py +32 -28
  88. nautobot/core/testing/__init__.py +47 -44
  89. nautobot/core/testing/api.py +362 -47
  90. nautobot/core/testing/filters.py +1 -1
  91. nautobot/core/testing/migrations.py +2 -0
  92. nautobot/core/testing/mixins.py +22 -9
  93. nautobot/core/testing/schema.py +2 -1
  94. nautobot/core/testing/views.py +21 -46
  95. nautobot/core/tests/integration/test_filters.py +17 -8
  96. nautobot/core/tests/integration/test_navbar.py +11 -34
  97. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  98. nautobot/core/tests/nautobot_config.py +2 -3
  99. nautobot/core/tests/test_api.py +290 -21
  100. nautobot/core/tests/test_checks.py +0 -7
  101. nautobot/core/tests/test_filters.py +107 -59
  102. nautobot/core/tests/test_forms.py +26 -92
  103. nautobot/core/tests/test_graphql.py +110 -77
  104. nautobot/core/tests/test_logging.py +4 -0
  105. nautobot/core/tests/test_managers.py +3 -1
  106. nautobot/core/tests/test_models.py +2 -0
  107. nautobot/core/tests/test_paginator.py +3 -1
  108. nautobot/core/tests/test_releases.py +12 -12
  109. nautobot/core/tests/test_templatetags_helpers.py +4 -4
  110. nautobot/core/tests/test_utils.py +32 -68
  111. nautobot/core/tests/test_views.py +12 -15
  112. nautobot/core/utils/data.py +17 -0
  113. nautobot/core/utils/deprecation.py +9 -6
  114. nautobot/core/utils/filtering.py +8 -3
  115. nautobot/core/utils/git.py +12 -4
  116. nautobot/core/utils/lookup.py +3 -1
  117. nautobot/core/utils/requests.py +1 -104
  118. nautobot/core/views/__init__.py +1 -0
  119. nautobot/core/views/generic.py +75 -110
  120. nautobot/core/views/mixins.py +52 -61
  121. nautobot/core/views/renderers.py +6 -7
  122. nautobot/core/views/utils.py +80 -0
  123. nautobot/dcim/api/serializers.py +160 -667
  124. nautobot/dcim/api/urls.py +1 -1
  125. nautobot/dcim/api/views.py +7 -44
  126. nautobot/dcim/choices.py +2 -0
  127. nautobot/dcim/filters/__init__.py +21 -0
  128. nautobot/dcim/form_mixins.py +1 -27
  129. nautobot/dcim/forms.py +19 -765
  130. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -1
  131. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -13
  132. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -1
  133. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -1
  134. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  135. nautobot/dcim/migrations/0035_related_name_changes.py +1 -1
  136. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -1
  137. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  138. nautobot/dcim/migrations/{0040_ipam__namespaces.py → 0041_ipam__namespaces.py} +1 -1
  139. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  140. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  141. nautobot/dcim/models/cables.py +3 -33
  142. nautobot/dcim/models/device_component_templates.py +6 -0
  143. nautobot/dcim/models/device_components.py +12 -198
  144. nautobot/dcim/models/devices.py +30 -143
  145. nautobot/dcim/models/locations.py +3 -64
  146. nautobot/dcim/models/power.py +3 -50
  147. nautobot/dcim/models/racks.py +7 -84
  148. nautobot/dcim/navigation.py +141 -467
  149. nautobot/dcim/signals.py +0 -2
  150. nautobot/dcim/tables/locations.py +2 -2
  151. nautobot/dcim/tables/power.py +1 -2
  152. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  153. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  154. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  155. nautobot/dcim/templates/dcim/location.html +16 -1
  156. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  157. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  158. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  159. nautobot/dcim/tests/test_api.py +166 -81
  160. nautobot/dcim/tests/test_cablepaths.py +41 -35
  161. nautobot/dcim/tests/test_filters.py +67 -23
  162. nautobot/dcim/tests/test_forms.py +5 -205
  163. nautobot/dcim/tests/test_graphql.py +7 -2
  164. nautobot/dcim/tests/test_migrations.py +6 -11
  165. nautobot/dcim/tests/test_models.py +182 -110
  166. nautobot/dcim/tests/test_natural_ordering.py +11 -8
  167. nautobot/dcim/tests/test_signals.py +6 -3
  168. nautobot/dcim/tests/test_views.py +197 -175
  169. nautobot/dcim/urls.py +11 -16
  170. nautobot/dcim/views.py +7 -134
  171. nautobot/docs/additional-features/caching.md +6 -87
  172. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  173. nautobot/docs/additional-features/jobs.md +177 -195
  174. nautobot/docs/administration/nautobot-server.md +6 -21
  175. nautobot/docs/administration/replicating-nautobot.md +0 -10
  176. nautobot/docs/configuration/optional-settings.md +32 -41
  177. nautobot/docs/configuration/required-settings.md +11 -52
  178. nautobot/docs/development/application-registry.md +2 -13
  179. nautobot/docs/development/extending-models.md +15 -17
  180. nautobot/docs/development/generic-views.md +0 -2
  181. nautobot/docs/development/getting-started.md +55 -5
  182. nautobot/docs/development/navigation-menu.md +22 -93
  183. nautobot/docs/development/react-ui.md +105 -0
  184. nautobot/docs/development/role-internals.md +1 -3
  185. nautobot/docs/development/style-guide.md +6 -4
  186. nautobot/docs/index.md +3 -2
  187. nautobot/docs/installation/migrating-from-netbox.md +11 -42
  188. nautobot/docs/installation/nautobot.md +1 -1
  189. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  190. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  191. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  192. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  193. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  194. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  195. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  196. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  197. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  198. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  199. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  200. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  201. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  202. nautobot/docs/installation/upgrading-from-nautobot-v1.md +170 -747
  203. nautobot/docs/models/dcim/device.md +3 -0
  204. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  205. nautobot/docs/models/extras/computedfield.md +4 -4
  206. nautobot/docs/models/extras/gitrepository.md +3 -0
  207. nautobot/docs/models/extras/job.md +1 -0
  208. nautobot/docs/models/extras/jobbutton.md +18 -13
  209. nautobot/docs/models/extras/jobhook.md +7 -4
  210. nautobot/docs/models/extras/jobresult.md +6 -2
  211. nautobot/docs/models/extras/relationship.md +2 -2
  212. nautobot/docs/models/extras/status.md +6 -19
  213. nautobot/docs/models/ipam/ipaddress.md +3 -0
  214. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  215. nautobot/docs/plugins/development.md +83 -21
  216. nautobot/docs/release-notes/version-1.5.md +53 -0
  217. nautobot/docs/release-notes/version-2.0.md +180 -0
  218. nautobot/docs/requirements.txt +1 -0
  219. nautobot/docs/rest-api/overview.md +384 -215
  220. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  221. nautobot/extras/admin.py +3 -5
  222. nautobot/extras/api/customfields.py +15 -39
  223. nautobot/extras/api/fields.py +0 -11
  224. nautobot/extras/api/mixins.py +45 -0
  225. nautobot/extras/api/relationships.py +63 -158
  226. nautobot/extras/api/serializers.py +165 -700
  227. nautobot/extras/api/urls.py +1 -1
  228. nautobot/extras/api/views.py +294 -280
  229. nautobot/extras/apps.py +4 -7
  230. nautobot/extras/choices.py +11 -9
  231. nautobot/extras/constants.py +9 -3
  232. nautobot/extras/datasources/__init__.py +2 -0
  233. nautobot/extras/datasources/git.py +135 -186
  234. nautobot/extras/datasources/registry.py +25 -35
  235. nautobot/extras/filters/__init__.py +20 -19
  236. nautobot/extras/filters/mixins.py +4 -4
  237. nautobot/extras/forms/forms.py +63 -127
  238. nautobot/extras/forms/mixins.py +23 -51
  239. nautobot/extras/health_checks.py +0 -33
  240. nautobot/extras/jobs.py +387 -565
  241. nautobot/extras/management/commands/runjob.py +24 -62
  242. nautobot/extras/managers.py +30 -7
  243. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  244. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -1
  245. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -1
  246. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -7
  247. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -32
  248. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -1
  249. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -1
  250. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  251. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -1
  252. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -2
  253. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -1
  254. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -1
  255. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  256. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -1
  257. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  258. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -9
  259. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -1
  260. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  261. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  262. 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
  263. nautobot/extras/migrations/{0077_remove_slug.py → 0078_remove_slug.py} +1 -5
  264. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  265. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  266. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  267. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  268. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  269. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  270. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  271. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  272. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  273. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  274. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  275. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  276. nautobot/extras/models/__init__.py +2 -3
  277. nautobot/extras/models/change_logging.py +0 -36
  278. nautobot/extras/models/customfields.py +39 -33
  279. nautobot/extras/models/datasources.py +48 -50
  280. nautobot/extras/models/groups.py +5 -6
  281. nautobot/extras/models/jobs.py +189 -321
  282. nautobot/extras/models/mixins.py +0 -71
  283. nautobot/extras/models/models.py +0 -19
  284. nautobot/extras/models/relationships.py +19 -13
  285. nautobot/extras/models/roles.py +0 -34
  286. nautobot/extras/models/secrets.py +2 -26
  287. nautobot/extras/models/statuses.py +6 -5
  288. nautobot/extras/models/tags.py +2 -17
  289. nautobot/extras/navigation.py +89 -307
  290. nautobot/extras/plugins/__init__.py +3 -120
  291. nautobot/extras/plugins/utils.py +0 -3
  292. nautobot/extras/plugins/validators.py +5 -4
  293. nautobot/extras/plugins/views.py +16 -3
  294. nautobot/extras/querysets.py +1 -7
  295. nautobot/extras/registry.py +3 -0
  296. nautobot/extras/signals.py +26 -60
  297. nautobot/extras/tables.py +34 -40
  298. nautobot/extras/tasks.py +0 -12
  299. nautobot/extras/templates/extras/configcontext.html +1 -1
  300. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  301. nautobot/extras/templates/extras/customfield.html +0 -13
  302. nautobot/extras/templates/extras/gitrepository.html +3 -3
  303. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  304. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  305. nautobot/extras/templates/extras/job.html +35 -25
  306. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  307. nautobot/extras/templates/extras/job_detail.html +13 -31
  308. nautobot/extras/templates/extras/job_edit.html +15 -17
  309. nautobot/extras/templates/extras/jobresult.html +24 -6
  310. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  311. nautobot/extras/templates/extras/secret.html +28 -0
  312. nautobot/extras/templatetags/job_buttons.py +1 -0
  313. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  314. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  315. nautobot/extras/test_jobs/dry_run.py +29 -0
  316. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  317. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  318. nautobot/extras/test_jobs/fail.py +23 -0
  319. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  320. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  321. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  322. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  323. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  324. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  325. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  326. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  327. nautobot/extras/test_jobs/job_variables.py +88 -0
  328. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  329. nautobot/extras/test_jobs/log_redaction.py +20 -0
  330. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  331. nautobot/extras/test_jobs/modify_db.py +25 -0
  332. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  333. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  334. nautobot/extras/test_jobs/object_var_required.py +21 -0
  335. nautobot/extras/test_jobs/object_vars.py +26 -0
  336. nautobot/extras/test_jobs/pass.py +25 -0
  337. nautobot/extras/test_jobs/profiling.py +32 -0
  338. nautobot/extras/test_jobs/read_only_job.py +15 -0
  339. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  340. 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
  341. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  342. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  343. nautobot/extras/tests/integration/test_configcontextschema.py +5 -3
  344. nautobot/extras/tests/integration/test_customfields.py +4 -2
  345. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  346. nautobot/extras/tests/integration/test_jobs.py +25 -27
  347. nautobot/extras/tests/integration/test_notes.py +8 -4
  348. nautobot/extras/tests/integration/test_relationships.py +2 -2
  349. nautobot/extras/tests/test_api.py +649 -642
  350. nautobot/extras/tests/test_changelog.py +3 -3
  351. nautobot/extras/tests/test_context_managers.py +5 -3
  352. nautobot/extras/tests/test_customfields.py +92 -50
  353. nautobot/extras/tests/test_datasources.py +189 -112
  354. nautobot/extras/tests/test_dynamicgroups.py +7 -8
  355. nautobot/extras/tests/test_filters.py +137 -89
  356. nautobot/extras/tests/test_forms.py +73 -75
  357. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  358. nautobot/extras/tests/test_jobs.py +262 -263
  359. nautobot/extras/tests/test_migrations.py +4 -3
  360. nautobot/extras/tests/test_models.py +116 -161
  361. nautobot/extras/tests/test_plugins.py +38 -60
  362. nautobot/extras/tests/test_relationships.py +167 -120
  363. nautobot/extras/tests/test_tags.py +6 -11
  364. nautobot/extras/tests/test_utils.py +31 -1
  365. nautobot/extras/tests/test_views.py +201 -145
  366. nautobot/extras/tests/test_webhooks.py +6 -2
  367. nautobot/extras/urls.py +42 -42
  368. nautobot/extras/utils.py +137 -163
  369. nautobot/extras/views.py +78 -152
  370. nautobot/ipam/api/fields.py +17 -0
  371. nautobot/ipam/api/serializers.py +58 -164
  372. nautobot/ipam/api/urls.py +1 -1
  373. nautobot/ipam/api/views.py +3 -2
  374. nautobot/ipam/apps.py +1 -2
  375. nautobot/ipam/filters.py +1 -10
  376. nautobot/ipam/forms.py +4 -177
  377. nautobot/ipam/lookups.py +1 -0
  378. nautobot/ipam/management/commands/__init__.py +0 -0
  379. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  380. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -1
  381. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -38
  382. nautobot/ipam/migrations/0020_related_name_changes.py +1 -1
  383. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +2 -2
  384. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  385. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  386. nautobot/ipam/migrations/{0028_ipam__namespaces.py → 0030_ipam__namespaces.py} +77 -28
  387. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  388. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  389. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  390. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  391. nautobot/ipam/models.py +100 -236
  392. nautobot/ipam/navigation.py +36 -181
  393. nautobot/ipam/querysets.py +20 -25
  394. nautobot/ipam/signals.py +49 -6
  395. nautobot/ipam/tables.py +10 -3
  396. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  397. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  398. nautobot/ipam/templates/ipam/namespace_retrieve.html +17 -4
  399. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  400. nautobot/ipam/templates/ipam/prefix.html +1 -1
  401. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  402. nautobot/ipam/templates/ipam/vrf_edit.html +6 -0
  403. nautobot/ipam/tests/integration/test_prefixes.py +3 -26
  404. nautobot/ipam/tests/test_api.py +22 -19
  405. nautobot/ipam/tests/test_filters.py +59 -23
  406. nautobot/ipam/tests/test_migrations.py +6 -10
  407. nautobot/ipam/tests/test_models.py +323 -198
  408. nautobot/ipam/tests/test_ordering.py +2 -2
  409. nautobot/ipam/tests/test_querysets.py +44 -24
  410. nautobot/ipam/tests/test_views.py +73 -26
  411. nautobot/ipam/urls.py +16 -0
  412. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  413. nautobot/ipam/utils/migrations.py +713 -0
  414. nautobot/ipam/views.py +137 -20
  415. nautobot/project-static/docs/404.html +1178 -10
  416. nautobot/project-static/docs/additional-features/caching.html +1224 -159
  417. nautobot/project-static/docs/additional-features/change-logging.html +1180 -12
  418. nautobot/project-static/docs/additional-features/config-contexts.html +1180 -12
  419. nautobot/project-static/docs/additional-features/graphql.html +1179 -11
  420. nautobot/project-static/docs/additional-features/healthcheck.html +1180 -12
  421. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1184 -12
  422. nautobot/project-static/docs/additional-features/jobs.html +1514 -328
  423. nautobot/project-static/docs/additional-features/napalm.html +1180 -12
  424. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1180 -12
  425. nautobot/project-static/docs/additional-features/template-filters.html +1180 -12
  426. nautobot/project-static/docs/administration/celery-queues.html +1178 -10
  427. nautobot/project-static/docs/administration/nautobot-server.html +1451 -304
  428. nautobot/project-static/docs/administration/nautobot-shell.html +1178 -10
  429. nautobot/project-static/docs/administration/permissions.html +1178 -10
  430. nautobot/project-static/docs/administration/replicating-nautobot.html +1262 -113
  431. nautobot/project-static/docs/apps/index.html +1178 -10
  432. nautobot/project-static/docs/apps/nautobot-apps.html +1178 -10
  433. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1580 -426
  434. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1178 -10
  435. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3481 -1838
  436. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1178 -10
  437. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1178 -10
  438. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1185 -11
  439. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1719 -551
  440. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2062 -930
  441. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1946 -659
  442. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1180 -12
  443. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1189 -21
  444. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9283 -6218
  445. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2734 -2122
  446. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1178 -10
  447. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2337 -1300
  448. nautobot/project-static/docs/configuration/authentication/ldap.html +1178 -10
  449. nautobot/project-static/docs/configuration/authentication/remote.html +1178 -10
  450. nautobot/project-static/docs/configuration/authentication/sso.html +1178 -10
  451. nautobot/project-static/docs/configuration/index.html +1178 -10
  452. nautobot/project-static/docs/configuration/optional-settings.html +1311 -160
  453. nautobot/project-static/docs/configuration/required-settings.html +1312 -211
  454. nautobot/project-static/docs/core-functionality/circuits.html +1178 -10
  455. nautobot/project-static/docs/core-functionality/device-types.html +1178 -10
  456. nautobot/project-static/docs/core-functionality/devices.html +1182 -10
  457. nautobot/project-static/docs/core-functionality/ipam.html +1182 -10
  458. nautobot/project-static/docs/core-functionality/power.html +1178 -10
  459. nautobot/project-static/docs/core-functionality/secrets.html +1178 -10
  460. nautobot/project-static/docs/core-functionality/services.html +1178 -10
  461. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1178 -10
  462. nautobot/project-static/docs/core-functionality/tenancy.html +1178 -10
  463. nautobot/project-static/docs/core-functionality/virtualization.html +1182 -10
  464. nautobot/project-static/docs/core-functionality/vlans.html +1179 -11
  465. nautobot/project-static/docs/development/application-registry.html +1190 -42
  466. nautobot/project-static/docs/development/best-practices.html +1178 -10
  467. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1178 -10
  468. nautobot/project-static/docs/development/extending-models.html +1238 -83
  469. nautobot/project-static/docs/development/generic-views.html +1180 -14
  470. nautobot/project-static/docs/development/getting-started.html +1365 -90
  471. nautobot/project-static/docs/development/homepage.html +1178 -10
  472. nautobot/project-static/docs/development/index.html +1178 -10
  473. nautobot/project-static/docs/development/model-features.html +1178 -10
  474. nautobot/project-static/docs/development/natural-keys.html +1178 -10
  475. nautobot/project-static/docs/development/navigation-menu.html +1215 -125
  476. nautobot/project-static/docs/development/react-ui.html +4199 -0
  477. nautobot/project-static/docs/development/release-checklist.html +1178 -10
  478. nautobot/project-static/docs/development/role-internals.html +1179 -12
  479. nautobot/project-static/docs/development/style-guide.html +1188 -19
  480. nautobot/project-static/docs/development/templates.html +1178 -10
  481. nautobot/project-static/docs/development/testing.html +1178 -10
  482. nautobot/project-static/docs/development/user-preferences.html +1178 -10
  483. nautobot/project-static/docs/docker/index.html +1178 -10
  484. nautobot/project-static/docs/index.html +1183 -12
  485. nautobot/project-static/docs/installation/centos.html +1178 -10
  486. nautobot/project-static/docs/installation/external-authentication.html +1178 -10
  487. nautobot/project-static/docs/installation/http-server.html +1178 -10
  488. nautobot/project-static/docs/installation/index.html +1178 -10
  489. nautobot/project-static/docs/installation/migrating-from-netbox.html +1305 -189
  490. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1178 -10
  491. nautobot/project-static/docs/installation/nautobot.html +1179 -11
  492. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1178 -10
  493. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1178 -10
  494. nautobot/project-static/docs/installation/services.html +1178 -10
  495. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  496. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  497. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  498. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  499. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  500. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  501. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  502. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  503. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  504. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  505. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  506. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  507. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  508. nautobot/project-static/docs/installation/ubuntu.html +1178 -10
  509. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +3823 -2152
  510. nautobot/project-static/docs/installation/upgrading.html +1178 -10
  511. nautobot/project-static/docs/models/circuits/circuit.html +1293 -103
  512. nautobot/project-static/docs/models/circuits/circuittermination.html +1293 -103
  513. nautobot/project-static/docs/models/circuits/circuittype.html +1293 -103
  514. nautobot/project-static/docs/models/circuits/provider.html +1293 -103
  515. nautobot/project-static/docs/models/circuits/providernetwork.html +1293 -103
  516. nautobot/project-static/docs/models/dcim/cable.html +1324 -103
  517. nautobot/project-static/docs/models/dcim/consoleport.html +1293 -103
  518. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1293 -103
  519. nautobot/project-static/docs/models/dcim/consoleserverport.html +1293 -103
  520. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1293 -103
  521. nautobot/project-static/docs/models/dcim/device.html +1326 -132
  522. nautobot/project-static/docs/models/dcim/devicebay.html +1293 -103
  523. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1293 -103
  524. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1379 -97
  525. nautobot/project-static/docs/models/dcim/devicetype.html +1293 -103
  526. nautobot/project-static/docs/models/dcim/frontport.html +1293 -103
  527. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1293 -103
  528. nautobot/project-static/docs/models/dcim/interface.html +1293 -103
  529. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1293 -103
  530. nautobot/project-static/docs/models/dcim/inventoryitem.html +1293 -103
  531. nautobot/project-static/docs/models/dcim/location.html +1293 -103
  532. nautobot/project-static/docs/models/dcim/locationtype.html +1293 -103
  533. nautobot/project-static/docs/models/dcim/manufacturer.html +1292 -102
  534. nautobot/project-static/docs/models/dcim/platform.html +1272 -82
  535. nautobot/project-static/docs/models/dcim/powerfeed.html +1270 -80
  536. nautobot/project-static/docs/models/dcim/poweroutlet.html +1272 -82
  537. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1272 -82
  538. nautobot/project-static/docs/models/dcim/powerpanel.html +1270 -80
  539. nautobot/project-static/docs/models/dcim/powerport.html +1272 -82
  540. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1272 -82
  541. nautobot/project-static/docs/models/dcim/rack.html +1272 -82
  542. nautobot/project-static/docs/models/dcim/rackgroup.html +1272 -82
  543. nautobot/project-static/docs/models/dcim/rackreservation.html +1272 -82
  544. nautobot/project-static/docs/models/dcim/rearport.html +1286 -96
  545. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1286 -96
  546. nautobot/project-static/docs/models/dcim/region.html +1178 -10
  547. nautobot/project-static/docs/models/dcim/site.html +1178 -10
  548. nautobot/project-static/docs/models/dcim/virtualchassis.html +1284 -94
  549. nautobot/project-static/docs/models/extras/computedfield.html +1184 -16
  550. nautobot/project-static/docs/models/extras/configcontext.html +1314 -86
  551. nautobot/project-static/docs/models/extras/configcontextschema.html +1276 -86
  552. nautobot/project-static/docs/models/extras/customfield.html +1180 -12
  553. nautobot/project-static/docs/models/extras/customlink.html +1180 -12
  554. nautobot/project-static/docs/models/extras/dynamicgroup.html +1180 -12
  555. nautobot/project-static/docs/models/extras/exporttemplate.html +1180 -12
  556. nautobot/project-static/docs/models/extras/gitrepository.html +1184 -12
  557. nautobot/project-static/docs/models/extras/graphqlquery.html +1321 -86
  558. nautobot/project-static/docs/models/extras/imageattachment.html +1276 -86
  559. nautobot/project-static/docs/models/extras/job.html +1277 -86
  560. nautobot/project-static/docs/models/extras/jobbutton.html +1201 -29
  561. nautobot/project-static/docs/models/extras/jobhook.html +1188 -16
  562. nautobot/project-static/docs/models/extras/joblogentry.html +1274 -84
  563. nautobot/project-static/docs/models/extras/jobresult.html +1364 -169
  564. nautobot/project-static/docs/models/extras/note.html +1180 -12
  565. nautobot/project-static/docs/models/extras/relationship.html +1182 -14
  566. nautobot/project-static/docs/models/extras/role.html +1320 -86
  567. nautobot/project-static/docs/models/extras/secret.html +1314 -86
  568. nautobot/project-static/docs/models/extras/secretsgroup.html +1276 -86
  569. nautobot/project-static/docs/models/extras/status.html +1188 -59
  570. nautobot/project-static/docs/models/extras/tag.html +1180 -12
  571. nautobot/project-static/docs/models/extras/webhook.html +1180 -12
  572. nautobot/project-static/docs/models/ipam/ipaddress.html +1327 -102
  573. nautobot/project-static/docs/models/ipam/prefix.html +1276 -86
  574. nautobot/project-static/docs/models/ipam/rir.html +1276 -86
  575. nautobot/project-static/docs/models/ipam/routetarget.html +1276 -86
  576. nautobot/project-static/docs/models/ipam/service.html +1276 -86
  577. nautobot/project-static/docs/models/ipam/vlan.html +1276 -86
  578. nautobot/project-static/docs/models/ipam/vlangroup.html +1276 -86
  579. nautobot/project-static/docs/models/ipam/vrf.html +1276 -86
  580. nautobot/project-static/docs/models/tenancy/tenant.html +1276 -86
  581. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1276 -86
  582. nautobot/project-static/docs/models/users/objectpermission.html +1314 -86
  583. nautobot/project-static/docs/models/users/token.html +1276 -86
  584. nautobot/project-static/docs/models/virtualization/cluster.html +1276 -86
  585. nautobot/project-static/docs/models/virtualization/clustergroup.html +1276 -86
  586. nautobot/project-static/docs/models/virtualization/clustertype.html +1276 -86
  587. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1321 -127
  588. nautobot/project-static/docs/models/virtualization/vminterface.html +1276 -86
  589. nautobot/project-static/docs/objects.inv +0 -0
  590. nautobot/project-static/docs/plugins/development.html +1726 -495
  591. nautobot/project-static/docs/plugins/index.html +1178 -10
  592. nautobot/project-static/docs/plugins/porting-from-netbox.html +1178 -10
  593. nautobot/project-static/docs/release-notes/index.html +1178 -10
  594. nautobot/project-static/docs/release-notes/version-1.0.html +1178 -10
  595. nautobot/project-static/docs/release-notes/version-1.1.html +1178 -10
  596. nautobot/project-static/docs/release-notes/version-1.2.html +1178 -10
  597. nautobot/project-static/docs/release-notes/version-1.3.html +1178 -10
  598. nautobot/project-static/docs/release-notes/version-1.4.html +1178 -10
  599. nautobot/project-static/docs/release-notes/version-1.5.html +1608 -225
  600. nautobot/project-static/docs/release-notes/version-2.0.html +1547 -47
  601. nautobot/project-static/docs/requirements.txt +1 -0
  602. nautobot/project-static/docs/rest-api/authentication.html +1179 -11
  603. nautobot/project-static/docs/rest-api/filtering.html +1178 -10
  604. nautobot/project-static/docs/rest-api/overview.html +1841 -446
  605. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  606. nautobot/project-static/docs/search/search_index.json +1 -1
  607. nautobot/project-static/docs/sitemap.xml +197 -187
  608. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  609. nautobot/project-static/docs/user-guides/custom-fields.html +1178 -10
  610. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1178 -10
  611. nautobot/project-static/docs/user-guides/getting-started/index.html +1178 -10
  612. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1178 -10
  613. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1178 -10
  614. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1178 -10
  615. nautobot/project-static/docs/user-guides/getting-started/regions.html +1178 -10
  616. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1178 -10
  617. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1178 -10
  618. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1178 -10
  619. nautobot/project-static/docs/user-guides/git-data-source.html +1178 -10
  620. nautobot/project-static/docs/user-guides/graphql.html +1178 -10
  621. nautobot/project-static/docs/user-guides/relationships.html +1178 -10
  622. nautobot/project-static/docs/user-guides/s3-django-storage.html +1178 -10
  623. nautobot/project-static/js/forms.js +16 -9
  624. nautobot/project-static/js/theme.js +5 -0
  625. nautobot/tenancy/api/serializers.py +4 -32
  626. nautobot/tenancy/api/urls.py +1 -1
  627. nautobot/tenancy/forms.py +0 -28
  628. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  629. nautobot/tenancy/models.py +0 -25
  630. nautobot/tenancy/navigation.py +6 -39
  631. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  632. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  633. nautobot/tenancy/tests/test_api.py +1 -3
  634. nautobot/tenancy/tests/test_filters.py +10 -5
  635. nautobot/tenancy/views.py +0 -2
  636. nautobot/ui/.eslintignore +6 -0
  637. nautobot/ui/.gitignore +10 -0
  638. nautobot/ui/.prettierignore +9 -0
  639. nautobot/ui/.prettierrc +4 -0
  640. nautobot/ui/README.md +33 -0
  641. nautobot/ui/app_imports.js.j2 +7 -0
  642. nautobot/ui/craco.config.js +46 -0
  643. nautobot/ui/jsconfig-base.json +11 -0
  644. nautobot/ui/jsconfig.json +5 -0
  645. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  646. nautobot/ui/package-lock.json +21451 -0
  647. nautobot/ui/package.json +70 -0
  648. nautobot/ui/public/index.html +47 -0
  649. nautobot/ui/public/logo192.png +0 -0
  650. nautobot/ui/public/logo512.png +0 -0
  651. nautobot/ui/public/manifest.json +25 -0
  652. nautobot/ui/public/nautobot_logo.svg +131 -0
  653. nautobot/ui/public/robots.txt +3 -0
  654. nautobot/ui/src/App.js +71 -0
  655. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  656. nautobot/ui/src/components/AppTab.js +40 -0
  657. nautobot/ui/src/components/Apps.js +60 -0
  658. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  659. nautobot/ui/src/components/HomePanel.js +58 -0
  660. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  661. nautobot/ui/src/components/Layout.js +53 -0
  662. nautobot/ui/src/components/LoadingWidget.js +25 -0
  663. nautobot/ui/src/components/Navbar.js +116 -0
  664. nautobot/ui/src/components/NotificationPopover.js +27 -0
  665. nautobot/ui/src/components/ObjectListTable.js +209 -0
  666. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  667. nautobot/ui/src/components/RouterButton.js +10 -0
  668. nautobot/ui/src/components/RouterLink.js +10 -0
  669. nautobot/ui/src/components/SidebarNav.js +147 -0
  670. nautobot/ui/src/components/Table.js +48 -0
  671. nautobot/ui/src/components/TableItem.js +71 -0
  672. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  673. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  674. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  675. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  676. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  677. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  678. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  679. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  680. nautobot/ui/src/components/pagination.js +93 -0
  681. nautobot/ui/src/components/paginator.js +79 -0
  682. nautobot/ui/src/components/paginator_form.js +43 -0
  683. nautobot/ui/src/components/usePagination.js +57 -0
  684. nautobot/ui/src/constants/apiPath.js +10 -0
  685. nautobot/ui/src/constants/icons.js +15 -0
  686. nautobot/ui/src/constants/size.js +15 -0
  687. nautobot/ui/src/index.js +65 -0
  688. nautobot/ui/src/reportWebVitals.js +15 -0
  689. nautobot/ui/src/router.js +77 -0
  690. nautobot/ui/src/utils/api.js +131 -0
  691. nautobot/ui/src/utils/app-import.js +15 -0
  692. nautobot/ui/src/utils/color.js +15 -0
  693. nautobot/ui/src/utils/date.js +14 -0
  694. nautobot/ui/src/utils/index.js +15 -0
  695. nautobot/ui/src/utils/navigation.js +32 -0
  696. nautobot/ui/src/utils/session.js +64 -0
  697. nautobot/ui/src/utils/store.js +242 -0
  698. nautobot/ui/src/utils/string.js +6 -0
  699. nautobot/ui/src/utils/url.js +4 -0
  700. nautobot/ui/src/views/Home.js +138 -0
  701. nautobot/ui/src/views/InstalledApps.js +80 -0
  702. nautobot/ui/src/views/Login.js +48 -0
  703. nautobot/ui/src/views/Logout.js +20 -0
  704. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  705. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  706. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  707. nautobot/ui/src/views/generic/GenericView.js +142 -0
  708. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  709. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  710. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  711. nautobot/users/admin.py +1 -1
  712. nautobot/users/api/serializers.py +51 -61
  713. nautobot/users/api/urls.py +1 -1
  714. nautobot/users/api/views.py +53 -2
  715. nautobot/users/tests/test_api.py +110 -25
  716. nautobot/virtualization/api/serializers.py +18 -130
  717. nautobot/virtualization/api/urls.py +1 -1
  718. nautobot/virtualization/api/views.py +1 -22
  719. nautobot/virtualization/forms.py +13 -99
  720. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -1
  721. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -11
  722. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -1
  723. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -1
  724. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  725. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  726. nautobot/virtualization/migrations/{0021_ipam__namespaces.py → 0023_ipam__namespaces.py} +2 -2
  727. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  728. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  729. nautobot/virtualization/models.py +31 -123
  730. nautobot/virtualization/navigation.py +18 -99
  731. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -1
  732. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  733. nautobot/virtualization/tests/test_api.py +25 -26
  734. nautobot/virtualization/tests/test_filters.py +41 -15
  735. nautobot/virtualization/tests/test_models.py +31 -7
  736. nautobot/virtualization/tests/test_views.py +42 -25
  737. nautobot/virtualization/views.py +7 -6
  738. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +3 -7
  739. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +744 -602
  740. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  741. nautobot/circuits/api/nested_serializers.py +0 -69
  742. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  743. nautobot/dcim/api/nested_serializers.py +0 -356
  744. nautobot/dcim/templates/dcim/device_import.html +0 -5
  745. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  746. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  747. nautobot/extras/api/nested_serializers.py +0 -353
  748. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -41
  749. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -46
  750. nautobot/extras/reports.py +0 -60
  751. nautobot/extras/scripts.py +0 -72
  752. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  753. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  754. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  755. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  756. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  757. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  758. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  759. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  760. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  761. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -18
  762. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  763. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  764. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  765. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  766. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  767. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  768. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  769. nautobot/ipam/api/nested_serializers.py +0 -159
  770. nautobot/ipam/migrations/0029_ipam__prefix__add_parent.py +0 -31
  771. nautobot/ipam/migrations/0030_ipam__prefix__data_migration.py +0 -13
  772. nautobot/ipam/migrations/0031_ipam__ipaddress__add_parent.py +0 -41
  773. nautobot/ipam/migrations/0032_ipam__ipaddress__data_migration.py +0 -11
  774. nautobot/tenancy/api/nested_serializers.py +0 -31
  775. nautobot/users/api/nested_serializers.py +0 -67
  776. nautobot/virtualization/api/nested_serializers.py +0 -65
  777. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  778. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  779. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  780. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -953,17 +953,1027 @@
953
953
 
954
954
  </li>
955
955
 
956
- <li class="md-nav__item">
957
- <a href="#cache-invalidation" class="md-nav__link">
958
- Cache Invalidation
959
- </a>
956
+ </ul>
957
+
958
+ </nav>
959
+
960
+ </li>
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+ <li class="md-nav__item">
971
+ <a href="celery-queues.html" class="md-nav__link">
972
+ Task Queues
973
+ </a>
974
+ </li>
975
+
976
+
977
+
978
+
979
+ </ul>
980
+ </nav>
981
+ </li>
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+ <li class="md-nav__item md-nav__item--nested">
993
+
994
+
995
+
996
+
997
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
998
+
999
+
1000
+
1001
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1002
+ User Guides
1003
+ <span class="md-nav__icon md-icon"></span>
1004
+ </label>
1005
+
1006
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1007
+ <label class="md-nav__title" for="__nav_2_6">
1008
+ <span class="md-nav__icon md-icon"></span>
1009
+ User Guides
1010
+ </label>
1011
+ <ul class="md-nav__list" data-md-scrollfix>
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+ <li class="md-nav__item">
1019
+ <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1020
+ Creating Devices
1021
+ </a>
1022
+ </li>
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+ <li class="md-nav__item">
1033
+ <a href="../user-guides/custom-fields.html" class="md-nav__link">
1034
+ Custom Fields
1035
+ </a>
1036
+ </li>
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+ <li class="md-nav__item">
1047
+ <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1048
+ Getting Started In the Web UI
1049
+ </a>
1050
+ </li>
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+ <li class="md-nav__item">
1061
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1062
+ Git as a Data Source
1063
+ </a>
1064
+ </li>
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+
1074
+ <li class="md-nav__item">
1075
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1076
+ GraphQL
1077
+ </a>
1078
+ </li>
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+ <li class="md-nav__item">
1089
+ <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1090
+ Interfaces
1091
+ </a>
1092
+ </li>
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+ <li class="md-nav__item">
1103
+ <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1104
+ IP Address Management
1105
+ </a>
1106
+ </li>
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+ <li class="md-nav__item">
1117
+ <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1118
+ Platforms
1119
+ </a>
1120
+ </li>
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+ <li class="md-nav__item">
1131
+ <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1132
+ Regions
1133
+ </a>
1134
+ </li>
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+ <li class="md-nav__item">
1145
+ <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1146
+ Tenants
1147
+ </a>
1148
+ </li>
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+ <li class="md-nav__item">
1159
+ <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1160
+ The Search Bar
1161
+ </a>
1162
+ </li>
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+ <li class="md-nav__item">
1173
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1174
+ Git as a Data Source
1175
+ </a>
1176
+ </li>
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+ <li class="md-nav__item">
1187
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1188
+ GraphQL
1189
+ </a>
1190
+ </li>
1191
+
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+ <li class="md-nav__item">
1201
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1202
+ Relationships
1203
+ </a>
1204
+ </li>
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+ <li class="md-nav__item">
1215
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1216
+ Django Storages with S3
1217
+ </a>
1218
+ </li>
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+ <li class="md-nav__item">
1229
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1230
+ VLANS and VLAN Groups
1231
+ </a>
1232
+ </li>
1233
+
1234
+
1235
+
1236
+
1237
+ </ul>
1238
+ </nav>
1239
+ </li>
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+ <li class="md-nav__item md-nav__item--nested">
1251
+
1252
+
1253
+
1254
+
1255
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1256
+
1257
+
1258
+
1259
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1260
+ Core Functionality
1261
+ <span class="md-nav__icon md-icon"></span>
1262
+ </label>
1263
+
1264
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1265
+ <label class="md-nav__title" for="__nav_2_7">
1266
+ <span class="md-nav__icon md-icon"></span>
1267
+ Core Functionality
1268
+ </label>
1269
+ <ul class="md-nav__list" data-md-scrollfix>
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+ <li class="md-nav__item">
1277
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1278
+ Circuits
1279
+ </a>
1280
+ </li>
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+ <li class="md-nav__item">
1291
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1292
+ Devices and Cabling
1293
+ </a>
1294
+ </li>
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+ <li class="md-nav__item">
1305
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1306
+ Device Types
1307
+ </a>
1308
+ </li>
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+ <li class="md-nav__item">
1319
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1320
+ IP Address Management
1321
+ </a>
1322
+ </li>
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+ <li class="md-nav__item">
1333
+ <a href="../core-functionality/power.html" class="md-nav__link">
1334
+ Power Tracking
1335
+ </a>
1336
+ </li>
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+ <li class="md-nav__item">
1347
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1348
+ Secrets
1349
+ </a>
1350
+ </li>
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+ <li class="md-nav__item">
1361
+ <a href="../core-functionality/services.html" class="md-nav__link">
1362
+ Service Mapping
1363
+ </a>
1364
+ </li>
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+ <li class="md-nav__item">
1375
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1376
+ Sites, Locations, and Racks
1377
+ </a>
1378
+ </li>
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+ <li class="md-nav__item">
1389
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1390
+ Tenancy
1391
+ </a>
1392
+ </li>
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+ <li class="md-nav__item">
1403
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1404
+ Virtualization
1405
+ </a>
1406
+ </li>
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+ <li class="md-nav__item">
1417
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1418
+ VLAN Management
1419
+ </a>
1420
+ </li>
1421
+
1422
+
1423
+
1424
+
1425
+ </ul>
1426
+ </nav>
1427
+ </li>
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+ <li class="md-nav__item md-nav__item--nested">
1439
+
1440
+
1441
+
1442
+
1443
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1444
+
1445
+
1446
+
1447
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1448
+ Model Details
1449
+ <span class="md-nav__icon md-icon"></span>
1450
+ </label>
1451
+
1452
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1453
+ <label class="md-nav__title" for="__nav_2_8">
1454
+ <span class="md-nav__icon md-icon"></span>
1455
+ Model Details
1456
+ </label>
1457
+ <ul class="md-nav__list" data-md-scrollfix>
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+ <li class="md-nav__item md-nav__item--nested">
1466
+
1467
+
1468
+
1469
+
1470
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1471
+
1472
+
1473
+
1474
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1475
+ Circuits
1476
+ <span class="md-nav__icon md-icon"></span>
1477
+ </label>
1478
+
1479
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1480
+ <label class="md-nav__title" for="__nav_2_8_1">
1481
+ <span class="md-nav__icon md-icon"></span>
1482
+ Circuits
1483
+ </label>
1484
+ <ul class="md-nav__list" data-md-scrollfix>
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+ <li class="md-nav__item">
1492
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1493
+ Circuit
1494
+ </a>
1495
+ </li>
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+ <li class="md-nav__item">
1506
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1507
+ Circuit Termination
1508
+ </a>
1509
+ </li>
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+ <li class="md-nav__item">
1520
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1521
+ Circuit Type
1522
+ </a>
1523
+ </li>
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+ <li class="md-nav__item">
1534
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1535
+ Circuit Provider
1536
+ </a>
1537
+ </li>
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+ <li class="md-nav__item">
1548
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1549
+ Circuit Provider Network
1550
+ </a>
1551
+ </li>
1552
+
1553
+
1554
+
1555
+
1556
+ </ul>
1557
+ </nav>
1558
+ </li>
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+ <li class="md-nav__item md-nav__item--nested">
1570
+
1571
+
1572
+
1573
+
1574
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1575
+
1576
+
1577
+
1578
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1579
+ DCIM
1580
+ <span class="md-nav__icon md-icon"></span>
1581
+ </label>
1582
+
1583
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1584
+ <label class="md-nav__title" for="__nav_2_8_2">
1585
+ <span class="md-nav__icon md-icon"></span>
1586
+ DCIM
1587
+ </label>
1588
+ <ul class="md-nav__list" data-md-scrollfix>
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+ <li class="md-nav__item">
1596
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1597
+ Cable
1598
+ </a>
1599
+ </li>
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+ <li class="md-nav__item">
1610
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1611
+ Console Port
1612
+ </a>
1613
+ </li>
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+ <li class="md-nav__item">
1624
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1625
+ Console Port Template
1626
+ </a>
1627
+ </li>
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+ <li class="md-nav__item">
1638
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1639
+ Console Server Port
1640
+ </a>
1641
+ </li>
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+ <li class="md-nav__item">
1652
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1653
+ Console Server Port Template
1654
+ </a>
1655
+ </li>
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+ <li class="md-nav__item">
1666
+ <a href="../models/dcim/device.html" class="md-nav__link">
1667
+ Device
1668
+ </a>
1669
+ </li>
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+ <li class="md-nav__item">
1680
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1681
+ Device Bay
1682
+ </a>
1683
+ </li>
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+ <li class="md-nav__item">
1694
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1695
+ Device Bay Template
1696
+ </a>
1697
+ </li>
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+ <li class="md-nav__item">
1708
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1709
+ Device Redundancy Group
1710
+ </a>
1711
+ </li>
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+ <li class="md-nav__item">
1722
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1723
+ Device Type
1724
+ </a>
1725
+ </li>
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+ <li class="md-nav__item">
1736
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1737
+ Front Port
1738
+ </a>
1739
+ </li>
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+ <li class="md-nav__item">
1750
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1751
+ Front Port Template
1752
+ </a>
1753
+ </li>
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+ <li class="md-nav__item">
1764
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1765
+ Interface
1766
+ </a>
1767
+ </li>
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+ <li class="md-nav__item">
1778
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1779
+ Interface Template
1780
+ </a>
1781
+ </li>
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+ <li class="md-nav__item">
1792
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1793
+ Inventory Item
1794
+ </a>
1795
+ </li>
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+ <li class="md-nav__item">
1806
+ <a href="../models/dcim/location.html" class="md-nav__link">
1807
+ Location
1808
+ </a>
1809
+ </li>
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+ <li class="md-nav__item">
1820
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1821
+ Location Type
1822
+ </a>
1823
+ </li>
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+ <li class="md-nav__item">
1834
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1835
+ Manufacturer
1836
+ </a>
1837
+ </li>
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+ <li class="md-nav__item">
1848
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1849
+ Platform
1850
+ </a>
1851
+ </li>
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+ <li class="md-nav__item">
1862
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1863
+ Power Feed
1864
+ </a>
1865
+ </li>
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+ <li class="md-nav__item">
1876
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1877
+ Power Outlet
1878
+ </a>
1879
+ </li>
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+ <li class="md-nav__item">
1890
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
1891
+ Power Outlet Template
1892
+ </a>
1893
+ </li>
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+ <li class="md-nav__item">
1904
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
1905
+ Power Panel
1906
+ </a>
1907
+ </li>
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+ <li class="md-nav__item">
1918
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
1919
+ Power Port
1920
+ </a>
1921
+ </li>
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+ <li class="md-nav__item">
1932
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
1933
+ Power Port Template
1934
+ </a>
1935
+ </li>
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+ <li class="md-nav__item">
1946
+ <a href="../models/dcim/rack.html" class="md-nav__link">
1947
+ Rack
1948
+ </a>
1949
+ </li>
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+ <li class="md-nav__item">
1960
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
1961
+ Rack Group
1962
+ </a>
1963
+ </li>
1964
+
1965
+
1966
+
1967
+
1968
+
1969
+
960
1970
 
961
- </li>
962
-
963
- </ul>
964
1971
 
965
- </nav>
966
-
1972
+
1973
+ <li class="md-nav__item">
1974
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
1975
+ Rack Reservation
1976
+ </a>
967
1977
  </li>
968
1978
 
969
1979
 
@@ -975,8 +1985,36 @@
975
1985
 
976
1986
 
977
1987
  <li class="md-nav__item">
978
- <a href="celery-queues.html" class="md-nav__link">
979
- Task Queues
1988
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
1989
+ Rear Port
1990
+ </a>
1991
+ </li>
1992
+
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+ <li class="md-nav__item">
2002
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2003
+ Rear Port Template
2004
+ </a>
2005
+ </li>
2006
+
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+ <li class="md-nav__item">
2016
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2017
+ Virtual Chassis
980
2018
  </a>
981
2019
  </li>
982
2020
 
@@ -1001,19 +2039,19 @@
1001
2039
 
1002
2040
 
1003
2041
 
1004
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
2042
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
1005
2043
 
1006
2044
 
1007
2045
 
1008
- <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1009
- User Guides
2046
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2047
+ Extras
1010
2048
  <span class="md-nav__icon md-icon"></span>
1011
2049
  </label>
1012
2050
 
1013
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1014
- <label class="md-nav__title" for="__nav_2_6">
2051
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2052
+ <label class="md-nav__title" for="__nav_2_8_3">
1015
2053
  <span class="md-nav__icon md-icon"></span>
1016
- User Guides
2054
+ Extras
1017
2055
  </label>
1018
2056
  <ul class="md-nav__list" data-md-scrollfix>
1019
2057
 
@@ -1023,8 +2061,8 @@
1023
2061
 
1024
2062
 
1025
2063
  <li class="md-nav__item">
1026
- <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1027
- Creating Devices
2064
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2065
+ Config Context
1028
2066
  </a>
1029
2067
  </li>
1030
2068
 
@@ -1037,8 +2075,8 @@
1037
2075
 
1038
2076
 
1039
2077
  <li class="md-nav__item">
1040
- <a href="../user-guides/custom-fields.html" class="md-nav__link">
1041
- Custom Fields
2078
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2079
+ Config Context Schema
1042
2080
  </a>
1043
2081
  </li>
1044
2082
 
@@ -1051,8 +2089,8 @@
1051
2089
 
1052
2090
 
1053
2091
  <li class="md-nav__item">
1054
- <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1055
- Getting Started In the Web UI
2092
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2093
+ GraphQL Query
1056
2094
  </a>
1057
2095
  </li>
1058
2096
 
@@ -1065,8 +2103,8 @@
1065
2103
 
1066
2104
 
1067
2105
  <li class="md-nav__item">
1068
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1069
- Git as a Data Source
2106
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2107
+ Image Attachment
1070
2108
  </a>
1071
2109
  </li>
1072
2110
 
@@ -1079,8 +2117,8 @@
1079
2117
 
1080
2118
 
1081
2119
  <li class="md-nav__item">
1082
- <a href="../user-guides/graphql.html" class="md-nav__link">
1083
- GraphQL
2120
+ <a href="../models/extras/job.html" class="md-nav__link">
2121
+ Job
1084
2122
  </a>
1085
2123
  </li>
1086
2124
 
@@ -1093,8 +2131,8 @@
1093
2131
 
1094
2132
 
1095
2133
  <li class="md-nav__item">
1096
- <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1097
- Interfaces
2134
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2135
+ Job Log Entry
1098
2136
  </a>
1099
2137
  </li>
1100
2138
 
@@ -1107,8 +2145,8 @@
1107
2145
 
1108
2146
 
1109
2147
  <li class="md-nav__item">
1110
- <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1111
- IP Address Management
2148
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2149
+ Job Result
1112
2150
  </a>
1113
2151
  </li>
1114
2152
 
@@ -1121,8 +2159,8 @@
1121
2159
 
1122
2160
 
1123
2161
  <li class="md-nav__item">
1124
- <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1125
- Platforms
2162
+ <a href="../models/extras/role.html" class="md-nav__link">
2163
+ Role
1126
2164
  </a>
1127
2165
  </li>
1128
2166
 
@@ -1135,8 +2173,8 @@
1135
2173
 
1136
2174
 
1137
2175
  <li class="md-nav__item">
1138
- <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1139
- Regions
2176
+ <a href="../models/extras/secret.html" class="md-nav__link">
2177
+ Secret
1140
2178
  </a>
1141
2179
  </li>
1142
2180
 
@@ -1149,8 +2187,56 @@
1149
2187
 
1150
2188
 
1151
2189
  <li class="md-nav__item">
1152
- <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1153
- Tenants
2190
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2191
+ Secrets group
2192
+ </a>
2193
+ </li>
2194
+
2195
+
2196
+
2197
+
2198
+ </ul>
2199
+ </nav>
2200
+ </li>
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+ <li class="md-nav__item md-nav__item--nested">
2212
+
2213
+
2214
+
2215
+
2216
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2217
+
2218
+
2219
+
2220
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2221
+ IPAM
2222
+ <span class="md-nav__icon md-icon"></span>
2223
+ </label>
2224
+
2225
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2226
+ <label class="md-nav__title" for="__nav_2_8_4">
2227
+ <span class="md-nav__icon md-icon"></span>
2228
+ IPAM
2229
+ </label>
2230
+ <ul class="md-nav__list" data-md-scrollfix>
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+ <li class="md-nav__item">
2238
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2239
+ IP Address
1154
2240
  </a>
1155
2241
  </li>
1156
2242
 
@@ -1163,8 +2249,8 @@
1163
2249
 
1164
2250
 
1165
2251
  <li class="md-nav__item">
1166
- <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1167
- The Search Bar
2252
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2253
+ Prefix
1168
2254
  </a>
1169
2255
  </li>
1170
2256
 
@@ -1177,8 +2263,8 @@
1177
2263
 
1178
2264
 
1179
2265
  <li class="md-nav__item">
1180
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1181
- Git as a Data Source
2266
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2267
+ Rir
1182
2268
  </a>
1183
2269
  </li>
1184
2270
 
@@ -1191,8 +2277,8 @@
1191
2277
 
1192
2278
 
1193
2279
  <li class="md-nav__item">
1194
- <a href="../user-guides/graphql.html" class="md-nav__link">
1195
- GraphQL
2280
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2281
+ Route Target
1196
2282
  </a>
1197
2283
  </li>
1198
2284
 
@@ -1205,8 +2291,8 @@
1205
2291
 
1206
2292
 
1207
2293
  <li class="md-nav__item">
1208
- <a href="../user-guides/relationships.html" class="md-nav__link">
1209
- Relationships
2294
+ <a href="../models/ipam/service.html" class="md-nav__link">
2295
+ Service
1210
2296
  </a>
1211
2297
  </li>
1212
2298
 
@@ -1219,8 +2305,8 @@
1219
2305
 
1220
2306
 
1221
2307
  <li class="md-nav__item">
1222
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1223
- Django Storages with S3
2308
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2309
+ VLAN
1224
2310
  </a>
1225
2311
  </li>
1226
2312
 
@@ -1233,8 +2319,22 @@
1233
2319
 
1234
2320
 
1235
2321
  <li class="md-nav__item">
1236
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1237
- VLANS and VLAN Groups
2322
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2323
+ VLAN Group
2324
+ </a>
2325
+ </li>
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+ <li class="md-nav__item">
2336
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2337
+ VRF
1238
2338
  </a>
1239
2339
  </li>
1240
2340
 
@@ -1259,19 +2359,19 @@
1259
2359
 
1260
2360
 
1261
2361
 
1262
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
2362
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1263
2363
 
1264
2364
 
1265
2365
 
1266
- <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1267
- Core Functionality
2366
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2367
+ Tenancy
1268
2368
  <span class="md-nav__icon md-icon"></span>
1269
2369
  </label>
1270
2370
 
1271
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1272
- <label class="md-nav__title" for="__nav_2_7">
2371
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2372
+ <label class="md-nav__title" for="__nav_2_8_5">
1273
2373
  <span class="md-nav__icon md-icon"></span>
1274
- Core Functionality
2374
+ Tenancy
1275
2375
  </label>
1276
2376
  <ul class="md-nav__list" data-md-scrollfix>
1277
2377
 
@@ -1281,8 +2381,8 @@
1281
2381
 
1282
2382
 
1283
2383
  <li class="md-nav__item">
1284
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1285
- Circuits
2384
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2385
+ Tenant
1286
2386
  </a>
1287
2387
  </li>
1288
2388
 
@@ -1295,27 +2395,47 @@
1295
2395
 
1296
2396
 
1297
2397
  <li class="md-nav__item">
1298
- <a href="../core-functionality/devices.html" class="md-nav__link">
1299
- Devices and Cabling
2398
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2399
+ Tenant Group
1300
2400
  </a>
1301
2401
  </li>
1302
2402
 
1303
2403
 
1304
2404
 
1305
2405
 
2406
+ </ul>
2407
+ </nav>
2408
+ </li>
2409
+
2410
+
2411
+
2412
+
1306
2413
 
1307
2414
 
1308
2415
 
1309
2416
 
1310
2417
 
1311
- <li class="md-nav__item">
1312
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1313
- Device Types
1314
- </a>
1315
- </li>
1316
-
1317
-
1318
-
2418
+
2419
+ <li class="md-nav__item md-nav__item--nested">
2420
+
2421
+
2422
+
2423
+
2424
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2425
+
2426
+
2427
+
2428
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2429
+ Users
2430
+ <span class="md-nav__icon md-icon"></span>
2431
+ </label>
2432
+
2433
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2434
+ <label class="md-nav__title" for="__nav_2_8_6">
2435
+ <span class="md-nav__icon md-icon"></span>
2436
+ Users
2437
+ </label>
2438
+ <ul class="md-nav__list" data-md-scrollfix>
1319
2439
 
1320
2440
 
1321
2441
 
@@ -1323,8 +2443,8 @@
1323
2443
 
1324
2444
 
1325
2445
  <li class="md-nav__item">
1326
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1327
- IP Address Management
2446
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2447
+ Object Permission
1328
2448
  </a>
1329
2449
  </li>
1330
2450
 
@@ -1337,27 +2457,47 @@
1337
2457
 
1338
2458
 
1339
2459
  <li class="md-nav__item">
1340
- <a href="../core-functionality/power.html" class="md-nav__link">
1341
- Power Tracking
2460
+ <a href="../models/users/token.html" class="md-nav__link">
2461
+ Token
1342
2462
  </a>
1343
2463
  </li>
1344
2464
 
1345
2465
 
1346
2466
 
1347
2467
 
2468
+ </ul>
2469
+ </nav>
2470
+ </li>
2471
+
2472
+
2473
+
2474
+
1348
2475
 
1349
2476
 
1350
2477
 
1351
2478
 
1352
2479
 
1353
- <li class="md-nav__item">
1354
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1355
- Secrets
1356
- </a>
1357
- </li>
1358
-
1359
-
1360
-
2480
+
2481
+ <li class="md-nav__item md-nav__item--nested">
2482
+
2483
+
2484
+
2485
+
2486
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2487
+
2488
+
2489
+
2490
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2491
+ Virtualization
2492
+ <span class="md-nav__icon md-icon"></span>
2493
+ </label>
2494
+
2495
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2496
+ <label class="md-nav__title" for="__nav_2_8_7">
2497
+ <span class="md-nav__icon md-icon"></span>
2498
+ Virtualization
2499
+ </label>
2500
+ <ul class="md-nav__list" data-md-scrollfix>
1361
2501
 
1362
2502
 
1363
2503
 
@@ -1365,8 +2505,8 @@
1365
2505
 
1366
2506
 
1367
2507
  <li class="md-nav__item">
1368
- <a href="../core-functionality/services.html" class="md-nav__link">
1369
- Service Mapping
2508
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2509
+ Cluster
1370
2510
  </a>
1371
2511
  </li>
1372
2512
 
@@ -1379,8 +2519,8 @@
1379
2519
 
1380
2520
 
1381
2521
  <li class="md-nav__item">
1382
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1383
- Sites, Locations, and Racks
2522
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2523
+ Cluster Group
1384
2524
  </a>
1385
2525
  </li>
1386
2526
 
@@ -1393,8 +2533,8 @@
1393
2533
 
1394
2534
 
1395
2535
  <li class="md-nav__item">
1396
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1397
- Tenancy
2536
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2537
+ Cluster Type
1398
2538
  </a>
1399
2539
  </li>
1400
2540
 
@@ -1407,8 +2547,8 @@
1407
2547
 
1408
2548
 
1409
2549
  <li class="md-nav__item">
1410
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1411
- Virtualization
2550
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2551
+ Virtual Machine
1412
2552
  </a>
1413
2553
  </li>
1414
2554
 
@@ -1421,8 +2561,8 @@
1421
2561
 
1422
2562
 
1423
2563
  <li class="md-nav__item">
1424
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1425
- VLAN Management
2564
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2565
+ VM Interface
1426
2566
  </a>
1427
2567
  </li>
1428
2568
 
@@ -1436,6 +2576,13 @@
1436
2576
 
1437
2577
 
1438
2578
 
2579
+ </ul>
2580
+ </nav>
2581
+ </li>
2582
+
2583
+
2584
+
2585
+
1439
2586
 
1440
2587
 
1441
2588
 
@@ -1447,17 +2594,17 @@
1447
2594
 
1448
2595
 
1449
2596
 
1450
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
2597
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1451
2598
 
1452
2599
 
1453
2600
 
1454
- <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
2601
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1455
2602
  Additional Features
1456
2603
  <span class="md-nav__icon md-icon"></span>
1457
2604
  </label>
1458
2605
 
1459
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1460
- <label class="md-nav__title" for="__nav_2_8">
2606
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2607
+ <label class="md-nav__title" for="__nav_2_9">
1461
2608
  <span class="md-nav__icon md-icon"></span>
1462
2609
  Additional Features
1463
2610
  </label>
@@ -1789,17 +2936,17 @@
1789
2936
 
1790
2937
 
1791
2938
 
1792
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2939
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1793
2940
 
1794
2941
 
1795
2942
 
1796
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2943
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1797
2944
  REST API
1798
2945
  <span class="md-nav__icon md-icon"></span>
1799
2946
  </label>
1800
2947
 
1801
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
1802
- <label class="md-nav__title" for="__nav_2_9">
2948
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2949
+ <label class="md-nav__title" for="__nav_2_10">
1803
2950
  <span class="md-nav__icon md-icon"></span>
1804
2951
  REST API
1805
2952
  </label>
@@ -1847,6 +2994,20 @@
1847
2994
 
1848
2995
 
1849
2996
 
2997
+
2998
+
2999
+
3000
+
3001
+
3002
+ <li class="md-nav__item">
3003
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3004
+ UI Endpoints
3005
+ </a>
3006
+ </li>
3007
+
3008
+
3009
+
3010
+
1850
3011
  </ul>
1851
3012
  </nav>
1852
3013
  </li>
@@ -1865,17 +3026,17 @@
1865
3026
 
1866
3027
 
1867
3028
 
1868
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
3029
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
1869
3030
 
1870
3031
 
1871
3032
 
1872
- <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
3033
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1873
3034
  GraphQL API
1874
3035
  <span class="md-nav__icon md-icon"></span>
1875
3036
  </label>
1876
3037
 
1877
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
1878
- <label class="md-nav__title" for="__nav_2_10">
3038
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3039
+ <label class="md-nav__title" for="__nav_2_11">
1879
3040
  <span class="md-nav__icon md-icon"></span>
1880
3041
  GraphQL API
1881
3042
  </label>
@@ -2916,13 +4077,6 @@
2916
4077
  </ul>
2917
4078
  </nav>
2918
4079
 
2919
- </li>
2920
-
2921
- <li class="md-nav__item">
2922
- <a href="#cache-invalidation" class="md-nav__link">
2923
- Cache Invalidation
2924
- </a>
2925
-
2926
4080
  </li>
2927
4081
 
2928
4082
  </ul>
@@ -2987,11 +4141,6 @@
2987
4141
  <p>To extract the saved archive into a new installation, run the following from the installation root:</p>
2988
4142
  <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>tar -xf nautobot_media.tar.gz
2989
4143
  </code></pre></div>
2990
- <hr />
2991
- <h2 id="cache-invalidation">Cache Invalidation<a class="headerlink" href="#cache-invalidation" title="Permanent link">&para;</a></h2>
2992
- <p>If you are migrating your instance of Nautobot to a different machine, be sure to first invalidate the cache on the original instance by issuing the <code>invalidate all</code> management command (within the Python virtual environment):</p>
2993
- <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>nautobot-server invalidate all
2994
- </code></pre></div>
2995
4144
 
2996
4145
 
2997
4146