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/ipam/ipaddress.html">
12
12
 
13
13
 
14
+ <link rel="prev" href="../extras/secretsgroup.html">
15
+
16
+
17
+ <link rel="next" href="prefix.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>IP Addresses - Nautobot Documentation</title>
24
+ <title>IP Address - 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
- IP Addresses
114
+ IP Address
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
@@ -835,8 +843,1055 @@
835
843
 
836
844
 
837
845
  <li class="md-nav__item">
838
- <a href="../../administration/permissions.html" class="md-nav__link">
839
- Permissions
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
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+ <li class="md-nav__item">
1865
+ <a href="../dcim/rackgroup.html" class="md-nav__link">
1866
+ Rack Group
1867
+ </a>
1868
+ </li>
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+ <li class="md-nav__item">
1879
+ <a href="../dcim/rackreservation.html" class="md-nav__link">
1880
+ Rack Reservation
1881
+ </a>
1882
+ </li>
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+ <li class="md-nav__item">
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,9 +2092,100 @@
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
+
2117
+
2118
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
2119
+
2120
+
2121
+
2122
+
2123
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" checked>
2124
+
2125
+
2126
+
2127
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2128
+ IPAM
2129
+ <span class="md-nav__icon md-icon"></span>
2130
+ </label>
2131
+
2132
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="true">
2133
+ <label class="md-nav__title" for="__nav_2_8_4">
2134
+ <span class="md-nav__icon md-icon"></span>
2135
+ IPAM
2136
+ </label>
2137
+ <ul class="md-nav__list" data-md-scrollfix>
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+ <li class="md-nav__item md-nav__item--active">
2147
+
2148
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+ <label class="md-nav__link md-nav__link--active" for="__toc">
2155
+ IP Address
2156
+ <span class="md-nav__icon md-icon"></span>
2157
+ </label>
2158
+
2159
+ <a href="ipaddress.html" class="md-nav__link md-nav__link--active">
2160
+ IP Address
1042
2161
  </a>
2162
+
2163
+
2164
+
2165
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+ <label class="md-nav__title" for="__toc">
2173
+ <span class="md-nav__icon md-icon"></span>
2174
+ Table of contents
2175
+ </label>
2176
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2177
+
2178
+ <li class="md-nav__item">
2179
+ <a href="#network-address-translation-nat" class="md-nav__link">
2180
+ Network Address Translation (NAT)
2181
+ </a>
2182
+
2183
+ </li>
2184
+
2185
+ </ul>
2186
+
2187
+ </nav>
2188
+
1043
2189
  </li>
1044
2190
 
1045
2191
 
@@ -1051,8 +2197,8 @@
1051
2197
 
1052
2198
 
1053
2199
  <li class="md-nav__item">
1054
- <a href="../../user-guides/getting-started/search-bar.html" class="md-nav__link">
1055
- The Search Bar
2200
+ <a href="prefix.html" class="md-nav__link">
2201
+ Prefix
1056
2202
  </a>
1057
2203
  </li>
1058
2204
 
@@ -1065,8 +2211,8 @@
1065
2211
 
1066
2212
 
1067
2213
  <li class="md-nav__item">
1068
- <a href="../../user-guides/git-data-source.html" class="md-nav__link">
1069
- Git as a Data Source
2214
+ <a href="rir.html" class="md-nav__link">
2215
+ Rir
1070
2216
  </a>
1071
2217
  </li>
1072
2218
 
@@ -1079,8 +2225,8 @@
1079
2225
 
1080
2226
 
1081
2227
  <li class="md-nav__item">
1082
- <a href="../../user-guides/graphql.html" class="md-nav__link">
1083
- GraphQL
2228
+ <a href="routetarget.html" class="md-nav__link">
2229
+ Route Target
1084
2230
  </a>
1085
2231
  </li>
1086
2232
 
@@ -1093,8 +2239,8 @@
1093
2239
 
1094
2240
 
1095
2241
  <li class="md-nav__item">
1096
- <a href="../../user-guides/relationships.html" class="md-nav__link">
1097
- Relationships
2242
+ <a href="service.html" class="md-nav__link">
2243
+ Service
1098
2244
  </a>
1099
2245
  </li>
1100
2246
 
@@ -1107,8 +2253,8 @@
1107
2253
 
1108
2254
 
1109
2255
  <li class="md-nav__item">
1110
- <a href="../../user-guides/s3-django-storage.html" class="md-nav__link">
1111
- Django Storages with S3
2256
+ <a href="vlan.html" class="md-nav__link">
2257
+ VLAN
1112
2258
  </a>
1113
2259
  </li>
1114
2260
 
@@ -1121,8 +2267,22 @@
1121
2267
 
1122
2268
 
1123
2269
  <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
2270
+ <a href="vlangroup.html" class="md-nav__link">
2271
+ VLAN Group
2272
+ </a>
2273
+ </li>
2274
+
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+ <li class="md-nav__item">
2284
+ <a href="vrf.html" class="md-nav__link">
2285
+ VRF
1126
2286
  </a>
1127
2287
  </li>
1128
2288
 
@@ -1147,19 +2307,19 @@
1147
2307
 
1148
2308
 
1149
2309
 
1150
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
2310
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1151
2311
 
1152
2312
 
1153
2313
 
1154
- <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1155
- Core Functionality
2314
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2315
+ Tenancy
1156
2316
  <span class="md-nav__icon md-icon"></span>
1157
2317
  </label>
1158
2318
 
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">
2319
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2320
+ <label class="md-nav__title" for="__nav_2_8_5">
1161
2321
  <span class="md-nav__icon md-icon"></span>
1162
- Core Functionality
2322
+ Tenancy
1163
2323
  </label>
1164
2324
  <ul class="md-nav__list" data-md-scrollfix>
1165
2325
 
@@ -1169,8 +2329,8 @@
1169
2329
 
1170
2330
 
1171
2331
  <li class="md-nav__item">
1172
- <a href="../../core-functionality/circuits.html" class="md-nav__link">
1173
- Circuits
2332
+ <a href="../tenancy/tenant.html" class="md-nav__link">
2333
+ Tenant
1174
2334
  </a>
1175
2335
  </li>
1176
2336
 
@@ -1183,27 +2343,47 @@
1183
2343
 
1184
2344
 
1185
2345
  <li class="md-nav__item">
1186
- <a href="../../core-functionality/devices.html" class="md-nav__link">
1187
- Devices and Cabling
2346
+ <a href="../tenancy/tenantgroup.html" class="md-nav__link">
2347
+ Tenant Group
1188
2348
  </a>
1189
2349
  </li>
1190
2350
 
1191
2351
 
1192
2352
 
1193
2353
 
2354
+ </ul>
2355
+ </nav>
2356
+ </li>
2357
+
2358
+
2359
+
2360
+
1194
2361
 
1195
2362
 
1196
2363
 
1197
2364
 
1198
2365
 
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
-
2366
+
2367
+ <li class="md-nav__item md-nav__item--nested">
2368
+
2369
+
2370
+
2371
+
2372
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2373
+
2374
+
2375
+
2376
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2377
+ Users
2378
+ <span class="md-nav__icon md-icon"></span>
2379
+ </label>
2380
+
2381
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2382
+ <label class="md-nav__title" for="__nav_2_8_6">
2383
+ <span class="md-nav__icon md-icon"></span>
2384
+ Users
2385
+ </label>
2386
+ <ul class="md-nav__list" data-md-scrollfix>
1207
2387
 
1208
2388
 
1209
2389
 
@@ -1211,8 +2391,8 @@
1211
2391
 
1212
2392
 
1213
2393
  <li class="md-nav__item">
1214
- <a href="../../core-functionality/ipam.html" class="md-nav__link">
1215
- IP Address Management
2394
+ <a href="../users/objectpermission.html" class="md-nav__link">
2395
+ Object Permission
1216
2396
  </a>
1217
2397
  </li>
1218
2398
 
@@ -1225,27 +2405,47 @@
1225
2405
 
1226
2406
 
1227
2407
  <li class="md-nav__item">
1228
- <a href="../../core-functionality/power.html" class="md-nav__link">
1229
- Power Tracking
2408
+ <a href="../users/token.html" class="md-nav__link">
2409
+ Token
1230
2410
  </a>
1231
2411
  </li>
1232
2412
 
1233
2413
 
1234
2414
 
1235
2415
 
2416
+ </ul>
2417
+ </nav>
2418
+ </li>
2419
+
2420
+
2421
+
2422
+
1236
2423
 
1237
2424
 
1238
2425
 
1239
2426
 
1240
2427
 
1241
- <li class="md-nav__item">
1242
- <a href="../../core-functionality/secrets.html" class="md-nav__link">
1243
- Secrets
1244
- </a>
1245
- </li>
1246
-
1247
-
1248
-
2428
+
2429
+ <li class="md-nav__item md-nav__item--nested">
2430
+
2431
+
2432
+
2433
+
2434
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2435
+
2436
+
2437
+
2438
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2439
+ Virtualization
2440
+ <span class="md-nav__icon md-icon"></span>
2441
+ </label>
2442
+
2443
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2444
+ <label class="md-nav__title" for="__nav_2_8_7">
2445
+ <span class="md-nav__icon md-icon"></span>
2446
+ Virtualization
2447
+ </label>
2448
+ <ul class="md-nav__list" data-md-scrollfix>
1249
2449
 
1250
2450
 
1251
2451
 
@@ -1253,8 +2453,8 @@
1253
2453
 
1254
2454
 
1255
2455
  <li class="md-nav__item">
1256
- <a href="../../core-functionality/services.html" class="md-nav__link">
1257
- Service Mapping
2456
+ <a href="../virtualization/cluster.html" class="md-nav__link">
2457
+ Cluster
1258
2458
  </a>
1259
2459
  </li>
1260
2460
 
@@ -1267,8 +2467,8 @@
1267
2467
 
1268
2468
 
1269
2469
  <li class="md-nav__item">
1270
- <a href="../../core-functionality/sites-and-racks.html" class="md-nav__link">
1271
- Sites, Locations, and Racks
2470
+ <a href="../virtualization/clustergroup.html" class="md-nav__link">
2471
+ Cluster Group
1272
2472
  </a>
1273
2473
  </li>
1274
2474
 
@@ -1281,8 +2481,8 @@
1281
2481
 
1282
2482
 
1283
2483
  <li class="md-nav__item">
1284
- <a href="../../core-functionality/tenancy.html" class="md-nav__link">
1285
- Tenancy
2484
+ <a href="../virtualization/clustertype.html" class="md-nav__link">
2485
+ Cluster Type
1286
2486
  </a>
1287
2487
  </li>
1288
2488
 
@@ -1295,8 +2495,8 @@
1295
2495
 
1296
2496
 
1297
2497
  <li class="md-nav__item">
1298
- <a href="../../core-functionality/virtualization.html" class="md-nav__link">
1299
- Virtualization
2498
+ <a href="../virtualization/virtualmachine.html" class="md-nav__link">
2499
+ Virtual Machine
1300
2500
  </a>
1301
2501
  </li>
1302
2502
 
@@ -1309,8 +2509,8 @@
1309
2509
 
1310
2510
 
1311
2511
  <li class="md-nav__item">
1312
- <a href="../../core-functionality/vlans.html" class="md-nav__link">
1313
- VLAN Management
2512
+ <a href="../virtualization/vminterface.html" class="md-nav__link">
2513
+ VM Interface
1314
2514
  </a>
1315
2515
  </li>
1316
2516
 
@@ -1324,6 +2524,13 @@
1324
2524
 
1325
2525
 
1326
2526
 
2527
+ </ul>
2528
+ </nav>
2529
+ </li>
2530
+
2531
+
2532
+
2533
+
1327
2534
 
1328
2535
 
1329
2536
 
@@ -1335,17 +2542,17 @@
1335
2542
 
1336
2543
 
1337
2544
 
1338
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
2545
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1339
2546
 
1340
2547
 
1341
2548
 
1342
- <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
2549
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1343
2550
  Additional Features
1344
2551
  <span class="md-nav__icon md-icon"></span>
1345
2552
  </label>
1346
2553
 
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">
2554
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2555
+ <label class="md-nav__title" for="__nav_2_9">
1349
2556
  <span class="md-nav__icon md-icon"></span>
1350
2557
  Additional Features
1351
2558
  </label>
@@ -1677,17 +2884,17 @@
1677
2884
 
1678
2885
 
1679
2886
 
1680
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2887
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1681
2888
 
1682
2889
 
1683
2890
 
1684
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2891
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1685
2892
  REST API
1686
2893
  <span class="md-nav__icon md-icon"></span>
1687
2894
  </label>
1688
2895
 
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">
2896
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2897
+ <label class="md-nav__title" for="__nav_2_10">
1691
2898
  <span class="md-nav__icon md-icon"></span>
1692
2899
  REST API
1693
2900
  </label>
@@ -1735,6 +2942,20 @@
1735
2942
 
1736
2943
 
1737
2944
 
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+ <li class="md-nav__item">
2951
+ <a href="../../rest-api/ui-related-endpoints.html" class="md-nav__link">
2952
+ UI Endpoints
2953
+ </a>
2954
+ </li>
2955
+
2956
+
2957
+
2958
+
1738
2959
  </ul>
1739
2960
  </nav>
1740
2961
  </li>
@@ -1753,17 +2974,17 @@
1753
2974
 
1754
2975
 
1755
2976
 
1756
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2977
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
1757
2978
 
1758
2979
 
1759
2980
 
1760
- <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2981
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1761
2982
  GraphQL API
1762
2983
  <span class="md-nav__icon md-icon"></span>
1763
2984
  </label>
1764
2985
 
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">
2986
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
2987
+ <label class="md-nav__title" for="__nav_2_11">
1767
2988
  <span class="md-nav__icon md-icon"></span>
1768
2989
  GraphQL API
1769
2990
  </label>
@@ -2796,6 +4017,10 @@
2796
4017
  <p class="admonition-title">Note</p>
2797
4018
  <p>When primary IPs are set for both IPv4 and IPv6, Nautobot will prefer IPv6. This can be changed by setting the <code>PREFER_IPV4</code> configuration parameter.</p>
2798
4019
  </div>
4020
+ <div class="admonition version-changed">
4021
+ <p class="admonition-title">Changed in version 2.0.0</p>
4022
+ <p><code>prefix_length</code> becomes <code>mask_length</code> and is intended to describe the desired subnet mask of the IP addresses when configured on interface(s).</p>
4023
+ </div>
2799
4024
  <h2 id="network-address-translation-nat">Network Address Translation (NAT)<a class="headerlink" href="#network-address-translation-nat" title="Permanent link">&para;</a></h2>
2800
4025
  <p>An IP address can be designated as the network address translation (NAT) inside IP address for one or more other IP addresses. This is useful primarily to denote a translation between public and private IP addresses. This relationship is followed in both directions: For example, if 10.0.0.1 is assigned as the inside IP for 192.0.2.1, 192.0.2.1 will be displayed as the outside IP for 10.0.0.1.</p>
2801
4026
  <div class="admonition version-added">