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
@@ -11,13 +11,17 @@
11
11
  <link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/models/virtualization/virtualmachine.html">
12
12
 
13
13
 
14
+ <link rel="prev" href="clustertype.html">
15
+
16
+
17
+ <link rel="next" href="vminterface.html">
14
18
 
15
19
  <link rel="icon" href="../../assets/favicon.ico">
16
20
  <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.1.6">
17
21
 
18
22
 
19
23
 
20
- <title>Virtual Machines - Nautobot Documentation</title>
24
+ <title>Virtual Machine - Nautobot Documentation</title>
21
25
 
22
26
 
23
27
 
@@ -107,7 +111,7 @@
107
111
  <div class="md-header__topic" data-md-component="header-topic">
108
112
  <span class="md-ellipsis">
109
113
 
110
- Virtual Machines
114
+ Virtual Machine
111
115
 
112
116
  </span>
113
117
  </div>
@@ -211,6 +215,8 @@
211
215
 
212
216
 
213
217
 
218
+
219
+
214
220
 
215
221
 
216
222
 
@@ -222,7 +228,7 @@
222
228
 
223
229
 
224
230
  <li class="md-tabs__item">
225
- <a href="../../installation/index.html" class="md-tabs__link">
231
+ <a href="../../installation/index.html" class="md-tabs__link md-tabs__link--active">
226
232
  Documentation
227
233
  </a>
228
234
  </li>
@@ -377,14 +383,16 @@
377
383
 
378
384
 
379
385
 
386
+
387
+
380
388
 
381
389
 
382
- <li class="md-nav__item md-nav__item--nested">
390
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
383
391
 
384
392
 
385
393
 
386
394
 
387
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
395
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
388
396
 
389
397
 
390
398
 
@@ -393,7 +401,7 @@
393
401
  <span class="md-nav__icon md-icon"></span>
394
402
  </label>
395
403
 
396
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
404
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
397
405
  <label class="md-nav__title" for="__nav_2">
398
406
  <span class="md-nav__icon md-icon"></span>
399
407
  Documentation
@@ -779,27 +787,1074 @@
779
787
 
780
788
 
781
789
 
782
-
783
- <li class="md-nav__item md-nav__item--nested">
784
-
785
-
786
-
787
-
788
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
789
-
790
-
791
-
792
- <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
793
- Administration
794
- <span class="md-nav__icon md-icon"></span>
795
- </label>
796
-
797
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
798
- <label class="md-nav__title" for="__nav_2_5">
799
- <span class="md-nav__icon md-icon"></span>
800
- Administration
801
- </label>
802
- <ul class="md-nav__list" data-md-scrollfix>
790
+
791
+ <li class="md-nav__item md-nav__item--nested">
792
+
793
+
794
+
795
+
796
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
797
+
798
+
799
+
800
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
801
+ Administration
802
+ <span class="md-nav__icon md-icon"></span>
803
+ </label>
804
+
805
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
806
+ <label class="md-nav__title" for="__nav_2_5">
807
+ <span class="md-nav__icon md-icon"></span>
808
+ Administration
809
+ </label>
810
+ <ul class="md-nav__list" data-md-scrollfix>
811
+
812
+
813
+
814
+
815
+
816
+
817
+ <li class="md-nav__item">
818
+ <a href="../../administration/nautobot-server.html" class="md-nav__link">
819
+ Nautobot Server
820
+ </a>
821
+ </li>
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+ <li class="md-nav__item">
832
+ <a href="../../administration/nautobot-shell.html" class="md-nav__link">
833
+ Nautobot Shell
834
+ </a>
835
+ </li>
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+ <li class="md-nav__item">
846
+ <a href="../../administration/permissions.html" class="md-nav__link">
847
+ Permissions
848
+ </a>
849
+ </li>
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+ <li class="md-nav__item">
860
+ <a href="../../administration/replicating-nautobot.html" class="md-nav__link">
861
+ Replicating Nautobot
862
+ </a>
863
+ </li>
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+ <li class="md-nav__item">
874
+ <a href="../../administration/celery-queues.html" class="md-nav__link">
875
+ Task Queues
876
+ </a>
877
+ </li>
878
+
879
+
880
+
881
+
882
+ </ul>
883
+ </nav>
884
+ </li>
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+ <li class="md-nav__item md-nav__item--nested">
896
+
897
+
898
+
899
+
900
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
901
+
902
+
903
+
904
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
905
+ User Guides
906
+ <span class="md-nav__icon md-icon"></span>
907
+ </label>
908
+
909
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
910
+ <label class="md-nav__title" for="__nav_2_6">
911
+ <span class="md-nav__icon md-icon"></span>
912
+ User Guides
913
+ </label>
914
+ <ul class="md-nav__list" data-md-scrollfix>
915
+
916
+
917
+
918
+
919
+
920
+
921
+ <li class="md-nav__item">
922
+ <a href="../../user-guides/getting-started/creating-devices.html" class="md-nav__link">
923
+ Creating Devices
924
+ </a>
925
+ </li>
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+ <li class="md-nav__item">
936
+ <a href="../../user-guides/custom-fields.html" class="md-nav__link">
937
+ Custom Fields
938
+ </a>
939
+ </li>
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+ <li class="md-nav__item">
950
+ <a href="../../user-guides/getting-started/index.html" class="md-nav__link">
951
+ Getting Started In the Web UI
952
+ </a>
953
+ </li>
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+ <li class="md-nav__item">
964
+ <a href="../../user-guides/git-data-source.html" class="md-nav__link">
965
+ Git as a Data Source
966
+ </a>
967
+ </li>
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+
976
+
977
+ <li class="md-nav__item">
978
+ <a href="../../user-guides/graphql.html" class="md-nav__link">
979
+ GraphQL
980
+ </a>
981
+ </li>
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+ <li class="md-nav__item">
992
+ <a href="../../user-guides/getting-started/interfaces.html" class="md-nav__link">
993
+ Interfaces
994
+ </a>
995
+ </li>
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+ <li class="md-nav__item">
1006
+ <a href="../../user-guides/getting-started/ipam.html" class="md-nav__link">
1007
+ IP Address Management
1008
+ </a>
1009
+ </li>
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+ <li class="md-nav__item">
1020
+ <a href="../../user-guides/getting-started/platforms.html" class="md-nav__link">
1021
+ Platforms
1022
+ </a>
1023
+ </li>
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+ <li class="md-nav__item">
1034
+ <a href="../../user-guides/getting-started/regions.html" class="md-nav__link">
1035
+ Regions
1036
+ </a>
1037
+ </li>
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+ <li class="md-nav__item">
1048
+ <a href="../../user-guides/getting-started/tenants.html" class="md-nav__link">
1049
+ Tenants
1050
+ </a>
1051
+ </li>
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+ <li class="md-nav__item">
1062
+ <a href="../../user-guides/getting-started/search-bar.html" class="md-nav__link">
1063
+ The Search Bar
1064
+ </a>
1065
+ </li>
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+ <li class="md-nav__item">
1076
+ <a href="../../user-guides/git-data-source.html" class="md-nav__link">
1077
+ Git as a Data Source
1078
+ </a>
1079
+ </li>
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+ <li class="md-nav__item">
1090
+ <a href="../../user-guides/graphql.html" class="md-nav__link">
1091
+ GraphQL
1092
+ </a>
1093
+ </li>
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+ <li class="md-nav__item">
1104
+ <a href="../../user-guides/relationships.html" class="md-nav__link">
1105
+ Relationships
1106
+ </a>
1107
+ </li>
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+ <li class="md-nav__item">
1118
+ <a href="../../user-guides/s3-django-storage.html" class="md-nav__link">
1119
+ Django Storages with S3
1120
+ </a>
1121
+ </li>
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+ <li class="md-nav__item">
1132
+ <a href="../../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1133
+ VLANS and VLAN Groups
1134
+ </a>
1135
+ </li>
1136
+
1137
+
1138
+
1139
+
1140
+ </ul>
1141
+ </nav>
1142
+ </li>
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+ <li class="md-nav__item md-nav__item--nested">
1154
+
1155
+
1156
+
1157
+
1158
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1159
+
1160
+
1161
+
1162
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1163
+ Core Functionality
1164
+ <span class="md-nav__icon md-icon"></span>
1165
+ </label>
1166
+
1167
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1168
+ <label class="md-nav__title" for="__nav_2_7">
1169
+ <span class="md-nav__icon md-icon"></span>
1170
+ Core Functionality
1171
+ </label>
1172
+ <ul class="md-nav__list" data-md-scrollfix>
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+ <li class="md-nav__item">
1180
+ <a href="../../core-functionality/circuits.html" class="md-nav__link">
1181
+ Circuits
1182
+ </a>
1183
+ </li>
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+ <li class="md-nav__item">
1194
+ <a href="../../core-functionality/devices.html" class="md-nav__link">
1195
+ Devices and Cabling
1196
+ </a>
1197
+ </li>
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+ <li class="md-nav__item">
1208
+ <a href="../../core-functionality/device-types.html" class="md-nav__link">
1209
+ Device Types
1210
+ </a>
1211
+ </li>
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+ <li class="md-nav__item">
1222
+ <a href="../../core-functionality/ipam.html" class="md-nav__link">
1223
+ IP Address Management
1224
+ </a>
1225
+ </li>
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+ <li class="md-nav__item">
1236
+ <a href="../../core-functionality/power.html" class="md-nav__link">
1237
+ Power Tracking
1238
+ </a>
1239
+ </li>
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+ <li class="md-nav__item">
1250
+ <a href="../../core-functionality/secrets.html" class="md-nav__link">
1251
+ Secrets
1252
+ </a>
1253
+ </li>
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+ <li class="md-nav__item">
1264
+ <a href="../../core-functionality/services.html" class="md-nav__link">
1265
+ Service Mapping
1266
+ </a>
1267
+ </li>
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+ <li class="md-nav__item">
1278
+ <a href="../../core-functionality/sites-and-racks.html" class="md-nav__link">
1279
+ Sites, Locations, and Racks
1280
+ </a>
1281
+ </li>
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+ <li class="md-nav__item">
1292
+ <a href="../../core-functionality/tenancy.html" class="md-nav__link">
1293
+ Tenancy
1294
+ </a>
1295
+ </li>
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+ <li class="md-nav__item">
1306
+ <a href="../../core-functionality/virtualization.html" class="md-nav__link">
1307
+ Virtualization
1308
+ </a>
1309
+ </li>
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+ <li class="md-nav__item">
1320
+ <a href="../../core-functionality/vlans.html" class="md-nav__link">
1321
+ VLAN Management
1322
+ </a>
1323
+ </li>
1324
+
1325
+
1326
+
1327
+
1328
+ </ul>
1329
+ </nav>
1330
+ </li>
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1344
+
1345
+
1346
+
1347
+
1348
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" checked>
1349
+
1350
+
1351
+
1352
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1353
+ Model Details
1354
+ <span class="md-nav__icon md-icon"></span>
1355
+ </label>
1356
+
1357
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="true">
1358
+ <label class="md-nav__title" for="__nav_2_8">
1359
+ <span class="md-nav__icon md-icon"></span>
1360
+ Model Details
1361
+ </label>
1362
+ <ul class="md-nav__list" data-md-scrollfix>
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+ <li class="md-nav__item md-nav__item--nested">
1371
+
1372
+
1373
+
1374
+
1375
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1376
+
1377
+
1378
+
1379
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1380
+ Circuits
1381
+ <span class="md-nav__icon md-icon"></span>
1382
+ </label>
1383
+
1384
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1385
+ <label class="md-nav__title" for="__nav_2_8_1">
1386
+ <span class="md-nav__icon md-icon"></span>
1387
+ Circuits
1388
+ </label>
1389
+ <ul class="md-nav__list" data-md-scrollfix>
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+ <li class="md-nav__item">
1397
+ <a href="../circuits/circuit.html" class="md-nav__link">
1398
+ Circuit
1399
+ </a>
1400
+ </li>
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+ <li class="md-nav__item">
1411
+ <a href="../circuits/circuittermination.html" class="md-nav__link">
1412
+ Circuit Termination
1413
+ </a>
1414
+ </li>
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+ <li class="md-nav__item">
1425
+ <a href="../circuits/circuittype.html" class="md-nav__link">
1426
+ Circuit Type
1427
+ </a>
1428
+ </li>
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+ <li class="md-nav__item">
1439
+ <a href="../circuits/provider.html" class="md-nav__link">
1440
+ Circuit Provider
1441
+ </a>
1442
+ </li>
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+ <li class="md-nav__item">
1453
+ <a href="../circuits/providernetwork.html" class="md-nav__link">
1454
+ Circuit Provider Network
1455
+ </a>
1456
+ </li>
1457
+
1458
+
1459
+
1460
+
1461
+ </ul>
1462
+ </nav>
1463
+ </li>
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+ <li class="md-nav__item md-nav__item--nested">
1475
+
1476
+
1477
+
1478
+
1479
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1480
+
1481
+
1482
+
1483
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1484
+ DCIM
1485
+ <span class="md-nav__icon md-icon"></span>
1486
+ </label>
1487
+
1488
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1489
+ <label class="md-nav__title" for="__nav_2_8_2">
1490
+ <span class="md-nav__icon md-icon"></span>
1491
+ DCIM
1492
+ </label>
1493
+ <ul class="md-nav__list" data-md-scrollfix>
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+ <li class="md-nav__item">
1501
+ <a href="../dcim/cable.html" class="md-nav__link">
1502
+ Cable
1503
+ </a>
1504
+ </li>
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+ <li class="md-nav__item">
1515
+ <a href="../dcim/consoleport.html" class="md-nav__link">
1516
+ Console Port
1517
+ </a>
1518
+ </li>
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+ <li class="md-nav__item">
1529
+ <a href="../dcim/consoleporttemplate.html" class="md-nav__link">
1530
+ Console Port Template
1531
+ </a>
1532
+ </li>
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+ <li class="md-nav__item">
1543
+ <a href="../dcim/consoleserverport.html" class="md-nav__link">
1544
+ Console Server Port
1545
+ </a>
1546
+ </li>
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+ <li class="md-nav__item">
1557
+ <a href="../dcim/consoleserverporttemplate.html" class="md-nav__link">
1558
+ Console Server Port Template
1559
+ </a>
1560
+ </li>
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+ <li class="md-nav__item">
1571
+ <a href="../dcim/device.html" class="md-nav__link">
1572
+ Device
1573
+ </a>
1574
+ </li>
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+ <li class="md-nav__item">
1585
+ <a href="../dcim/devicebay.html" class="md-nav__link">
1586
+ Device Bay
1587
+ </a>
1588
+ </li>
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+ <li class="md-nav__item">
1599
+ <a href="../dcim/devicebaytemplate.html" class="md-nav__link">
1600
+ Device Bay Template
1601
+ </a>
1602
+ </li>
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+ <li class="md-nav__item">
1613
+ <a href="../dcim/deviceredundancygroup.html" class="md-nav__link">
1614
+ Device Redundancy Group
1615
+ </a>
1616
+ </li>
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+ <li class="md-nav__item">
1627
+ <a href="../dcim/devicetype.html" class="md-nav__link">
1628
+ Device Type
1629
+ </a>
1630
+ </li>
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+ <li class="md-nav__item">
1641
+ <a href="../dcim/frontport.html" class="md-nav__link">
1642
+ Front Port
1643
+ </a>
1644
+ </li>
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+ <li class="md-nav__item">
1655
+ <a href="../dcim/frontporttemplate.html" class="md-nav__link">
1656
+ Front Port Template
1657
+ </a>
1658
+ </li>
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+
1668
+ <li class="md-nav__item">
1669
+ <a href="../dcim/interface.html" class="md-nav__link">
1670
+ Interface
1671
+ </a>
1672
+ </li>
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+ <li class="md-nav__item">
1683
+ <a href="../dcim/interfacetemplate.html" class="md-nav__link">
1684
+ Interface Template
1685
+ </a>
1686
+ </li>
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+ <li class="md-nav__item">
1697
+ <a href="../dcim/inventoryitem.html" class="md-nav__link">
1698
+ Inventory Item
1699
+ </a>
1700
+ </li>
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+ <li class="md-nav__item">
1711
+ <a href="../dcim/location.html" class="md-nav__link">
1712
+ Location
1713
+ </a>
1714
+ </li>
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+ <li class="md-nav__item">
1725
+ <a href="../dcim/locationtype.html" class="md-nav__link">
1726
+ Location Type
1727
+ </a>
1728
+ </li>
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+ <li class="md-nav__item">
1739
+ <a href="../dcim/manufacturer.html" class="md-nav__link">
1740
+ Manufacturer
1741
+ </a>
1742
+ </li>
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+ <li class="md-nav__item">
1753
+ <a href="../dcim/platform.html" class="md-nav__link">
1754
+ Platform
1755
+ </a>
1756
+ </li>
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+ <li class="md-nav__item">
1767
+ <a href="../dcim/powerfeed.html" class="md-nav__link">
1768
+ Power Feed
1769
+ </a>
1770
+ </li>
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+ <li class="md-nav__item">
1781
+ <a href="../dcim/poweroutlet.html" class="md-nav__link">
1782
+ Power Outlet
1783
+ </a>
1784
+ </li>
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+ <li class="md-nav__item">
1795
+ <a href="../dcim/poweroutlettemplate.html" class="md-nav__link">
1796
+ Power Outlet Template
1797
+ </a>
1798
+ </li>
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+ <li class="md-nav__item">
1809
+ <a href="../dcim/powerpanel.html" class="md-nav__link">
1810
+ Power Panel
1811
+ </a>
1812
+ </li>
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+ <li class="md-nav__item">
1823
+ <a href="../dcim/powerport.html" class="md-nav__link">
1824
+ Power Port
1825
+ </a>
1826
+ </li>
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+ <li class="md-nav__item">
1837
+ <a href="../dcim/powerporttemplate.html" class="md-nav__link">
1838
+ Power Port Template
1839
+ </a>
1840
+ </li>
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+ <li class="md-nav__item">
1851
+ <a href="../dcim/rack.html" class="md-nav__link">
1852
+ Rack
1853
+ </a>
1854
+ </li>
1855
+
1856
+
1857
+
803
1858
 
804
1859
 
805
1860
 
@@ -807,8 +1862,8 @@
807
1862
 
808
1863
 
809
1864
  <li class="md-nav__item">
810
- <a href="../../administration/nautobot-server.html" class="md-nav__link">
811
- Nautobot Server
1865
+ <a href="../dcim/rackgroup.html" class="md-nav__link">
1866
+ Rack Group
812
1867
  </a>
813
1868
  </li>
814
1869
 
@@ -821,8 +1876,8 @@
821
1876
 
822
1877
 
823
1878
  <li class="md-nav__item">
824
- <a href="../../administration/nautobot-shell.html" class="md-nav__link">
825
- Nautobot Shell
1879
+ <a href="../dcim/rackreservation.html" class="md-nav__link">
1880
+ Rack Reservation
826
1881
  </a>
827
1882
  </li>
828
1883
 
@@ -835,8 +1890,8 @@
835
1890
 
836
1891
 
837
1892
  <li class="md-nav__item">
838
- <a href="../../administration/permissions.html" class="md-nav__link">
839
- Permissions
1893
+ <a href="../dcim/rearport.html" class="md-nav__link">
1894
+ Rear Port
840
1895
  </a>
841
1896
  </li>
842
1897
 
@@ -849,8 +1904,8 @@
849
1904
 
850
1905
 
851
1906
  <li class="md-nav__item">
852
- <a href="../../administration/replicating-nautobot.html" class="md-nav__link">
853
- Replicating Nautobot
1907
+ <a href="../dcim/rearporttemplate.html" class="md-nav__link">
1908
+ Rear Port Template
854
1909
  </a>
855
1910
  </li>
856
1911
 
@@ -863,8 +1918,8 @@
863
1918
 
864
1919
 
865
1920
  <li class="md-nav__item">
866
- <a href="../../administration/celery-queues.html" class="md-nav__link">
867
- Task Queues
1921
+ <a href="../dcim/virtualchassis.html" class="md-nav__link">
1922
+ Virtual Chassis
868
1923
  </a>
869
1924
  </li>
870
1925
 
@@ -889,19 +1944,19 @@
889
1944
 
890
1945
 
891
1946
 
892
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1947
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
893
1948
 
894
1949
 
895
1950
 
896
- <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
897
- User Guides
1951
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
1952
+ Extras
898
1953
  <span class="md-nav__icon md-icon"></span>
899
1954
  </label>
900
1955
 
901
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
902
- <label class="md-nav__title" for="__nav_2_6">
1956
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
1957
+ <label class="md-nav__title" for="__nav_2_8_3">
903
1958
  <span class="md-nav__icon md-icon"></span>
904
- User Guides
1959
+ Extras
905
1960
  </label>
906
1961
  <ul class="md-nav__list" data-md-scrollfix>
907
1962
 
@@ -911,8 +1966,8 @@
911
1966
 
912
1967
 
913
1968
  <li class="md-nav__item">
914
- <a href="../../user-guides/getting-started/creating-devices.html" class="md-nav__link">
915
- Creating Devices
1969
+ <a href="../extras/configcontext.html" class="md-nav__link">
1970
+ Config Context
916
1971
  </a>
917
1972
  </li>
918
1973
 
@@ -925,8 +1980,8 @@
925
1980
 
926
1981
 
927
1982
  <li class="md-nav__item">
928
- <a href="../../user-guides/custom-fields.html" class="md-nav__link">
929
- Custom Fields
1983
+ <a href="../extras/configcontextschema.html" class="md-nav__link">
1984
+ Config Context Schema
930
1985
  </a>
931
1986
  </li>
932
1987
 
@@ -939,8 +1994,8 @@
939
1994
 
940
1995
 
941
1996
  <li class="md-nav__item">
942
- <a href="../../user-guides/getting-started/index.html" class="md-nav__link">
943
- Getting Started In the Web UI
1997
+ <a href="../extras/graphqlquery.html" class="md-nav__link">
1998
+ GraphQL Query
944
1999
  </a>
945
2000
  </li>
946
2001
 
@@ -953,8 +2008,8 @@
953
2008
 
954
2009
 
955
2010
  <li class="md-nav__item">
956
- <a href="../../user-guides/git-data-source.html" class="md-nav__link">
957
- Git as a Data Source
2011
+ <a href="../extras/imageattachment.html" class="md-nav__link">
2012
+ Image Attachment
958
2013
  </a>
959
2014
  </li>
960
2015
 
@@ -967,8 +2022,8 @@
967
2022
 
968
2023
 
969
2024
  <li class="md-nav__item">
970
- <a href="../../user-guides/graphql.html" class="md-nav__link">
971
- GraphQL
2025
+ <a href="../extras/job.html" class="md-nav__link">
2026
+ Job
972
2027
  </a>
973
2028
  </li>
974
2029
 
@@ -981,8 +2036,8 @@
981
2036
 
982
2037
 
983
2038
  <li class="md-nav__item">
984
- <a href="../../user-guides/getting-started/interfaces.html" class="md-nav__link">
985
- Interfaces
2039
+ <a href="../extras/joblogentry.html" class="md-nav__link">
2040
+ Job Log Entry
986
2041
  </a>
987
2042
  </li>
988
2043
 
@@ -995,8 +2050,8 @@
995
2050
 
996
2051
 
997
2052
  <li class="md-nav__item">
998
- <a href="../../user-guides/getting-started/ipam.html" class="md-nav__link">
999
- IP Address Management
2053
+ <a href="../extras/jobresult.html" class="md-nav__link">
2054
+ Job Result
1000
2055
  </a>
1001
2056
  </li>
1002
2057
 
@@ -1009,8 +2064,8 @@
1009
2064
 
1010
2065
 
1011
2066
  <li class="md-nav__item">
1012
- <a href="../../user-guides/getting-started/platforms.html" class="md-nav__link">
1013
- Platforms
2067
+ <a href="../extras/role.html" class="md-nav__link">
2068
+ Role
1014
2069
  </a>
1015
2070
  </li>
1016
2071
 
@@ -1023,8 +2078,8 @@
1023
2078
 
1024
2079
 
1025
2080
  <li class="md-nav__item">
1026
- <a href="../../user-guides/getting-started/regions.html" class="md-nav__link">
1027
- Regions
2081
+ <a href="../extras/secret.html" class="md-nav__link">
2082
+ Secret
1028
2083
  </a>
1029
2084
  </li>
1030
2085
 
@@ -1037,8 +2092,56 @@
1037
2092
 
1038
2093
 
1039
2094
  <li class="md-nav__item">
1040
- <a href="../../user-guides/getting-started/tenants.html" class="md-nav__link">
1041
- Tenants
2095
+ <a href="../extras/secretsgroup.html" class="md-nav__link">
2096
+ Secrets group
2097
+ </a>
2098
+ </li>
2099
+
2100
+
2101
+
2102
+
2103
+ </ul>
2104
+ </nav>
2105
+ </li>
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+ <li class="md-nav__item md-nav__item--nested">
2117
+
2118
+
2119
+
2120
+
2121
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2122
+
2123
+
2124
+
2125
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2126
+ IPAM
2127
+ <span class="md-nav__icon md-icon"></span>
2128
+ </label>
2129
+
2130
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2131
+ <label class="md-nav__title" for="__nav_2_8_4">
2132
+ <span class="md-nav__icon md-icon"></span>
2133
+ IPAM
2134
+ </label>
2135
+ <ul class="md-nav__list" data-md-scrollfix>
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+ <li class="md-nav__item">
2143
+ <a href="../ipam/ipaddress.html" class="md-nav__link">
2144
+ IP Address
1042
2145
  </a>
1043
2146
  </li>
1044
2147
 
@@ -1051,8 +2154,8 @@
1051
2154
 
1052
2155
 
1053
2156
  <li class="md-nav__item">
1054
- <a href="../../user-guides/getting-started/search-bar.html" class="md-nav__link">
1055
- The Search Bar
2157
+ <a href="../ipam/prefix.html" class="md-nav__link">
2158
+ Prefix
1056
2159
  </a>
1057
2160
  </li>
1058
2161
 
@@ -1065,8 +2168,8 @@
1065
2168
 
1066
2169
 
1067
2170
  <li class="md-nav__item">
1068
- <a href="../../user-guides/git-data-source.html" class="md-nav__link">
1069
- Git as a Data Source
2171
+ <a href="../ipam/rir.html" class="md-nav__link">
2172
+ Rir
1070
2173
  </a>
1071
2174
  </li>
1072
2175
 
@@ -1079,8 +2182,8 @@
1079
2182
 
1080
2183
 
1081
2184
  <li class="md-nav__item">
1082
- <a href="../../user-guides/graphql.html" class="md-nav__link">
1083
- GraphQL
2185
+ <a href="../ipam/routetarget.html" class="md-nav__link">
2186
+ Route Target
1084
2187
  </a>
1085
2188
  </li>
1086
2189
 
@@ -1093,8 +2196,8 @@
1093
2196
 
1094
2197
 
1095
2198
  <li class="md-nav__item">
1096
- <a href="../../user-guides/relationships.html" class="md-nav__link">
1097
- Relationships
2199
+ <a href="../ipam/service.html" class="md-nav__link">
2200
+ Service
1098
2201
  </a>
1099
2202
  </li>
1100
2203
 
@@ -1107,8 +2210,8 @@
1107
2210
 
1108
2211
 
1109
2212
  <li class="md-nav__item">
1110
- <a href="../../user-guides/s3-django-storage.html" class="md-nav__link">
1111
- Django Storages with S3
2213
+ <a href="../ipam/vlan.html" class="md-nav__link">
2214
+ VLAN
1112
2215
  </a>
1113
2216
  </li>
1114
2217
 
@@ -1121,8 +2224,22 @@
1121
2224
 
1122
2225
 
1123
2226
  <li class="md-nav__item">
1124
- <a href="../../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1125
- VLANS and VLAN Groups
2227
+ <a href="../ipam/vlangroup.html" class="md-nav__link">
2228
+ VLAN Group
2229
+ </a>
2230
+ </li>
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+ <li class="md-nav__item">
2241
+ <a href="../ipam/vrf.html" class="md-nav__link">
2242
+ VRF
1126
2243
  </a>
1127
2244
  </li>
1128
2245
 
@@ -1147,19 +2264,19 @@
1147
2264
 
1148
2265
 
1149
2266
 
1150
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
2267
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1151
2268
 
1152
2269
 
1153
2270
 
1154
- <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1155
- Core Functionality
2271
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2272
+ Tenancy
1156
2273
  <span class="md-nav__icon md-icon"></span>
1157
2274
  </label>
1158
2275
 
1159
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1160
- <label class="md-nav__title" for="__nav_2_7">
2276
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2277
+ <label class="md-nav__title" for="__nav_2_8_5">
1161
2278
  <span class="md-nav__icon md-icon"></span>
1162
- Core Functionality
2279
+ Tenancy
1163
2280
  </label>
1164
2281
  <ul class="md-nav__list" data-md-scrollfix>
1165
2282
 
@@ -1169,8 +2286,8 @@
1169
2286
 
1170
2287
 
1171
2288
  <li class="md-nav__item">
1172
- <a href="../../core-functionality/circuits.html" class="md-nav__link">
1173
- Circuits
2289
+ <a href="../tenancy/tenant.html" class="md-nav__link">
2290
+ Tenant
1174
2291
  </a>
1175
2292
  </li>
1176
2293
 
@@ -1183,27 +2300,47 @@
1183
2300
 
1184
2301
 
1185
2302
  <li class="md-nav__item">
1186
- <a href="../../core-functionality/devices.html" class="md-nav__link">
1187
- Devices and Cabling
2303
+ <a href="../tenancy/tenantgroup.html" class="md-nav__link">
2304
+ Tenant Group
1188
2305
  </a>
1189
2306
  </li>
1190
2307
 
1191
2308
 
1192
2309
 
1193
2310
 
2311
+ </ul>
2312
+ </nav>
2313
+ </li>
2314
+
2315
+
2316
+
2317
+
1194
2318
 
1195
2319
 
1196
2320
 
1197
2321
 
1198
2322
 
1199
- <li class="md-nav__item">
1200
- <a href="../../core-functionality/device-types.html" class="md-nav__link">
1201
- Device Types
1202
- </a>
1203
- </li>
1204
-
1205
-
1206
-
2323
+
2324
+ <li class="md-nav__item md-nav__item--nested">
2325
+
2326
+
2327
+
2328
+
2329
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2330
+
2331
+
2332
+
2333
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2334
+ Users
2335
+ <span class="md-nav__icon md-icon"></span>
2336
+ </label>
2337
+
2338
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2339
+ <label class="md-nav__title" for="__nav_2_8_6">
2340
+ <span class="md-nav__icon md-icon"></span>
2341
+ Users
2342
+ </label>
2343
+ <ul class="md-nav__list" data-md-scrollfix>
1207
2344
 
1208
2345
 
1209
2346
 
@@ -1211,8 +2348,8 @@
1211
2348
 
1212
2349
 
1213
2350
  <li class="md-nav__item">
1214
- <a href="../../core-functionality/ipam.html" class="md-nav__link">
1215
- IP Address Management
2351
+ <a href="../users/objectpermission.html" class="md-nav__link">
2352
+ Object Permission
1216
2353
  </a>
1217
2354
  </li>
1218
2355
 
@@ -1225,27 +2362,49 @@
1225
2362
 
1226
2363
 
1227
2364
  <li class="md-nav__item">
1228
- <a href="../../core-functionality/power.html" class="md-nav__link">
1229
- Power Tracking
2365
+ <a href="../users/token.html" class="md-nav__link">
2366
+ Token
1230
2367
  </a>
1231
2368
  </li>
1232
2369
 
1233
2370
 
1234
2371
 
1235
2372
 
2373
+ </ul>
2374
+ </nav>
2375
+ </li>
2376
+
2377
+
2378
+
2379
+
1236
2380
 
1237
2381
 
1238
2382
 
1239
2383
 
2384
+
1240
2385
 
1241
- <li class="md-nav__item">
1242
- <a href="../../core-functionality/secrets.html" class="md-nav__link">
1243
- Secrets
1244
- </a>
1245
- </li>
1246
2386
 
1247
-
1248
-
2387
+
2388
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
2389
+
2390
+
2391
+
2392
+
2393
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" checked>
2394
+
2395
+
2396
+
2397
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2398
+ Virtualization
2399
+ <span class="md-nav__icon md-icon"></span>
2400
+ </label>
2401
+
2402
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="true">
2403
+ <label class="md-nav__title" for="__nav_2_8_7">
2404
+ <span class="md-nav__icon md-icon"></span>
2405
+ Virtualization
2406
+ </label>
2407
+ <ul class="md-nav__list" data-md-scrollfix>
1249
2408
 
1250
2409
 
1251
2410
 
@@ -1253,8 +2412,8 @@
1253
2412
 
1254
2413
 
1255
2414
  <li class="md-nav__item">
1256
- <a href="../../core-functionality/services.html" class="md-nav__link">
1257
- Service Mapping
2415
+ <a href="cluster.html" class="md-nav__link">
2416
+ Cluster
1258
2417
  </a>
1259
2418
  </li>
1260
2419
 
@@ -1267,8 +2426,8 @@
1267
2426
 
1268
2427
 
1269
2428
  <li class="md-nav__item">
1270
- <a href="../../core-functionality/sites-and-racks.html" class="md-nav__link">
1271
- Sites, Locations, and Racks
2429
+ <a href="clustergroup.html" class="md-nav__link">
2430
+ Cluster Group
1272
2431
  </a>
1273
2432
  </li>
1274
2433
 
@@ -1281,8 +2440,8 @@
1281
2440
 
1282
2441
 
1283
2442
  <li class="md-nav__item">
1284
- <a href="../../core-functionality/tenancy.html" class="md-nav__link">
1285
- Tenancy
2443
+ <a href="clustertype.html" class="md-nav__link">
2444
+ Cluster Type
1286
2445
  </a>
1287
2446
  </li>
1288
2447
 
@@ -1293,11 +2452,21 @@
1293
2452
 
1294
2453
 
1295
2454
 
2455
+
1296
2456
 
1297
- <li class="md-nav__item">
1298
- <a href="../../core-functionality/virtualization.html" class="md-nav__link">
1299
- Virtualization
2457
+
2458
+ <li class="md-nav__item md-nav__item--active">
2459
+
2460
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+ <a href="virtualmachine.html" class="md-nav__link md-nav__link--active">
2467
+ Virtual Machine
1300
2468
  </a>
2469
+
1301
2470
  </li>
1302
2471
 
1303
2472
 
@@ -1309,8 +2478,8 @@
1309
2478
 
1310
2479
 
1311
2480
  <li class="md-nav__item">
1312
- <a href="../../core-functionality/vlans.html" class="md-nav__link">
1313
- VLAN Management
2481
+ <a href="vminterface.html" class="md-nav__link">
2482
+ VM Interface
1314
2483
  </a>
1315
2484
  </li>
1316
2485
 
@@ -1324,6 +2493,13 @@
1324
2493
 
1325
2494
 
1326
2495
 
2496
+ </ul>
2497
+ </nav>
2498
+ </li>
2499
+
2500
+
2501
+
2502
+
1327
2503
 
1328
2504
 
1329
2505
 
@@ -1335,17 +2511,17 @@
1335
2511
 
1336
2512
 
1337
2513
 
1338
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
2514
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1339
2515
 
1340
2516
 
1341
2517
 
1342
- <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
2518
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1343
2519
  Additional Features
1344
2520
  <span class="md-nav__icon md-icon"></span>
1345
2521
  </label>
1346
2522
 
1347
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1348
- <label class="md-nav__title" for="__nav_2_8">
2523
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2524
+ <label class="md-nav__title" for="__nav_2_9">
1349
2525
  <span class="md-nav__icon md-icon"></span>
1350
2526
  Additional Features
1351
2527
  </label>
@@ -1677,17 +2853,17 @@
1677
2853
 
1678
2854
 
1679
2855
 
1680
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2856
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1681
2857
 
1682
2858
 
1683
2859
 
1684
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2860
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1685
2861
  REST API
1686
2862
  <span class="md-nav__icon md-icon"></span>
1687
2863
  </label>
1688
2864
 
1689
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
1690
- <label class="md-nav__title" for="__nav_2_9">
2865
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2866
+ <label class="md-nav__title" for="__nav_2_10">
1691
2867
  <span class="md-nav__icon md-icon"></span>
1692
2868
  REST API
1693
2869
  </label>
@@ -1735,6 +2911,20 @@
1735
2911
 
1736
2912
 
1737
2913
 
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+ <li class="md-nav__item">
2920
+ <a href="../../rest-api/ui-related-endpoints.html" class="md-nav__link">
2921
+ UI Endpoints
2922
+ </a>
2923
+ </li>
2924
+
2925
+
2926
+
2927
+
1738
2928
  </ul>
1739
2929
  </nav>
1740
2930
  </li>
@@ -1753,17 +2943,17 @@
1753
2943
 
1754
2944
 
1755
2945
 
1756
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2946
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
1757
2947
 
1758
2948
 
1759
2949
 
1760
- <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2950
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1761
2951
  GraphQL API
1762
2952
  <span class="md-nav__icon md-icon"></span>
1763
2953
  </label>
1764
2954
 
1765
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
1766
- <label class="md-nav__title" for="__nav_2_10">
2955
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
2956
+ <label class="md-nav__title" for="__nav_2_11">
1767
2957
  <span class="md-nav__icon md-icon"></span>
1768
2958
  GraphQL API
1769
2959
  </label>
@@ -2767,6 +3957,10 @@
2767
3957
  <li>Decommissioning</li>
2768
3958
  </ul>
2769
3959
  <p>Additional fields are available for annotating the vCPU count, memory (GB), and disk (GB) allocated to each VM. Each VM may optionally be assigned to a tenant. Virtual machines may have virtual interfaces assigned to them, but do not support any physical component.</p>
3960
+ <div class="admonition version-changed">
3961
+ <p class="admonition-title">Changed in version 2.0.0</p>
3962
+ <p>In Nautobot 1.x, it was not possible to delete an IPAddress or an VMInterface that was serving as the primary IP address (<code>primary_ip4</code>/<code>primary_ip6</code>) for a VirtualMachine. As of Nautobot 2.0, this is now permitted; doing so will clear out the VirtualMachine's corresponding primary IP value.</p>
3963
+ </div>
2770
3964
 
2771
3965
 
2772
3966