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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1029) hide show
  1. nautobot/__init__.py +1 -5
  2. nautobot/apps/api.py +6 -8
  3. nautobot/apps/forms.py +0 -2
  4. nautobot/apps/ui.py +0 -8
  5. nautobot/circuits/api/serializers.py +9 -119
  6. nautobot/circuits/api/urls.py +1 -1
  7. nautobot/circuits/api/views.py +0 -1
  8. nautobot/circuits/choices.py +0 -2
  9. nautobot/circuits/filters.py +7 -6
  10. nautobot/circuits/forms.py +3 -73
  11. nautobot/circuits/migrations/0001_initial_part_1.py +0 -1
  12. nautobot/circuits/migrations/0002_initial_part_2.py +0 -1
  13. nautobot/circuits/migrations/0003_auto_slug.py +0 -1
  14. nautobot/circuits/migrations/0004_increase_provider_account_length.py +0 -1
  15. nautobot/circuits/migrations/0005_providernetwork.py +0 -1
  16. nautobot/circuits/migrations/0006_cache_circuit_terminations.py +0 -1
  17. nautobot/circuits/migrations/0007_circuitterminations_primary_model.py +0 -1
  18. nautobot/circuits/migrations/0008_add_natural_indexing.py +0 -1
  19. nautobot/circuits/migrations/0009_circuittermination_location.py +0 -1
  20. nautobot/circuits/migrations/0010_rename_foreign_keys_and_related_names.py +0 -1
  21. nautobot/circuits/migrations/0011_remove_site_foreign_key_from_circuit_termination_class.py +0 -1
  22. nautobot/circuits/migrations/0012_created_datetime.py +0 -1
  23. nautobot/circuits/migrations/0013_alter_circuittermination__path.py +0 -1
  24. nautobot/circuits/migrations/0014_related_name_changes.py +1 -2
  25. nautobot/circuits/migrations/0015_remove_circuittype_provider_slug.py +20 -0
  26. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  27. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  28. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  29. nautobot/circuits/models.py +3 -93
  30. nautobot/circuits/navigation.py +14 -69
  31. nautobot/circuits/signals.py +0 -2
  32. nautobot/circuits/tables.py +42 -5
  33. nautobot/circuits/templates/circuits/circuit_retrieve.html +1 -1
  34. nautobot/circuits/templates/circuits/circuittermination_retrieve.html +1 -1
  35. nautobot/circuits/templates/circuits/circuittype_retrieve.html +1 -1
  36. nautobot/circuits/templates/circuits/provider_create.html +0 -1
  37. nautobot/circuits/templates/circuits/provider_retrieve.html +1 -1
  38. nautobot/circuits/tests/integration/test_relationships.py +13 -16
  39. nautobot/circuits/tests/test_api.py +13 -43
  40. nautobot/circuits/tests/test_filters.py +20 -15
  41. nautobot/circuits/tests/test_models.py +7 -3
  42. nautobot/circuits/tests/test_views.py +57 -67
  43. nautobot/circuits/views.py +18 -9
  44. nautobot/core/api/__init__.py +8 -2
  45. nautobot/core/api/authentication.py +0 -3
  46. nautobot/core/api/fields.py +15 -6
  47. nautobot/core/api/filter_backends.py +3 -2
  48. nautobot/core/api/metadata.py +237 -30
  49. nautobot/core/api/mixins.py +94 -0
  50. nautobot/core/api/pagination.py +3 -3
  51. nautobot/core/api/parsers.py +154 -0
  52. nautobot/core/api/renderers.py +153 -2
  53. nautobot/core/api/schema.py +47 -3
  54. nautobot/core/api/serializers.py +377 -37
  55. nautobot/core/api/urls.py +11 -3
  56. nautobot/core/api/utils.py +174 -2
  57. nautobot/core/api/versioning.py +32 -10
  58. nautobot/core/api/views.py +266 -75
  59. nautobot/core/apps/__init__.py +138 -221
  60. nautobot/core/celery/__init__.py +112 -41
  61. nautobot/core/celery/backends.py +19 -13
  62. nautobot/core/celery/control.py +46 -0
  63. nautobot/core/celery/encoders.py +53 -0
  64. nautobot/core/celery/log.py +38 -0
  65. nautobot/core/celery/schedulers.py +23 -4
  66. nautobot/core/celery/task.py +1 -16
  67. nautobot/core/checks.py +0 -27
  68. nautobot/core/choices.py +21 -113
  69. nautobot/core/{cli.py → cli/__init__.py} +1 -2
  70. nautobot/core/cli/__main__.py +3 -0
  71. nautobot/core/constants.py +25 -43
  72. nautobot/core/context_processors.py +12 -0
  73. nautobot/core/filters.py +2 -2
  74. nautobot/core/forms/__init__.py +0 -4
  75. nautobot/core/forms/fields.py +39 -68
  76. nautobot/core/forms/forms.py +27 -27
  77. nautobot/core/forms/utils.py +7 -59
  78. nautobot/core/forms/widgets.py +0 -1
  79. nautobot/core/graphql/__init__.py +2 -2
  80. nautobot/core/graphql/schema.py +4 -27
  81. nautobot/core/jobs/__init__.py +75 -0
  82. nautobot/core/management/commands/build_ui.py +255 -0
  83. nautobot/core/management/commands/celery.py +0 -1
  84. nautobot/core/management/commands/generate_test_data.py +18 -13
  85. nautobot/core/management/commands/post_upgrade.py +24 -24
  86. nautobot/core/management/commands/validate_models.py +0 -1
  87. nautobot/core/middleware.py +0 -1
  88. nautobot/core/models/__init__.py +26 -1
  89. nautobot/core/models/fields.py +24 -5
  90. nautobot/core/models/generics.py +2 -46
  91. nautobot/core/models/managers.py +5 -0
  92. nautobot/core/models/name_color_content_types.py +1 -19
  93. nautobot/core/models/tree_queries.py +14 -4
  94. nautobot/core/models/utils.py +9 -10
  95. nautobot/core/models/validators.py +17 -8
  96. nautobot/core/releases.py +8 -10
  97. nautobot/core/settings.py +81 -53
  98. nautobot/core/tables.py +5 -5
  99. nautobot/core/tasks.py +4 -7
  100. nautobot/core/templates/base.html +1 -49
  101. nautobot/core/templates/base_django.html +49 -0
  102. nautobot/core/templates/base_react.html +55 -0
  103. nautobot/core/templates/buttons/export.html +6 -4
  104. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  105. nautobot/core/templates/generic/object_list.html +4 -1
  106. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  107. nautobot/core/templates/inc/footer.html +1 -0
  108. nautobot/core/templates/inc/javascript.html +0 -14
  109. nautobot/core/templates/inc/nav_menu.html +28 -33
  110. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  111. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  112. nautobot/core/templates/nautobot_config.py.j2 +8 -25
  113. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  114. nautobot/core/templates/rest_framework/api.html +8 -0
  115. nautobot/core/templatetags/buttons.py +32 -29
  116. nautobot/core/templatetags/helpers.py +1 -1
  117. nautobot/core/testing/__init__.py +47 -44
  118. nautobot/core/testing/api.py +365 -47
  119. nautobot/core/testing/filters.py +12 -7
  120. nautobot/core/testing/integration.py +1 -1
  121. nautobot/core/testing/migrations.py +2 -0
  122. nautobot/core/testing/mixins.py +22 -12
  123. nautobot/core/testing/schema.py +2 -1
  124. nautobot/core/testing/views.py +28 -51
  125. nautobot/core/tests/integration/test_filters.py +17 -8
  126. nautobot/core/tests/integration/test_navbar.py +11 -34
  127. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  128. nautobot/core/tests/nautobot_config.py +2 -3
  129. nautobot/core/tests/runner.py +0 -1
  130. nautobot/core/tests/test_api.py +290 -24
  131. nautobot/core/tests/test_authentication.py +57 -14
  132. nautobot/core/tests/test_checks.py +0 -7
  133. nautobot/core/tests/test_choices.py +0 -1
  134. nautobot/core/tests/test_filters.py +117 -110
  135. nautobot/core/tests/test_forms.py +47 -110
  136. nautobot/core/tests/test_graphql.py +158 -135
  137. nautobot/core/tests/test_logging.py +4 -1
  138. nautobot/core/tests/test_managers.py +3 -5
  139. nautobot/core/tests/test_models.py +2 -0
  140. nautobot/core/tests/test_ordering.py +0 -2
  141. nautobot/core/tests/test_paginator.py +3 -1
  142. nautobot/core/tests/test_releases.py +12 -12
  143. nautobot/core/tests/test_templatetags_helpers.py +7 -4
  144. nautobot/core/tests/test_utils.py +112 -78
  145. nautobot/core/tests/test_views.py +12 -17
  146. nautobot/core/tests/test_views_utils.py +6 -9
  147. nautobot/core/utils/data.py +17 -0
  148. nautobot/core/utils/deprecation.py +13 -20
  149. nautobot/core/utils/filtering.py +53 -9
  150. nautobot/core/utils/git.py +12 -4
  151. nautobot/core/utils/lookup.py +3 -1
  152. nautobot/core/utils/requests.py +23 -116
  153. nautobot/core/views/__init__.py +1 -2
  154. nautobot/core/views/generic.py +131 -119
  155. nautobot/core/views/mixins.py +53 -62
  156. nautobot/core/views/paginator.py +0 -1
  157. nautobot/core/views/renderers.py +14 -12
  158. nautobot/core/views/utils.py +87 -4
  159. nautobot/dcim/api/serializers.py +160 -672
  160. nautobot/dcim/api/urls.py +1 -1
  161. nautobot/dcim/api/views.py +7 -46
  162. nautobot/dcim/choices.py +2 -25
  163. nautobot/dcim/elevations.py +0 -1
  164. nautobot/dcim/factory.py +15 -4
  165. nautobot/dcim/filters/__init__.py +42 -13
  166. nautobot/dcim/form_mixins.py +1 -27
  167. nautobot/dcim/forms.py +58 -797
  168. nautobot/dcim/management/commands/trace_paths.py +0 -1
  169. nautobot/dcim/migrations/0001_initial_part_1.py +0 -1
  170. nautobot/dcim/migrations/0002_initial_part_2.py +0 -1
  171. nautobot/dcim/migrations/0003_initial_part_3.py +0 -1
  172. nautobot/dcim/migrations/0004_initial_part_4.py +0 -1
  173. nautobot/dcim/migrations/0005_device_local_context_schema.py +0 -1
  174. nautobot/dcim/migrations/0006_auto_slug.py +0 -1
  175. nautobot/dcim/migrations/0007_device_secrets_group.py +0 -1
  176. nautobot/dcim/migrations/0008_increase_all_serial_lengths.py +0 -1
  177. nautobot/dcim/migrations/0009_add_natural_indexing.py +0 -1
  178. nautobot/dcim/migrations/0010_interface_status.py +0 -1
  179. nautobot/dcim/migrations/0011_interface_status_data_migration.py +0 -1
  180. nautobot/dcim/migrations/0012_interface_parent_bridge.py +0 -1
  181. nautobot/dcim/migrations/0013_location_location_type.py +0 -1
  182. nautobot/dcim/migrations/0014_location_status_data_migration.py +0 -1
  183. nautobot/dcim/migrations/0015_device_components__changeloggedmodel.py +0 -1
  184. nautobot/dcim/migrations/0016_device_components__timestamp_data_migration.py +0 -1
  185. nautobot/dcim/migrations/0017_locationtype_nestable.py +0 -1
  186. nautobot/dcim/migrations/0018_device_redundancy_group.py +0 -1
  187. nautobot/dcim/migrations/0019_device_redundancy_group_data_migration.py +0 -1
  188. nautobot/dcim/migrations/0020_move_site_fields_to_location_model.py +0 -1
  189. nautobot/dcim/migrations/0021_mptt_to_tree_queries.py +0 -1
  190. nautobot/dcim/migrations/0022_interface_mac_address_data_migration.py +0 -1
  191. nautobot/dcim/migrations/0023_alter_interface_mac_address.py +0 -1
  192. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -2
  193. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -14
  194. nautobot/dcim/migrations/0026_rename_device_and_rack_role.py +0 -1
  195. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -2
  196. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -2
  197. nautobot/dcim/migrations/0029_add_tree_managers_and_foreign_keys_pre_data_migration.py +0 -1
  198. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  199. nautobot/dcim/migrations/0031_rename_path_end_point_related_name.py +0 -1
  200. nautobot/dcim/migrations/0032_remove_site_foreign_key_from_dcim_models.py +0 -1
  201. nautobot/dcim/migrations/0033_created_datetime.py +0 -1
  202. nautobot/dcim/migrations/0034_fixup_fks_and_related_names.py +0 -1
  203. nautobot/dcim/migrations/0035_related_name_changes.py +1 -2
  204. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -2
  205. nautobot/dcim/migrations/0037_interface_ip_addresses_m2m.py +0 -1
  206. nautobot/dcim/migrations/0038_alter_location_managers.py +0 -1
  207. nautobot/dcim/migrations/0039_remove_slug.py +24 -0
  208. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  209. nautobot/dcim/migrations/0041_ipam__namespaces.py +25 -0
  210. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  211. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  212. nautobot/dcim/models/cables.py +4 -35
  213. nautobot/dcim/models/device_component_templates.py +7 -2
  214. nautobot/dcim/models/device_components.py +26 -203
  215. nautobot/dcim/models/devices.py +30 -152
  216. nautobot/dcim/models/locations.py +3 -64
  217. nautobot/dcim/models/power.py +3 -51
  218. nautobot/dcim/models/racks.py +7 -86
  219. nautobot/dcim/navigation.py +141 -467
  220. nautobot/dcim/signals.py +0 -2
  221. nautobot/dcim/tables/devices.py +8 -5
  222. nautobot/dcim/tables/devicetypes.py +1 -1
  223. nautobot/dcim/tables/locations.py +2 -2
  224. nautobot/dcim/tables/power.py +2 -2
  225. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  226. nautobot/dcim/templates/dcim/device.html +15 -4
  227. nautobot/dcim/templates/dcim/device_edit.html +6 -0
  228. nautobot/dcim/templates/dcim/deviceredundancygroup_create.html +0 -1
  229. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  230. nautobot/dcim/templates/dcim/interface.html +4 -0
  231. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  232. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  233. nautobot/dcim/templates/dcim/location.html +16 -1
  234. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  235. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  236. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  237. nautobot/dcim/tests/integration/test_cable_connect_form.py +4 -4
  238. nautobot/dcim/tests/test_api.py +202 -130
  239. nautobot/dcim/tests/test_cablepaths.py +47 -42
  240. nautobot/dcim/tests/test_filters.py +156 -134
  241. nautobot/dcim/tests/test_forms.py +12 -213
  242. nautobot/dcim/tests/test_graphql.py +8 -3
  243. nautobot/dcim/tests/test_migrations.py +6 -11
  244. nautobot/dcim/tests/test_models.py +208 -158
  245. nautobot/dcim/tests/test_natural_ordering.py +12 -14
  246. nautobot/dcim/tests/test_signals.py +7 -4
  247. nautobot/dcim/tests/test_views.py +270 -264
  248. nautobot/dcim/urls.py +21 -26
  249. nautobot/dcim/views.py +14 -156
  250. nautobot/docs/additional-features/caching.md +6 -87
  251. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  252. nautobot/docs/additional-features/jobs.md +179 -197
  253. nautobot/docs/administration/nautobot-server.md +9 -24
  254. nautobot/docs/administration/nautobot-shell.md +6 -6
  255. nautobot/docs/administration/replicating-nautobot.md +0 -10
  256. nautobot/docs/configuration/index.md +9 -9
  257. nautobot/docs/configuration/optional-settings.md +32 -61
  258. nautobot/docs/configuration/required-settings.md +11 -52
  259. nautobot/docs/development/application-registry.md +2 -13
  260. nautobot/docs/development/best-practices.md +2 -1
  261. nautobot/docs/development/docker-compose-advanced-use-cases.md +1 -1
  262. nautobot/docs/development/extending-models.md +15 -17
  263. nautobot/docs/development/generic-views.md +0 -2
  264. nautobot/docs/development/getting-started.md +56 -6
  265. nautobot/docs/development/navigation-menu.md +22 -93
  266. nautobot/docs/development/react-ui.md +105 -0
  267. nautobot/docs/development/release-checklist.md +3 -3
  268. nautobot/docs/development/role-internals.md +1 -3
  269. nautobot/docs/development/style-guide.md +6 -4
  270. nautobot/docs/development/templates.md +2 -1
  271. nautobot/docs/docker/index.md +16 -14
  272. nautobot/docs/index.md +7 -3
  273. nautobot/docs/installation/index.md +4 -1
  274. nautobot/docs/installation/migrating-from-netbox.md +12 -43
  275. nautobot/docs/installation/migrating-from-postgresql.md +1 -1
  276. nautobot/docs/installation/nautobot.md +1 -1
  277. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  278. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  279. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  280. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  281. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  282. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  283. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  284. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  285. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  286. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  287. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  288. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  289. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  290. nautobot/docs/installation/upgrading-from-nautobot-v1.md +190 -636
  291. nautobot/docs/installation/upgrading.md +5 -2
  292. nautobot/docs/models/dcim/device.md +3 -0
  293. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  294. nautobot/docs/models/extras/computedfield.md +4 -4
  295. nautobot/docs/models/extras/dynamicgroup.md +9 -9
  296. nautobot/docs/models/extras/gitrepository.md +3 -0
  297. nautobot/docs/models/extras/job.md +1 -0
  298. nautobot/docs/models/extras/jobbutton.md +18 -13
  299. nautobot/docs/models/extras/jobhook.md +7 -4
  300. nautobot/docs/models/extras/jobresult.md +6 -2
  301. nautobot/docs/models/extras/relationship.md +2 -2
  302. nautobot/docs/models/extras/status.md +6 -19
  303. nautobot/docs/models/ipam/ipaddress.md +3 -0
  304. nautobot/docs/models/ipam/vrf.md +0 -3
  305. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  306. nautobot/docs/plugins/development.md +92 -24
  307. nautobot/docs/release-notes/version-1.5.md +96 -0
  308. nautobot/docs/release-notes/version-2.0.md +216 -0
  309. nautobot/docs/requirements.txt +5 -4
  310. nautobot/docs/rest-api/overview.md +384 -215
  311. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  312. nautobot/extras/admin.py +3 -5
  313. nautobot/extras/api/customfields.py +15 -39
  314. nautobot/extras/api/fields.py +0 -11
  315. nautobot/extras/api/mixins.py +45 -0
  316. nautobot/extras/api/relationships.py +63 -159
  317. nautobot/extras/api/serializers.py +165 -706
  318. nautobot/extras/api/urls.py +1 -1
  319. nautobot/extras/api/views.py +295 -282
  320. nautobot/extras/apps.py +4 -7
  321. nautobot/extras/choices.py +11 -22
  322. nautobot/extras/constants.py +9 -3
  323. nautobot/extras/datasources/__init__.py +2 -0
  324. nautobot/extras/datasources/git.py +135 -186
  325. nautobot/extras/datasources/registry.py +25 -35
  326. nautobot/extras/factory.py +1 -3
  327. nautobot/extras/filters/__init__.py +49 -47
  328. nautobot/extras/filters/mixins.py +10 -8
  329. nautobot/extras/forms/forms.py +72 -148
  330. nautobot/extras/forms/mixins.py +34 -57
  331. nautobot/extras/health_checks.py +0 -33
  332. nautobot/extras/jobs.py +387 -566
  333. nautobot/extras/management/__init__.py +55 -48
  334. nautobot/extras/management/commands/renaturalize.py +0 -1
  335. nautobot/extras/management/commands/runjob.py +24 -62
  336. nautobot/extras/management/commands/webhook_receiver.py +0 -1
  337. nautobot/extras/managers.py +30 -7
  338. nautobot/extras/migrations/0001_initial_part_1.py +0 -1
  339. nautobot/extras/migrations/0002_initial_part_2.py +0 -1
  340. nautobot/extras/migrations/0003_initial_part_3.py +0 -1
  341. nautobot/extras/migrations/0004_populate_default_status_records.py +0 -1
  342. nautobot/extras/migrations/0005_configcontext_device_types.py +0 -1
  343. nautobot/extras/migrations/0006_graphqlquery.py +0 -1
  344. nautobot/extras/migrations/0007_configcontextschema.py +0 -1
  345. nautobot/extras/migrations/0008_jobresult__custom_field_data.py +0 -1
  346. nautobot/extras/migrations/0009_computedfield.py +0 -1
  347. nautobot/extras/migrations/0010_change_cf_validation_max_min_field_to_bigint.py +0 -1
  348. nautobot/extras/migrations/0011_fileattachment_fileproxy.py +0 -1
  349. nautobot/extras/migrations/0012_healthchecktestmodel.py +0 -1
  350. nautobot/extras/migrations/0013_default_fallback_value_computedfield.py +0 -1
  351. nautobot/extras/migrations/0014_auto_slug.py +0 -1
  352. nautobot/extras/migrations/0015_scheduled_job.py +0 -1
  353. nautobot/extras/migrations/0016_secret.py +0 -1
  354. nautobot/extras/migrations/0017_joblogentry.py +0 -1
  355. nautobot/extras/migrations/0018_joblog_data_migration.py +0 -2
  356. nautobot/extras/migrations/0019_joblogentry__meta_options__related_name.py +0 -1
  357. nautobot/extras/migrations/0020_customfield_changelog.py +0 -1
  358. nautobot/extras/migrations/0021_customfield_changelog_data.py +0 -1
  359. nautobot/extras/migrations/0022_objectchange_object_datav2.py +0 -1
  360. nautobot/extras/migrations/0023_job_model.py +0 -1
  361. nautobot/extras/migrations/0024_job_data_migration.py +0 -1
  362. nautobot/extras/migrations/0025_add_advanced_ui_boolean_to_customfield_conputedfield_and_relationship.py +0 -1
  363. nautobot/extras/migrations/0026_job_add_gitrepository_fk.py +0 -1
  364. nautobot/extras/migrations/0027_job_gitrepository_data_migration.py +0 -1
  365. nautobot/extras/migrations/0028_job_reduce_source.py +0 -1
  366. nautobot/extras/migrations/0029_dynamicgroup.py +0 -1
  367. nautobot/extras/migrations/0030_webhook_alter_unique_together.py +0 -1
  368. nautobot/extras/migrations/0031_tag_content_types.py +0 -1
  369. nautobot/extras/migrations/0032_tag_content_types_data_migration.py +0 -1
  370. nautobot/extras/migrations/0033_add__optimized_indexing.py +0 -1
  371. nautobot/extras/migrations/0034_alter_fileattachment_mimetype.py +0 -1
  372. nautobot/extras/migrations/0035_scheduledjob_crontab.py +0 -1
  373. nautobot/extras/migrations/0036_job_add_has_sensitive_variables.py +0 -1
  374. nautobot/extras/migrations/0037_configcontextschema__remove_name_unique__create_constraint_unique_name_owner.py +0 -1
  375. nautobot/extras/migrations/0038_configcontext_locations.py +0 -1
  376. nautobot/extras/migrations/0039_objectchange__add_change_context.py +0 -1
  377. nautobot/extras/migrations/0040_dynamicgroup__dynamicgroupmembership.py +0 -1
  378. nautobot/extras/migrations/0041_jobresult_job_kwargs.py +0 -1
  379. nautobot/extras/migrations/0042_job__add_is_job_hook_receiver.py +0 -1
  380. nautobot/extras/migrations/0043_note.py +0 -1
  381. nautobot/extras/migrations/0044_add_job_hook.py +0 -1
  382. nautobot/extras/migrations/0045_add_custom_field_slug.py +0 -1
  383. nautobot/extras/migrations/0046_populate_custom_field_slug_label.py +0 -1
  384. nautobot/extras/migrations/0047_enforce_custom_field_slug.py +0 -1
  385. nautobot/extras/migrations/0048_alter_objectchange_change_context_detail.py +0 -1
  386. nautobot/extras/migrations/0049_alter_tag_slug.py +0 -1
  387. nautobot/extras/migrations/0050_customfield_grouping.py +0 -1
  388. nautobot/extras/migrations/0051_add_job_task_queues.py +0 -1
  389. nautobot/extras/migrations/0052_configcontext_device_redundancy_groups.py +0 -1
  390. nautobot/extras/migrations/0053_relationship_required_on.py +0 -1
  391. nautobot/extras/migrations/0054_scheduledjob_kwargs_request_user_change.py +0 -1
  392. nautobot/extras/migrations/0055_configcontext_dynamic_groups.py +0 -1
  393. nautobot/extras/migrations/0056_objectchange_add_reverse_time_idx.py +0 -1
  394. nautobot/extras/migrations/0057_jobbutton.py +0 -1
  395. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  396. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -2
  397. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -2
  398. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -8
  399. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -33
  400. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -2
  401. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -2
  402. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  403. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -2
  404. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -3
  405. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -2
  406. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -2
  407. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  408. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -2
  409. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  410. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -10
  411. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -2
  412. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  413. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  414. nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
  415. nautobot/extras/migrations/0078_remove_slug.py +45 -0
  416. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  417. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  418. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  419. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  420. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  421. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  422. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  423. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  424. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  425. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  426. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  427. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  428. nautobot/extras/models/__init__.py +2 -3
  429. nautobot/extras/models/change_logging.py +0 -36
  430. nautobot/extras/models/customfields.py +39 -33
  431. nautobot/extras/models/datasources.py +48 -50
  432. nautobot/extras/models/groups.py +5 -12
  433. nautobot/extras/models/jobs.py +190 -323
  434. nautobot/extras/models/mixins.py +0 -71
  435. nautobot/extras/models/models.py +1 -22
  436. nautobot/extras/models/relationships.py +20 -21
  437. nautobot/extras/models/roles.py +0 -23
  438. nautobot/extras/models/secrets.py +2 -31
  439. nautobot/extras/models/statuses.py +6 -5
  440. nautobot/extras/models/tags.py +2 -17
  441. nautobot/extras/navigation.py +89 -307
  442. nautobot/extras/plugins/__init__.py +3 -121
  443. nautobot/extras/plugins/utils.py +0 -3
  444. nautobot/extras/plugins/validators.py +5 -4
  445. nautobot/extras/plugins/views.py +16 -4
  446. nautobot/extras/querysets.py +1 -7
  447. nautobot/extras/registry.py +3 -0
  448. nautobot/extras/signals.py +26 -60
  449. nautobot/extras/tables.py +42 -49
  450. nautobot/extras/tasks.py +0 -12
  451. nautobot/extras/templates/extras/configcontext.html +1 -1
  452. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  453. nautobot/extras/templates/extras/customfield.html +0 -13
  454. nautobot/extras/templates/extras/dynamicgroup_edit.html +0 -1
  455. nautobot/extras/templates/extras/gitrepository.html +3 -3
  456. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  457. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  458. nautobot/extras/templates/extras/job.html +35 -25
  459. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  460. nautobot/extras/templates/extras/job_detail.html +13 -31
  461. nautobot/extras/templates/extras/job_edit.html +14 -17
  462. nautobot/extras/templates/extras/jobresult.html +24 -6
  463. nautobot/extras/templates/extras/objectchange_list.html +1 -1
  464. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  465. nautobot/extras/templates/extras/secret.html +28 -0
  466. nautobot/extras/templates/extras/secret_edit.html +0 -1
  467. nautobot/extras/templates/extras/secretsgroup_edit.html +0 -1
  468. nautobot/extras/templatetags/custom_links.py +0 -2
  469. nautobot/extras/templatetags/job_buttons.py +1 -0
  470. nautobot/extras/templatetags/plugins.py +0 -1
  471. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  472. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  473. nautobot/extras/test_jobs/dry_run.py +29 -0
  474. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  475. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  476. nautobot/extras/test_jobs/fail.py +23 -0
  477. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  478. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  479. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  480. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  481. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  482. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  483. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  484. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  485. nautobot/extras/test_jobs/job_variables.py +88 -0
  486. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  487. nautobot/extras/test_jobs/log_redaction.py +20 -0
  488. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  489. nautobot/extras/test_jobs/modify_db.py +25 -0
  490. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  491. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  492. nautobot/extras/test_jobs/object_var_required.py +21 -0
  493. nautobot/extras/test_jobs/object_vars.py +26 -0
  494. nautobot/extras/test_jobs/pass.py +25 -0
  495. nautobot/extras/test_jobs/profiling.py +32 -0
  496. nautobot/extras/test_jobs/read_only_job.py +15 -0
  497. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  498. nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
  499. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  500. nautobot/extras/tests/integration/__init__.py +3 -3
  501. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  502. nautobot/extras/tests/integration/test_configcontextschema.py +7 -5
  503. nautobot/extras/tests/integration/test_customfields.py +4 -2
  504. nautobot/extras/tests/integration/test_dynamicgroups.py +2 -2
  505. nautobot/extras/tests/integration/test_jobs.py +25 -27
  506. nautobot/extras/tests/integration/test_notes.py +8 -4
  507. nautobot/extras/tests/integration/test_plugins.py +4 -4
  508. nautobot/extras/tests/integration/test_relationships.py +2 -2
  509. nautobot/extras/tests/test_api.py +371 -381
  510. nautobot/extras/tests/test_changelog.py +17 -16
  511. nautobot/extras/tests/test_context_managers.py +5 -6
  512. nautobot/extras/tests/test_customfields.py +112 -73
  513. nautobot/extras/tests/test_datasources.py +191 -117
  514. nautobot/extras/tests/test_dynamicgroups.py +45 -68
  515. nautobot/extras/tests/test_filters.py +170 -130
  516. nautobot/extras/tests/test_forms.py +107 -109
  517. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  518. nautobot/extras/tests/test_jobs.py +271 -273
  519. nautobot/extras/tests/test_management.py +3 -6
  520. nautobot/extras/tests/test_migrations.py +5 -3
  521. nautobot/extras/tests/test_models.py +121 -173
  522. nautobot/extras/tests/test_notes.py +0 -1
  523. nautobot/extras/tests/test_plugins.py +55 -89
  524. nautobot/extras/tests/test_relationships.py +174 -130
  525. nautobot/extras/tests/test_tags.py +6 -12
  526. nautobot/extras/tests/test_utils.py +31 -1
  527. nautobot/extras/tests/test_views.py +223 -184
  528. nautobot/extras/tests/test_webhooks.py +16 -15
  529. nautobot/extras/urls.py +69 -69
  530. nautobot/extras/utils.py +137 -163
  531. nautobot/extras/views.py +81 -153
  532. nautobot/ipam/api/fields.py +17 -0
  533. nautobot/ipam/api/serializers.py +77 -164
  534. nautobot/ipam/api/urls.py +4 -1
  535. nautobot/ipam/api/views.py +28 -19
  536. nautobot/ipam/apps.py +1 -0
  537. nautobot/ipam/choices.py +5 -12
  538. nautobot/ipam/constants.py +1 -0
  539. nautobot/ipam/factory.py +41 -30
  540. nautobot/ipam/filters.py +58 -25
  541. nautobot/ipam/forms.py +82 -211
  542. nautobot/ipam/graphql/types.py +0 -9
  543. nautobot/ipam/lookups.py +13 -8
  544. nautobot/ipam/management/commands/__init__.py +0 -0
  545. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  546. nautobot/ipam/migrations/0001_initial_part_1.py +0 -1
  547. nautobot/ipam/migrations/0002_initial_part_2.py +0 -1
  548. nautobot/ipam/migrations/0003_remove_max_length.py +0 -1
  549. nautobot/ipam/migrations/0004_fixup_p2p_broadcast.py +0 -1
  550. nautobot/ipam/migrations/0005_auto_slug.py +0 -1
  551. nautobot/ipam/migrations/0006_ipaddress_nat_outside_list.py +0 -1
  552. nautobot/ipam/migrations/0007_add_natural_indexing.py +0 -1
  553. nautobot/ipam/migrations/0008_prefix_vlan_vlangroup_location.py +0 -1
  554. nautobot/ipam/migrations/0009_alter_vlan_name.py +0 -1
  555. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -2
  556. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -39
  557. nautobot/ipam/migrations/0012_rename_ipam_roles.py +0 -1
  558. nautobot/ipam/migrations/0013_delete_role.py +0 -1
  559. nautobot/ipam/migrations/0014_rename_foreign_keys_and_related_names.py +0 -1
  560. nautobot/ipam/migrations/0015_prefix_add_type.py +0 -1
  561. nautobot/ipam/migrations/0016_prefix_type_data_migration.py +0 -3
  562. nautobot/ipam/migrations/0017_prefix_remove_is_pool.py +0 -1
  563. nautobot/ipam/migrations/0018_remove_site_foreign_key_from_ipam_models.py +0 -1
  564. nautobot/ipam/migrations/0019_created_datetime.py +0 -1
  565. nautobot/ipam/migrations/0020_related_name_changes.py +1 -2
  566. nautobot/ipam/migrations/0021_prefix_add_rir_and_date_allocated.py +0 -1
  567. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +3 -5
  568. nautobot/ipam/migrations/0023_delete_aggregate.py +0 -1
  569. nautobot/ipam/migrations/0024_interface_to_ipaddress_m2m.py +0 -1
  570. nautobot/ipam/migrations/0025_interface_ipaddress_m2m_data_migration.py +0 -1
  571. nautobot/ipam/migrations/0026_ipaddress_remove_assigned_object.py +0 -1
  572. nautobot/ipam/migrations/0027_remove_rir_slug.py +16 -0
  573. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  574. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  575. nautobot/ipam/migrations/0030_ipam__namespaces.py +231 -0
  576. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  577. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  578. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  579. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  580. nautobot/ipam/models.py +579 -368
  581. nautobot/ipam/navigation.py +36 -159
  582. nautobot/ipam/querysets.py +117 -90
  583. nautobot/ipam/signals.py +89 -0
  584. nautobot/ipam/tables.py +86 -28
  585. nautobot/ipam/templates/ipam/ipaddress.html +14 -30
  586. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -0
  587. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  588. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  589. nautobot/ipam/templates/ipam/namespace_retrieve.html +42 -0
  590. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  591. nautobot/ipam/templates/ipam/prefix.html +27 -33
  592. nautobot/ipam/templates/ipam/prefix_edit.html +7 -1
  593. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  594. nautobot/ipam/templates/ipam/vrf.html +6 -4
  595. nautobot/ipam/templates/ipam/vrf_edit.html +20 -2
  596. nautobot/ipam/tests/integration/test_prefixes.py +4 -27
  597. nautobot/ipam/tests/test_api.py +60 -61
  598. nautobot/ipam/tests/test_filters.py +187 -126
  599. nautobot/ipam/tests/test_forms.py +12 -6
  600. nautobot/ipam/tests/test_graphql.py +8 -6
  601. nautobot/ipam/tests/test_migrations.py +8 -13
  602. nautobot/ipam/tests/test_models.py +426 -274
  603. nautobot/ipam/tests/test_ordering.py +6 -3
  604. nautobot/ipam/tests/test_querysets.py +340 -96
  605. nautobot/ipam/tests/test_views.py +100 -55
  606. nautobot/ipam/urls.py +28 -5
  607. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  608. nautobot/ipam/utils/migrations.py +713 -0
  609. nautobot/ipam/views.py +237 -122
  610. nautobot/project-static/docs/404.html +1399 -166
  611. nautobot/project-static/docs/additional-features/caching.html +1416 -320
  612. nautobot/project-static/docs/additional-features/change-logging.html +1389 -190
  613. nautobot/project-static/docs/additional-features/config-contexts.html +1389 -190
  614. nautobot/project-static/docs/additional-features/graphql.html +1389 -190
  615. nautobot/project-static/docs/additional-features/healthcheck.html +1389 -190
  616. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1393 -190
  617. nautobot/project-static/docs/additional-features/jobs.html +1677 -460
  618. nautobot/project-static/docs/additional-features/napalm.html +1389 -190
  619. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1389 -190
  620. nautobot/project-static/docs/additional-features/template-filters.html +1389 -190
  621. nautobot/project-static/docs/administration/celery-queues.html +1389 -190
  622. nautobot/project-static/docs/administration/nautobot-server.html +1553 -375
  623. nautobot/project-static/docs/administration/nautobot-shell.html +1395 -196
  624. nautobot/project-static/docs/administration/permissions.html +1389 -190
  625. nautobot/project-static/docs/administration/replicating-nautobot.html +1387 -207
  626. nautobot/project-static/docs/apps/index.html +1389 -190
  627. nautobot/project-static/docs/apps/nautobot-apps.html +1387 -175
  628. nautobot/project-static/docs/assets/javascripts/bundle.51198bba.min.js +29 -0
  629. nautobot/project-static/docs/assets/javascripts/bundle.51198bba.min.js.map +8 -0
  630. nautobot/project-static/docs/assets/javascripts/workers/{search.16e2a7d4.min.js → search.208ed371.min.js} +9 -15
  631. nautobot/project-static/docs/assets/javascripts/workers/{search.16e2a7d4.min.js.map → search.208ed371.min.js.map} +4 -4
  632. nautobot/project-static/docs/assets/stylesheets/main.ded33207.min.css +1 -0
  633. nautobot/project-static/docs/assets/stylesheets/main.ded33207.min.css.map +1 -0
  634. nautobot/project-static/docs/assets/stylesheets/palette.a0c5b2b5.min.css +1 -0
  635. nautobot/project-static/docs/assets/stylesheets/palette.a0c5b2b5.min.css.map +1 -0
  636. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1775 -590
  637. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1389 -190
  638. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3588 -1922
  639. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1461 -262
  640. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1401 -170
  641. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1396 -191
  642. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +2095 -894
  643. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2357 -1194
  644. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +2258 -940
  645. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1389 -190
  646. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1400 -201
  647. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +11068 -7861
  648. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2867 -2224
  649. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1389 -190
  650. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2641 -1573
  651. nautobot/project-static/docs/configuration/authentication/ldap.html +1389 -190
  652. nautobot/project-static/docs/configuration/authentication/remote.html +1389 -190
  653. nautobot/project-static/docs/configuration/authentication/sso.html +1389 -190
  654. nautobot/project-static/docs/configuration/index.html +1398 -199
  655. nautobot/project-static/docs/configuration/optional-settings.html +1418 -274
  656. nautobot/project-static/docs/configuration/required-settings.html +1419 -287
  657. nautobot/project-static/docs/core-functionality/circuits.html +1446 -247
  658. nautobot/project-static/docs/core-functionality/device-types.html +1448 -249
  659. nautobot/project-static/docs/core-functionality/devices.html +1452 -249
  660. nautobot/project-static/docs/core-functionality/ipam.html +1452 -253
  661. nautobot/project-static/docs/core-functionality/power.html +1448 -249
  662. nautobot/project-static/docs/core-functionality/secrets.html +1448 -249
  663. nautobot/project-static/docs/core-functionality/services.html +1448 -249
  664. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1448 -249
  665. nautobot/project-static/docs/core-functionality/tenancy.html +1448 -249
  666. nautobot/project-static/docs/core-functionality/virtualization.html +1452 -249
  667. nautobot/project-static/docs/core-functionality/vlans.html +1448 -249
  668. nautobot/project-static/docs/development/application-registry.html +1393 -214
  669. nautobot/project-static/docs/development/best-practices.html +1392 -192
  670. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1390 -191
  671. nautobot/project-static/docs/development/extending-models.html +1443 -257
  672. nautobot/project-static/docs/development/generic-views.html +1403 -174
  673. nautobot/project-static/docs/development/getting-started.html +1568 -262
  674. nautobot/project-static/docs/development/homepage.html +1389 -190
  675. nautobot/project-static/docs/development/index.html +1389 -190
  676. nautobot/project-static/docs/development/model-features.html +1389 -190
  677. nautobot/project-static/docs/development/natural-keys.html +1389 -190
  678. nautobot/project-static/docs/development/navigation-menu.html +1451 -330
  679. nautobot/project-static/docs/development/react-ui.html +4199 -0
  680. nautobot/project-static/docs/development/release-checklist.html +1392 -193
  681. nautobot/project-static/docs/development/role-internals.html +1402 -172
  682. nautobot/project-static/docs/development/style-guide.html +1399 -199
  683. nautobot/project-static/docs/development/templates.html +1391 -191
  684. nautobot/project-static/docs/development/testing.html +1389 -190
  685. nautobot/project-static/docs/development/user-preferences.html +1389 -190
  686. nautobot/project-static/docs/docker/index.html +1408 -206
  687. nautobot/project-static/docs/index.html +1397 -180
  688. nautobot/project-static/docs/installation/centos.html +1401 -170
  689. nautobot/project-static/docs/installation/external-authentication.html +1389 -190
  690. nautobot/project-static/docs/installation/http-server.html +1389 -190
  691. nautobot/project-static/docs/installation/index.html +1394 -191
  692. nautobot/project-static/docs/installation/migrating-from-netbox.html +1452 -305
  693. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1390 -191
  694. nautobot/project-static/docs/installation/nautobot.html +1390 -191
  695. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1389 -190
  696. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1401 -170
  697. nautobot/project-static/docs/installation/services.html +1389 -190
  698. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  699. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  700. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  701. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  702. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  703. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  704. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  705. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  706. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  707. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  708. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  709. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  710. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  711. nautobot/project-static/docs/installation/ubuntu.html +1401 -170
  712. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +4254 -1923
  713. nautobot/project-static/docs/installation/upgrading.html +1395 -192
  714. nautobot/project-static/docs/models/circuits/circuit.html +1427 -174
  715. nautobot/project-static/docs/models/circuits/circuittermination.html +1427 -174
  716. nautobot/project-static/docs/models/circuits/circuittype.html +1427 -174
  717. nautobot/project-static/docs/models/circuits/provider.html +1427 -174
  718. nautobot/project-static/docs/models/circuits/providernetwork.html +1427 -174
  719. nautobot/project-static/docs/models/dcim/cable.html +1458 -174
  720. nautobot/project-static/docs/models/dcim/consoleport.html +1427 -174
  721. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1427 -174
  722. nautobot/project-static/docs/models/dcim/consoleserverport.html +1427 -174
  723. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1427 -174
  724. nautobot/project-static/docs/models/dcim/device.html +1431 -174
  725. nautobot/project-static/docs/models/dcim/devicebay.html +1427 -174
  726. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1427 -174
  727. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1522 -177
  728. nautobot/project-static/docs/models/dcim/devicetype.html +1427 -174
  729. nautobot/project-static/docs/models/dcim/frontport.html +1427 -174
  730. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1427 -174
  731. nautobot/project-static/docs/models/dcim/interface.html +1427 -174
  732. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1427 -174
  733. nautobot/project-static/docs/models/dcim/inventoryitem.html +1427 -174
  734. nautobot/project-static/docs/models/dcim/location.html +1427 -174
  735. nautobot/project-static/docs/models/dcim/locationtype.html +1427 -174
  736. nautobot/project-static/docs/models/dcim/manufacturer.html +1427 -174
  737. nautobot/project-static/docs/models/dcim/platform.html +1427 -174
  738. nautobot/project-static/docs/models/dcim/powerfeed.html +1425 -172
  739. nautobot/project-static/docs/models/dcim/poweroutlet.html +1427 -174
  740. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1427 -174
  741. nautobot/project-static/docs/models/dcim/powerpanel.html +1425 -172
  742. nautobot/project-static/docs/models/dcim/powerport.html +1427 -174
  743. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1427 -174
  744. nautobot/project-static/docs/models/dcim/rack.html +1427 -174
  745. nautobot/project-static/docs/models/dcim/rackgroup.html +1427 -174
  746. nautobot/project-static/docs/models/dcim/rackreservation.html +1427 -174
  747. nautobot/project-static/docs/models/dcim/rearport.html +1427 -174
  748. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1427 -174
  749. nautobot/project-static/docs/models/dcim/region.html +1401 -170
  750. nautobot/project-static/docs/models/dcim/site.html +1401 -170
  751. nautobot/project-static/docs/models/dcim/virtualchassis.html +1425 -172
  752. nautobot/project-static/docs/models/extras/computedfield.html +1393 -194
  753. nautobot/project-static/docs/models/extras/configcontext.html +1465 -174
  754. nautobot/project-static/docs/models/extras/configcontextschema.html +1421 -168
  755. nautobot/project-static/docs/models/extras/customfield.html +1389 -190
  756. nautobot/project-static/docs/models/extras/customlink.html +1389 -190
  757. nautobot/project-static/docs/models/extras/dynamicgroup.html +1398 -199
  758. nautobot/project-static/docs/models/extras/exporttemplate.html +1389 -190
  759. nautobot/project-static/docs/models/extras/gitrepository.html +1393 -190
  760. nautobot/project-static/docs/models/extras/graphqlquery.html +1469 -171
  761. nautobot/project-static/docs/models/extras/imageattachment.html +1434 -181
  762. nautobot/project-static/docs/models/extras/job.html +1411 -157
  763. nautobot/project-static/docs/models/extras/jobbutton.html +1410 -207
  764. nautobot/project-static/docs/models/extras/jobhook.html +1397 -194
  765. nautobot/project-static/docs/models/extras/joblogentry.html +1408 -155
  766. nautobot/project-static/docs/models/extras/jobresult.html +1417 -159
  767. nautobot/project-static/docs/models/extras/note.html +1389 -190
  768. nautobot/project-static/docs/models/extras/relationship.html +1391 -192
  769. nautobot/project-static/docs/models/extras/role.html +1495 -198
  770. nautobot/project-static/docs/models/extras/secret.html +1492 -201
  771. nautobot/project-static/docs/models/extras/secretsgroup.html +1410 -157
  772. nautobot/project-static/docs/models/extras/status.html +1381 -221
  773. nautobot/project-static/docs/models/extras/tag.html +1389 -190
  774. nautobot/project-static/docs/models/extras/webhook.html +1389 -190
  775. nautobot/project-static/docs/models/ipam/ipaddress.html +1488 -200
  776. nautobot/project-static/docs/models/ipam/prefix.html +1410 -157
  777. nautobot/project-static/docs/models/ipam/rir.html +1410 -157
  778. nautobot/project-static/docs/models/ipam/routetarget.html +1410 -157
  779. nautobot/project-static/docs/models/ipam/service.html +1410 -157
  780. nautobot/project-static/docs/models/ipam/vlan.html +1410 -157
  781. nautobot/project-static/docs/models/ipam/vlangroup.html +1410 -157
  782. nautobot/project-static/docs/models/ipam/vrf.html +1410 -161
  783. nautobot/project-static/docs/models/tenancy/tenant.html +1412 -159
  784. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1412 -159
  785. nautobot/project-static/docs/models/users/objectpermission.html +1462 -171
  786. nautobot/project-static/docs/models/users/token.html +1410 -157
  787. nautobot/project-static/docs/models/virtualization/cluster.html +1410 -157
  788. nautobot/project-static/docs/models/virtualization/clustergroup.html +1410 -157
  789. nautobot/project-static/docs/models/virtualization/clustertype.html +1410 -157
  790. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1414 -157
  791. nautobot/project-static/docs/models/virtualization/vminterface.html +1410 -157
  792. nautobot/project-static/docs/objects.inv +0 -0
  793. nautobot/project-static/docs/plugins/development.html +1916 -646
  794. nautobot/project-static/docs/plugins/index.html +1389 -190
  795. nautobot/project-static/docs/plugins/porting-from-netbox.html +1389 -190
  796. nautobot/project-static/docs/release-notes/index.html +1389 -190
  797. nautobot/project-static/docs/release-notes/version-1.0.html +1389 -190
  798. nautobot/project-static/docs/release-notes/version-1.1.html +1389 -190
  799. nautobot/project-static/docs/release-notes/version-1.2.html +1389 -190
  800. nautobot/project-static/docs/release-notes/version-1.3.html +1389 -190
  801. nautobot/project-static/docs/release-notes/version-1.4.html +1389 -190
  802. nautobot/project-static/docs/release-notes/version-1.5.html +2016 -397
  803. nautobot/project-static/docs/release-notes/version-2.0.html +1935 -287
  804. nautobot/project-static/docs/requirements.txt +5 -4
  805. nautobot/project-static/docs/rest-api/authentication.html +1389 -190
  806. nautobot/project-static/docs/rest-api/filtering.html +1389 -190
  807. nautobot/project-static/docs/rest-api/overview.html +2002 -576
  808. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  809. nautobot/project-static/docs/search/search_index.json +1 -1
  810. nautobot/project-static/docs/sitemap.xml +197 -187
  811. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  812. nautobot/project-static/docs/user-guides/custom-fields.html +1390 -191
  813. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1392 -193
  814. nautobot/project-static/docs/user-guides/getting-started/index.html +1388 -189
  815. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1388 -189
  816. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1386 -187
  817. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1448 -249
  818. nautobot/project-static/docs/user-guides/getting-started/regions.html +1411 -212
  819. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1395 -196
  820. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1448 -249
  821. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1448 -249
  822. nautobot/project-static/docs/user-guides/git-data-source.html +1405 -206
  823. nautobot/project-static/docs/user-guides/graphql.html +1402 -203
  824. nautobot/project-static/docs/user-guides/relationships.html +1448 -249
  825. nautobot/project-static/docs/user-guides/s3-django-storage.html +1448 -249
  826. nautobot/project-static/js/forms.js +16 -9
  827. nautobot/project-static/js/theme.js +5 -0
  828. nautobot/tenancy/api/serializers.py +4 -34
  829. nautobot/tenancy/api/urls.py +1 -1
  830. nautobot/tenancy/filters/__init__.py +9 -7
  831. nautobot/tenancy/filters/mixins.py +3 -2
  832. nautobot/tenancy/forms.py +3 -36
  833. nautobot/tenancy/migrations/0001_initial.py +0 -1
  834. nautobot/tenancy/migrations/0002_auto_slug.py +0 -1
  835. nautobot/tenancy/migrations/0003_mptt_to_tree_queries.py +0 -1
  836. nautobot/tenancy/migrations/0004_change_tree_manager_on_tree_models.py +0 -1
  837. nautobot/tenancy/migrations/0005_rename_foreign_keys_and_related_names.py +0 -1
  838. nautobot/tenancy/migrations/0006_created_datetime.py +0 -1
  839. nautobot/tenancy/migrations/0007_remove_tenant_tenantgroup_slug.py +20 -0
  840. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  841. nautobot/tenancy/models.py +0 -30
  842. nautobot/tenancy/navigation.py +6 -39
  843. nautobot/tenancy/tables.py +4 -4
  844. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  845. nautobot/tenancy/templates/tenancy/tenant_edit.html +0 -1
  846. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  847. nautobot/tenancy/tests/test_api.py +1 -12
  848. nautobot/tenancy/tests/test_filters.py +20 -12
  849. nautobot/tenancy/tests/test_views.py +11 -29
  850. nautobot/tenancy/urls.py +10 -10
  851. nautobot/tenancy/views.py +0 -3
  852. nautobot/ui/.eslintignore +6 -0
  853. nautobot/ui/.gitignore +10 -0
  854. nautobot/ui/.prettierignore +9 -0
  855. nautobot/ui/.prettierrc +4 -0
  856. nautobot/ui/README.md +33 -0
  857. nautobot/ui/app_imports.js.j2 +7 -0
  858. nautobot/ui/craco.config.js +46 -0
  859. nautobot/ui/jsconfig-base.json +11 -0
  860. nautobot/ui/jsconfig.json +5 -0
  861. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  862. nautobot/ui/package-lock.json +21451 -0
  863. nautobot/ui/package.json +70 -0
  864. nautobot/ui/public/index.html +47 -0
  865. nautobot/ui/public/logo192.png +0 -0
  866. nautobot/ui/public/logo512.png +0 -0
  867. nautobot/ui/public/manifest.json +25 -0
  868. nautobot/ui/public/nautobot_logo.svg +131 -0
  869. nautobot/ui/public/robots.txt +3 -0
  870. nautobot/ui/src/App.js +71 -0
  871. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  872. nautobot/ui/src/components/AppTab.js +40 -0
  873. nautobot/ui/src/components/Apps.js +60 -0
  874. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  875. nautobot/ui/src/components/HomePanel.js +58 -0
  876. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  877. nautobot/ui/src/components/Layout.js +53 -0
  878. nautobot/ui/src/components/LoadingWidget.js +25 -0
  879. nautobot/ui/src/components/Navbar.js +116 -0
  880. nautobot/ui/src/components/NotificationPopover.js +27 -0
  881. nautobot/ui/src/components/ObjectListTable.js +209 -0
  882. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  883. nautobot/ui/src/components/RouterButton.js +10 -0
  884. nautobot/ui/src/components/RouterLink.js +10 -0
  885. nautobot/ui/src/components/SidebarNav.js +147 -0
  886. nautobot/ui/src/components/Table.js +48 -0
  887. nautobot/ui/src/components/TableItem.js +71 -0
  888. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  889. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  890. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  891. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  892. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  893. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  894. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  895. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  896. nautobot/ui/src/components/pagination.js +93 -0
  897. nautobot/ui/src/components/paginator.js +79 -0
  898. nautobot/ui/src/components/paginator_form.js +43 -0
  899. nautobot/ui/src/components/usePagination.js +57 -0
  900. nautobot/ui/src/constants/apiPath.js +10 -0
  901. nautobot/ui/src/constants/icons.js +15 -0
  902. nautobot/ui/src/constants/size.js +15 -0
  903. nautobot/ui/src/index.js +65 -0
  904. nautobot/ui/src/reportWebVitals.js +15 -0
  905. nautobot/ui/src/router.js +77 -0
  906. nautobot/ui/src/utils/api.js +131 -0
  907. nautobot/ui/src/utils/app-import.js +15 -0
  908. nautobot/ui/src/utils/color.js +15 -0
  909. nautobot/ui/src/utils/date.js +14 -0
  910. nautobot/ui/src/utils/index.js +15 -0
  911. nautobot/ui/src/utils/navigation.js +32 -0
  912. nautobot/ui/src/utils/session.js +64 -0
  913. nautobot/ui/src/utils/store.js +242 -0
  914. nautobot/ui/src/utils/string.js +6 -0
  915. nautobot/ui/src/utils/url.js +4 -0
  916. nautobot/ui/src/views/Home.js +138 -0
  917. nautobot/ui/src/views/InstalledApps.js +80 -0
  918. nautobot/ui/src/views/Login.js +48 -0
  919. nautobot/ui/src/views/Logout.js +20 -0
  920. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  921. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  922. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  923. nautobot/ui/src/views/generic/GenericView.js +142 -0
  924. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  925. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  926. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  927. nautobot/users/admin.py +1 -1
  928. nautobot/users/api/serializers.py +51 -61
  929. nautobot/users/api/urls.py +1 -1
  930. nautobot/users/api/views.py +53 -2
  931. nautobot/users/migrations/0001_initial.py +0 -1
  932. nautobot/users/migrations/0002_token_ordering_by_created.py +0 -1
  933. nautobot/users/migrations/0003_alter_user_options.py +0 -1
  934. nautobot/users/migrations/0004_alter_user_managers.py +0 -1
  935. nautobot/users/tests/test_api.py +109 -28
  936. nautobot/users/tests/test_filters.py +0 -4
  937. nautobot/users/tests/test_models.py +0 -1
  938. nautobot/users/views.py +0 -7
  939. nautobot/virtualization/api/serializers.py +18 -132
  940. nautobot/virtualization/api/urls.py +1 -1
  941. nautobot/virtualization/api/views.py +1 -22
  942. nautobot/virtualization/choices.py +0 -2
  943. nautobot/virtualization/filters.py +12 -7
  944. nautobot/virtualization/forms.py +21 -117
  945. nautobot/virtualization/migrations/0001_initial.py +0 -1
  946. nautobot/virtualization/migrations/0002_virtualmachine_local_context_schema.py +0 -1
  947. nautobot/virtualization/migrations/0003_vminterface_verbose_name.py +0 -1
  948. nautobot/virtualization/migrations/0004_auto_slug.py +0 -1
  949. nautobot/virtualization/migrations/0005_add_natural_indexing.py +0 -1
  950. nautobot/virtualization/migrations/0006_vminterface_status.py +0 -1
  951. nautobot/virtualization/migrations/0007_vminterface_status_data_migration.py +0 -1
  952. nautobot/virtualization/migrations/0008_vminterface_parent.py +0 -1
  953. nautobot/virtualization/migrations/0009_cluster_location.py +0 -1
  954. nautobot/virtualization/migrations/0010_vminterface_mac_address_data_migration.py +0 -1
  955. nautobot/virtualization/migrations/0011_alter_vminterface_mac_address.py +0 -1
  956. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -2
  957. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -12
  958. nautobot/virtualization/migrations/0014_rename_virtualmachine_roles.py +0 -1
  959. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -2
  960. nautobot/virtualization/migrations/0016_remove_site_foreign_key_from_cluster_class.py +0 -1
  961. nautobot/virtualization/migrations/0017_created_datetime.py +0 -1
  962. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -2
  963. nautobot/virtualization/migrations/0019_vminterface_ip_addresses_m2m.py +0 -1
  964. nautobot/virtualization/migrations/0020_remove_clustergroup_clustertype_slug.py +20 -0
  965. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  966. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  967. nautobot/virtualization/migrations/0023_ipam__namespaces.py +25 -0
  968. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  969. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  970. nautobot/virtualization/models.py +39 -131
  971. nautobot/virtualization/navigation.py +18 -99
  972. nautobot/virtualization/tables.py +4 -4
  973. nautobot/virtualization/templates/virtualization/virtualmachine.html +13 -2
  974. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  975. nautobot/virtualization/tests/test_api.py +42 -52
  976. nautobot/virtualization/tests/test_filters.py +98 -75
  977. nautobot/virtualization/tests/test_models.py +36 -13
  978. nautobot/virtualization/tests/test_views.py +68 -73
  979. nautobot/virtualization/urls.py +10 -10
  980. nautobot/virtualization/views.py +8 -14
  981. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +15 -22
  982. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +987 -834
  983. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  984. nautobot/circuits/api/nested_serializers.py +0 -69
  985. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  986. nautobot/dcim/api/nested_serializers.py +0 -356
  987. nautobot/dcim/templates/dcim/device_import.html +0 -5
  988. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  989. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  990. nautobot/extras/api/nested_serializers.py +0 -353
  991. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -42
  992. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -47
  993. nautobot/extras/reports.py +0 -60
  994. nautobot/extras/scripts.py +0 -72
  995. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  996. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  997. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  998. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  999. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  1000. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  1001. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  1002. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  1003. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  1004. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -19
  1005. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  1006. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  1007. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  1008. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  1009. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  1010. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  1011. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  1012. nautobot/ipam/api/nested_serializers.py +0 -143
  1013. nautobot/project-static/docs/assets/javascripts/bundle.5a2dcb6a.min.js +0 -29
  1014. nautobot/project-static/docs/assets/javascripts/bundle.5a2dcb6a.min.js.map +0 -8
  1015. nautobot/project-static/docs/assets/javascripts/extra/bundle.5f09fbc3.min.js +0 -18
  1016. nautobot/project-static/docs/assets/javascripts/extra/bundle.5f09fbc3.min.js.map +0 -8
  1017. nautobot/project-static/docs/assets/stylesheets/extra.0d2c79a8.min.css +0 -1
  1018. nautobot/project-static/docs/assets/stylesheets/extra.0d2c79a8.min.css.map +0 -1
  1019. nautobot/project-static/docs/assets/stylesheets/main.975780f9.min.css +0 -1
  1020. nautobot/project-static/docs/assets/stylesheets/main.975780f9.min.css.map +0 -1
  1021. nautobot/project-static/docs/assets/stylesheets/palette.2505c338.min.css +0 -1
  1022. nautobot/project-static/docs/assets/stylesheets/palette.2505c338.min.css.map +0 -1
  1023. nautobot/tenancy/api/nested_serializers.py +0 -31
  1024. nautobot/users/api/nested_serializers.py +0 -67
  1025. nautobot/virtualization/api/nested_serializers.py +0 -65
  1026. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  1027. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  1028. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  1029. {nautobot-2.0.0a2.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -10,8 +10,14 @@
10
10
 
11
11
  <link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/installation/migrating-from-netbox.html">
12
12
 
13
+
14
+ <link rel="prev" href="../docker/index.html">
15
+
16
+
17
+ <link rel="next" href="migrating-from-postgresql.html">
18
+
13
19
  <link rel="icon" href="../assets/favicon.ico">
14
- <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.5.10">
20
+ <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.1.6">
15
21
 
16
22
 
17
23
 
@@ -19,11 +25,10 @@
19
25
 
20
26
 
21
27
 
22
- <link rel="stylesheet" href="../assets/stylesheets/main.975780f9.min.css">
28
+ <link rel="stylesheet" href="../assets/stylesheets/main.ded33207.min.css">
23
29
 
24
30
 
25
- <link rel="stylesheet" href="../assets/stylesheets/palette.2505c338.min.css">
26
-
31
+ <link rel="stylesheet" href="../assets/stylesheets/palette.a0c5b2b5.min.css">
27
32
 
28
33
 
29
34
 
@@ -86,7 +91,7 @@
86
91
 
87
92
 
88
93
 
89
- <header class="md-header md-header--lifted" data-md-component="header">
94
+ <header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
90
95
  <nav class="md-header__inner md-grid" aria-label="Header">
91
96
  <a href="../index.html" title="Nautobot Documentation" class="md-header__button md-logo" aria-label="Nautobot Documentation" data-md-component="logo">
92
97
 
@@ -116,8 +121,6 @@
116
121
  <form class="md-header__option" data-md-component="palette">
117
122
 
118
123
 
119
-
120
-
121
124
  <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
122
125
 
123
126
  <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
@@ -126,8 +129,6 @@
126
129
 
127
130
 
128
131
 
129
-
130
-
131
132
  <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
132
133
 
133
134
  <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
@@ -171,7 +172,7 @@
171
172
  <div class="md-search-result__meta">
172
173
  Initializing search
173
174
  </div>
174
- <ol class="md-search-result__list"></ol>
175
+ <ol class="md-search-result__list" role="presentation"></ol>
175
176
  </div>
176
177
  </div>
177
178
  </div>
@@ -183,7 +184,7 @@
183
184
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
184
185
  <div class="md-source__icon md-icon">
185
186
 
186
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
188
  </div>
188
189
  <div class="md-source__repository">
189
190
  GitHub
@@ -196,7 +197,7 @@
196
197
 
197
198
 
198
199
  <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
199
- <div class="md-tabs__inner md-grid">
200
+ <div class="md-grid">
200
201
  <ul class="md-tabs__list">
201
202
 
202
203
 
@@ -351,7 +352,7 @@
351
352
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
352
353
  <div class="md-source__icon md-icon">
353
354
 
354
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
356
  </div>
356
357
  <div class="md-source__repository">
357
358
  GitHub
@@ -389,17 +390,18 @@
389
390
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
390
391
 
391
392
 
392
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
393
393
 
394
394
 
395
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
396
+
395
397
 
396
398
 
397
- <label class="md-nav__link" for="__nav_2">
399
+ <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
398
400
  Documentation
399
401
  <span class="md-nav__icon md-icon"></span>
400
402
  </label>
401
403
 
402
- <nav class="md-nav" aria-label="Documentation" data-md-level="1">
404
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
403
405
  <label class="md-nav__title" for="__nav_2">
404
406
  <span class="md-nav__icon md-icon"></span>
405
407
  Documentation
@@ -415,17 +417,18 @@
415
417
  <li class="md-nav__item md-nav__item--nested">
416
418
 
417
419
 
418
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" >
419
420
 
420
421
 
422
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
421
423
 
422
424
 
423
- <label class="md-nav__link" for="__nav_2_1">
425
+
426
+ <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
424
427
  Installation
425
428
  <span class="md-nav__icon md-icon"></span>
426
429
  </label>
427
430
 
428
- <nav class="md-nav" aria-label="Installation" data-md-level="2">
431
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
429
432
  <label class="md-nav__title" for="__nav_2_1">
430
433
  <span class="md-nav__icon md-icon"></span>
431
434
  Installation
@@ -534,17 +537,18 @@
534
537
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
535
538
 
536
539
 
537
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" checked>
538
540
 
539
541
 
542
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" checked>
543
+
540
544
 
541
545
 
542
- <label class="md-nav__link" for="__nav_2_2">
546
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
543
547
  Migration
544
548
  <span class="md-nav__icon md-icon"></span>
545
549
  </label>
546
550
 
547
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
551
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="true">
548
552
  <label class="md-nav__title" for="__nav_2_2">
549
553
  <span class="md-nav__icon md-icon"></span>
550
554
  Migration
@@ -560,7 +564,7 @@
560
564
 
561
565
  <li class="md-nav__item md-nav__item--active">
562
566
 
563
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
567
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
564
568
 
565
569
 
566
570
 
@@ -682,13 +686,6 @@
682
686
  <nav class="md-nav" aria-label="Display name">
683
687
  <ul class="md-nav__list">
684
688
 
685
- <li class="md-nav__item">
686
- <a href="#csv-imports" class="md-nav__link">
687
- CSV Imports
688
- </a>
689
-
690
- </li>
691
-
692
689
  <li class="md-nav__item">
693
690
  <a href="#default-choices" class="md-nav__link">
694
691
  Default Choices
@@ -767,15 +764,8 @@
767
764
  </li>
768
765
 
769
766
  <li class="md-nav__item">
770
- <a href="#ipaddress-prefix_length-contains-the-prefix-length" class="md-nav__link">
771
- IPAddress prefix_length contains the prefix length
772
- </a>
773
-
774
- </li>
775
-
776
- <li class="md-nav__item">
777
- <a href="#ipaddress-broadcast-contains-the-broadcast-address" class="md-nav__link">
778
- IPAddress broadcast contains the broadcast address
767
+ <a href="#ipaddress-mask_length-contains-the-prefix-length" class="md-nav__link">
768
+ IPAddress mask_length contains the prefix length
779
769
  </a>
780
770
 
781
771
  </li>
@@ -971,17 +961,18 @@
971
961
  <li class="md-nav__item md-nav__item--nested">
972
962
 
973
963
 
974
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
975
964
 
976
965
 
966
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
977
967
 
978
968
 
979
- <label class="md-nav__link" for="__nav_2_3">
969
+
970
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
980
971
  Configuration
981
972
  <span class="md-nav__icon md-icon"></span>
982
973
  </label>
983
974
 
984
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
975
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
985
976
  <label class="md-nav__title" for="__nav_2_3">
986
977
  <span class="md-nav__icon md-icon"></span>
987
978
  Configuration
@@ -1046,17 +1037,18 @@
1046
1037
  <li class="md-nav__item md-nav__item--nested">
1047
1038
 
1048
1039
 
1049
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
1050
1040
 
1051
1041
 
1042
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
1043
+
1052
1044
 
1053
1045
 
1054
- <label class="md-nav__link" for="__nav_2_4">
1046
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
1055
1047
  External Authentication
1056
1048
  <span class="md-nav__icon md-icon"></span>
1057
1049
  </label>
1058
1050
 
1059
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
1051
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
1060
1052
  <label class="md-nav__title" for="__nav_2_4">
1061
1053
  <span class="md-nav__icon md-icon"></span>
1062
1054
  External Authentication
@@ -1121,17 +1113,18 @@
1121
1113
  <li class="md-nav__item md-nav__item--nested">
1122
1114
 
1123
1115
 
1124
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
1125
1116
 
1126
1117
 
1118
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
1127
1119
 
1128
1120
 
1129
- <label class="md-nav__link" for="__nav_2_5">
1121
+
1122
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
1130
1123
  Administration
1131
1124
  <span class="md-nav__icon md-icon"></span>
1132
1125
  </label>
1133
1126
 
1134
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
1127
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
1135
1128
  <label class="md-nav__title" for="__nav_2_5">
1136
1129
  <span class="md-nav__icon md-icon"></span>
1137
1130
  Administration
@@ -1224,17 +1217,18 @@
1224
1217
  <li class="md-nav__item md-nav__item--nested">
1225
1218
 
1226
1219
 
1227
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
1228
1220
 
1229
1221
 
1222
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1223
+
1230
1224
 
1231
1225
 
1232
- <label class="md-nav__link" for="__nav_2_6">
1226
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1233
1227
  User Guides
1234
1228
  <span class="md-nav__icon md-icon"></span>
1235
1229
  </label>
1236
1230
 
1237
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
1231
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1238
1232
  <label class="md-nav__title" for="__nav_2_6">
1239
1233
  <span class="md-nav__icon md-icon"></span>
1240
1234
  User Guides
@@ -1303,8 +1297,1171 @@
1303
1297
 
1304
1298
 
1305
1299
  <li class="md-nav__item">
1306
- <a href="../user-guides/graphql.html" class="md-nav__link">
1307
- GraphQL
1300
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1301
+ GraphQL
1302
+ </a>
1303
+ </li>
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+ <li class="md-nav__item">
1314
+ <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1315
+ Interfaces
1316
+ </a>
1317
+ </li>
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+ <li class="md-nav__item">
1328
+ <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1329
+ IP Address Management
1330
+ </a>
1331
+ </li>
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+ <li class="md-nav__item">
1342
+ <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1343
+ Platforms
1344
+ </a>
1345
+ </li>
1346
+
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+ <li class="md-nav__item">
1356
+ <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1357
+ Regions
1358
+ </a>
1359
+ </li>
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+ <li class="md-nav__item">
1370
+ <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1371
+ Tenants
1372
+ </a>
1373
+ </li>
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+ <li class="md-nav__item">
1384
+ <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1385
+ The Search Bar
1386
+ </a>
1387
+ </li>
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+ <li class="md-nav__item">
1398
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1399
+ Git as a Data Source
1400
+ </a>
1401
+ </li>
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+ <li class="md-nav__item">
1412
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1413
+ GraphQL
1414
+ </a>
1415
+ </li>
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+ <li class="md-nav__item">
1426
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1427
+ Relationships
1428
+ </a>
1429
+ </li>
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+ <li class="md-nav__item">
1440
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1441
+ Django Storages with S3
1442
+ </a>
1443
+ </li>
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+ <li class="md-nav__item">
1454
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1455
+ VLANS and VLAN Groups
1456
+ </a>
1457
+ </li>
1458
+
1459
+
1460
+
1461
+
1462
+ </ul>
1463
+ </nav>
1464
+ </li>
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+ <li class="md-nav__item md-nav__item--nested">
1476
+
1477
+
1478
+
1479
+
1480
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1481
+
1482
+
1483
+
1484
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1485
+ Core Functionality
1486
+ <span class="md-nav__icon md-icon"></span>
1487
+ </label>
1488
+
1489
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1490
+ <label class="md-nav__title" for="__nav_2_7">
1491
+ <span class="md-nav__icon md-icon"></span>
1492
+ Core Functionality
1493
+ </label>
1494
+ <ul class="md-nav__list" data-md-scrollfix>
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+ <li class="md-nav__item">
1502
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1503
+ Circuits
1504
+ </a>
1505
+ </li>
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+ <li class="md-nav__item">
1516
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1517
+ Devices and Cabling
1518
+ </a>
1519
+ </li>
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+ <li class="md-nav__item">
1530
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1531
+ Device Types
1532
+ </a>
1533
+ </li>
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+ <li class="md-nav__item">
1544
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1545
+ IP Address Management
1546
+ </a>
1547
+ </li>
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+ <li class="md-nav__item">
1558
+ <a href="../core-functionality/power.html" class="md-nav__link">
1559
+ Power Tracking
1560
+ </a>
1561
+ </li>
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+ <li class="md-nav__item">
1572
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1573
+ Secrets
1574
+ </a>
1575
+ </li>
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+ <li class="md-nav__item">
1586
+ <a href="../core-functionality/services.html" class="md-nav__link">
1587
+ Service Mapping
1588
+ </a>
1589
+ </li>
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+ <li class="md-nav__item">
1600
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1601
+ Sites, Locations, and Racks
1602
+ </a>
1603
+ </li>
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+ <li class="md-nav__item">
1614
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1615
+ Tenancy
1616
+ </a>
1617
+ </li>
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+ <li class="md-nav__item">
1628
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1629
+ Virtualization
1630
+ </a>
1631
+ </li>
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+ <li class="md-nav__item">
1642
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1643
+ VLAN Management
1644
+ </a>
1645
+ </li>
1646
+
1647
+
1648
+
1649
+
1650
+ </ul>
1651
+ </nav>
1652
+ </li>
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+ <li class="md-nav__item md-nav__item--nested">
1664
+
1665
+
1666
+
1667
+
1668
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1669
+
1670
+
1671
+
1672
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1673
+ Model Details
1674
+ <span class="md-nav__icon md-icon"></span>
1675
+ </label>
1676
+
1677
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1678
+ <label class="md-nav__title" for="__nav_2_8">
1679
+ <span class="md-nav__icon md-icon"></span>
1680
+ Model Details
1681
+ </label>
1682
+ <ul class="md-nav__list" data-md-scrollfix>
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+ <li class="md-nav__item md-nav__item--nested">
1691
+
1692
+
1693
+
1694
+
1695
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1696
+
1697
+
1698
+
1699
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1700
+ Circuits
1701
+ <span class="md-nav__icon md-icon"></span>
1702
+ </label>
1703
+
1704
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1705
+ <label class="md-nav__title" for="__nav_2_8_1">
1706
+ <span class="md-nav__icon md-icon"></span>
1707
+ Circuits
1708
+ </label>
1709
+ <ul class="md-nav__list" data-md-scrollfix>
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+ <li class="md-nav__item">
1717
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1718
+ Circuit
1719
+ </a>
1720
+ </li>
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+ <li class="md-nav__item">
1731
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1732
+ Circuit Termination
1733
+ </a>
1734
+ </li>
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+ <li class="md-nav__item">
1745
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1746
+ Circuit Type
1747
+ </a>
1748
+ </li>
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+ <li class="md-nav__item">
1759
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1760
+ Circuit Provider
1761
+ </a>
1762
+ </li>
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+ <li class="md-nav__item">
1773
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1774
+ Circuit Provider Network
1775
+ </a>
1776
+ </li>
1777
+
1778
+
1779
+
1780
+
1781
+ </ul>
1782
+ </nav>
1783
+ </li>
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+ <li class="md-nav__item md-nav__item--nested">
1795
+
1796
+
1797
+
1798
+
1799
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1800
+
1801
+
1802
+
1803
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1804
+ DCIM
1805
+ <span class="md-nav__icon md-icon"></span>
1806
+ </label>
1807
+
1808
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1809
+ <label class="md-nav__title" for="__nav_2_8_2">
1810
+ <span class="md-nav__icon md-icon"></span>
1811
+ DCIM
1812
+ </label>
1813
+ <ul class="md-nav__list" data-md-scrollfix>
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+ <li class="md-nav__item">
1821
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1822
+ Cable
1823
+ </a>
1824
+ </li>
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+ <li class="md-nav__item">
1835
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1836
+ Console Port
1837
+ </a>
1838
+ </li>
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+ <li class="md-nav__item">
1849
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1850
+ Console Port Template
1851
+ </a>
1852
+ </li>
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+ <li class="md-nav__item">
1863
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1864
+ Console Server Port
1865
+ </a>
1866
+ </li>
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+ <li class="md-nav__item">
1877
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1878
+ Console Server Port Template
1879
+ </a>
1880
+ </li>
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+ <li class="md-nav__item">
1891
+ <a href="../models/dcim/device.html" class="md-nav__link">
1892
+ Device
1893
+ </a>
1894
+ </li>
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+ <li class="md-nav__item">
1905
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1906
+ Device Bay
1907
+ </a>
1908
+ </li>
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+ <li class="md-nav__item">
1919
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1920
+ Device Bay Template
1921
+ </a>
1922
+ </li>
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+ <li class="md-nav__item">
1933
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1934
+ Device Redundancy Group
1935
+ </a>
1936
+ </li>
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+ <li class="md-nav__item">
1947
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1948
+ Device Type
1949
+ </a>
1950
+ </li>
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+ <li class="md-nav__item">
1961
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1962
+ Front Port
1963
+ </a>
1964
+ </li>
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+ <li class="md-nav__item">
1975
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1976
+ Front Port Template
1977
+ </a>
1978
+ </li>
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+ <li class="md-nav__item">
1989
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1990
+ Interface
1991
+ </a>
1992
+ </li>
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+ <li class="md-nav__item">
2003
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
2004
+ Interface Template
2005
+ </a>
2006
+ </li>
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+ <li class="md-nav__item">
2017
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
2018
+ Inventory Item
2019
+ </a>
2020
+ </li>
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+ <li class="md-nav__item">
2031
+ <a href="../models/dcim/location.html" class="md-nav__link">
2032
+ Location
2033
+ </a>
2034
+ </li>
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+ <li class="md-nav__item">
2045
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
2046
+ Location Type
2047
+ </a>
2048
+ </li>
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+ <li class="md-nav__item">
2059
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
2060
+ Manufacturer
2061
+ </a>
2062
+ </li>
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+ <li class="md-nav__item">
2073
+ <a href="../models/dcim/platform.html" class="md-nav__link">
2074
+ Platform
2075
+ </a>
2076
+ </li>
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+ <li class="md-nav__item">
2087
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
2088
+ Power Feed
2089
+ </a>
2090
+ </li>
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+ <li class="md-nav__item">
2101
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
2102
+ Power Outlet
2103
+ </a>
2104
+ </li>
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+ <li class="md-nav__item">
2115
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
2116
+ Power Outlet Template
2117
+ </a>
2118
+ </li>
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+ <li class="md-nav__item">
2129
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
2130
+ Power Panel
2131
+ </a>
2132
+ </li>
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+ <li class="md-nav__item">
2143
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
2144
+ Power Port
2145
+ </a>
2146
+ </li>
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+ <li class="md-nav__item">
2157
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
2158
+ Power Port Template
2159
+ </a>
2160
+ </li>
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+ <li class="md-nav__item">
2171
+ <a href="../models/dcim/rack.html" class="md-nav__link">
2172
+ Rack
2173
+ </a>
2174
+ </li>
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+ <li class="md-nav__item">
2185
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
2186
+ Rack Group
2187
+ </a>
2188
+ </li>
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+ <li class="md-nav__item">
2199
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
2200
+ Rack Reservation
2201
+ </a>
2202
+ </li>
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+ <li class="md-nav__item">
2213
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2214
+ Rear Port
2215
+ </a>
2216
+ </li>
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+ <li class="md-nav__item">
2227
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2228
+ Rear Port Template
2229
+ </a>
2230
+ </li>
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+ <li class="md-nav__item">
2241
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2242
+ Virtual Chassis
2243
+ </a>
2244
+ </li>
2245
+
2246
+
2247
+
2248
+
2249
+ </ul>
2250
+ </nav>
2251
+ </li>
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+ <li class="md-nav__item md-nav__item--nested">
2263
+
2264
+
2265
+
2266
+
2267
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
2268
+
2269
+
2270
+
2271
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2272
+ Extras
2273
+ <span class="md-nav__icon md-icon"></span>
2274
+ </label>
2275
+
2276
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2277
+ <label class="md-nav__title" for="__nav_2_8_3">
2278
+ <span class="md-nav__icon md-icon"></span>
2279
+ Extras
2280
+ </label>
2281
+ <ul class="md-nav__list" data-md-scrollfix>
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+ <li class="md-nav__item">
2289
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2290
+ Config Context
2291
+ </a>
2292
+ </li>
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+ <li class="md-nav__item">
2303
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2304
+ Config Context Schema
2305
+ </a>
2306
+ </li>
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+ <li class="md-nav__item">
2317
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2318
+ GraphQL Query
2319
+ </a>
2320
+ </li>
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+ <li class="md-nav__item">
2331
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2332
+ Image Attachment
2333
+ </a>
2334
+ </li>
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+ <li class="md-nav__item">
2345
+ <a href="../models/extras/job.html" class="md-nav__link">
2346
+ Job
2347
+ </a>
2348
+ </li>
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+ <li class="md-nav__item">
2359
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2360
+ Job Log Entry
2361
+ </a>
2362
+ </li>
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+ <li class="md-nav__item">
2373
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2374
+ Job Result
2375
+ </a>
2376
+ </li>
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+ <li class="md-nav__item">
2387
+ <a href="../models/extras/role.html" class="md-nav__link">
2388
+ Role
2389
+ </a>
2390
+ </li>
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+ <li class="md-nav__item">
2401
+ <a href="../models/extras/secret.html" class="md-nav__link">
2402
+ Secret
2403
+ </a>
2404
+ </li>
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+ <li class="md-nav__item">
2415
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2416
+ Secrets group
2417
+ </a>
2418
+ </li>
2419
+
2420
+
2421
+
2422
+
2423
+ </ul>
2424
+ </nav>
2425
+ </li>
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+ <li class="md-nav__item md-nav__item--nested">
2437
+
2438
+
2439
+
2440
+
2441
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2442
+
2443
+
2444
+
2445
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2446
+ IPAM
2447
+ <span class="md-nav__icon md-icon"></span>
2448
+ </label>
2449
+
2450
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2451
+ <label class="md-nav__title" for="__nav_2_8_4">
2452
+ <span class="md-nav__icon md-icon"></span>
2453
+ IPAM
2454
+ </label>
2455
+ <ul class="md-nav__list" data-md-scrollfix>
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+ <li class="md-nav__item">
2463
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2464
+ IP Address
1308
2465
  </a>
1309
2466
  </li>
1310
2467
 
@@ -1317,8 +2474,8 @@
1317
2474
 
1318
2475
 
1319
2476
  <li class="md-nav__item">
1320
- <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1321
- Interfaces
2477
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2478
+ Prefix
1322
2479
  </a>
1323
2480
  </li>
1324
2481
 
@@ -1331,8 +2488,8 @@
1331
2488
 
1332
2489
 
1333
2490
  <li class="md-nav__item">
1334
- <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1335
- IP Address Management
2491
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2492
+ Rir
1336
2493
  </a>
1337
2494
  </li>
1338
2495
 
@@ -1345,8 +2502,8 @@
1345
2502
 
1346
2503
 
1347
2504
  <li class="md-nav__item">
1348
- <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1349
- Platforms
2505
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2506
+ Route Target
1350
2507
  </a>
1351
2508
  </li>
1352
2509
 
@@ -1359,8 +2516,8 @@
1359
2516
 
1360
2517
 
1361
2518
  <li class="md-nav__item">
1362
- <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1363
- Regions
2519
+ <a href="../models/ipam/service.html" class="md-nav__link">
2520
+ Service
1364
2521
  </a>
1365
2522
  </li>
1366
2523
 
@@ -1373,8 +2530,8 @@
1373
2530
 
1374
2531
 
1375
2532
  <li class="md-nav__item">
1376
- <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1377
- Tenants
2533
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2534
+ VLAN
1378
2535
  </a>
1379
2536
  </li>
1380
2537
 
@@ -1387,8 +2544,8 @@
1387
2544
 
1388
2545
 
1389
2546
  <li class="md-nav__item">
1390
- <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1391
- The Search Bar
2547
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2548
+ VLAN Group
1392
2549
  </a>
1393
2550
  </li>
1394
2551
 
@@ -1401,23 +2558,16 @@
1401
2558
 
1402
2559
 
1403
2560
  <li class="md-nav__item">
1404
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1405
- Git as a Data Source
2561
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2562
+ VRF
1406
2563
  </a>
1407
2564
  </li>
1408
2565
 
1409
2566
 
1410
2567
 
1411
2568
 
1412
-
1413
-
1414
-
1415
-
1416
-
1417
- <li class="md-nav__item">
1418
- <a href="../user-guides/graphql.html" class="md-nav__link">
1419
- GraphQL
1420
- </a>
2569
+ </ul>
2570
+ </nav>
1421
2571
  </li>
1422
2572
 
1423
2573
 
@@ -1428,14 +2578,27 @@
1428
2578
 
1429
2579
 
1430
2580
 
1431
- <li class="md-nav__item">
1432
- <a href="../user-guides/relationships.html" class="md-nav__link">
1433
- Relationships
1434
- </a>
1435
- </li>
1436
-
1437
-
1438
-
2581
+
2582
+ <li class="md-nav__item md-nav__item--nested">
2583
+
2584
+
2585
+
2586
+
2587
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
2588
+
2589
+
2590
+
2591
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2592
+ Tenancy
2593
+ <span class="md-nav__icon md-icon"></span>
2594
+ </label>
2595
+
2596
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2597
+ <label class="md-nav__title" for="__nav_2_8_5">
2598
+ <span class="md-nav__icon md-icon"></span>
2599
+ Tenancy
2600
+ </label>
2601
+ <ul class="md-nav__list" data-md-scrollfix>
1439
2602
 
1440
2603
 
1441
2604
 
@@ -1443,8 +2606,8 @@
1443
2606
 
1444
2607
 
1445
2608
  <li class="md-nav__item">
1446
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1447
- Django Storages with S3
2609
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2610
+ Tenant
1448
2611
  </a>
1449
2612
  </li>
1450
2613
 
@@ -1457,8 +2620,8 @@
1457
2620
 
1458
2621
 
1459
2622
  <li class="md-nav__item">
1460
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1461
- VLANS and VLAN Groups
2623
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2624
+ Tenant Group
1462
2625
  </a>
1463
2626
  </li>
1464
2627
 
@@ -1481,20 +2644,21 @@
1481
2644
  <li class="md-nav__item md-nav__item--nested">
1482
2645
 
1483
2646
 
1484
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" >
1485
2647
 
1486
2648
 
2649
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
1487
2650
 
1488
2651
 
1489
- <label class="md-nav__link" for="__nav_2_7">
1490
- Core Functionality
2652
+
2653
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2654
+ Users
1491
2655
  <span class="md-nav__icon md-icon"></span>
1492
2656
  </label>
1493
2657
 
1494
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1495
- <label class="md-nav__title" for="__nav_2_7">
2658
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2659
+ <label class="md-nav__title" for="__nav_2_8_6">
1496
2660
  <span class="md-nav__icon md-icon"></span>
1497
- Core Functionality
2661
+ Users
1498
2662
  </label>
1499
2663
  <ul class="md-nav__list" data-md-scrollfix>
1500
2664
 
@@ -1504,22 +2668,8 @@
1504
2668
 
1505
2669
 
1506
2670
  <li class="md-nav__item">
1507
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1508
- Circuits
1509
- </a>
1510
- </li>
1511
-
1512
-
1513
-
1514
-
1515
-
1516
-
1517
-
1518
-
1519
-
1520
- <li class="md-nav__item">
1521
- <a href="../core-functionality/devices.html" class="md-nav__link">
1522
- Devices and Cabling
2671
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2672
+ Object Permission
1523
2673
  </a>
1524
2674
  </li>
1525
2675
 
@@ -1532,23 +2682,16 @@
1532
2682
 
1533
2683
 
1534
2684
  <li class="md-nav__item">
1535
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1536
- Device Types
2685
+ <a href="../models/users/token.html" class="md-nav__link">
2686
+ Token
1537
2687
  </a>
1538
2688
  </li>
1539
2689
 
1540
2690
 
1541
2691
 
1542
2692
 
1543
-
1544
-
1545
-
1546
-
1547
-
1548
- <li class="md-nav__item">
1549
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1550
- IP Address Management
1551
- </a>
2693
+ </ul>
2694
+ </nav>
1552
2695
  </li>
1553
2696
 
1554
2697
 
@@ -1559,14 +2702,27 @@
1559
2702
 
1560
2703
 
1561
2704
 
1562
- <li class="md-nav__item">
1563
- <a href="../core-functionality/power.html" class="md-nav__link">
1564
- Power Tracking
1565
- </a>
1566
- </li>
1567
-
1568
-
1569
-
2705
+
2706
+ <li class="md-nav__item md-nav__item--nested">
2707
+
2708
+
2709
+
2710
+
2711
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2712
+
2713
+
2714
+
2715
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2716
+ Virtualization
2717
+ <span class="md-nav__icon md-icon"></span>
2718
+ </label>
2719
+
2720
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2721
+ <label class="md-nav__title" for="__nav_2_8_7">
2722
+ <span class="md-nav__icon md-icon"></span>
2723
+ Virtualization
2724
+ </label>
2725
+ <ul class="md-nav__list" data-md-scrollfix>
1570
2726
 
1571
2727
 
1572
2728
 
@@ -1574,8 +2730,8 @@
1574
2730
 
1575
2731
 
1576
2732
  <li class="md-nav__item">
1577
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1578
- Secrets
2733
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2734
+ Cluster
1579
2735
  </a>
1580
2736
  </li>
1581
2737
 
@@ -1588,8 +2744,8 @@
1588
2744
 
1589
2745
 
1590
2746
  <li class="md-nav__item">
1591
- <a href="../core-functionality/services.html" class="md-nav__link">
1592
- Service Mapping
2747
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2748
+ Cluster Group
1593
2749
  </a>
1594
2750
  </li>
1595
2751
 
@@ -1602,8 +2758,8 @@
1602
2758
 
1603
2759
 
1604
2760
  <li class="md-nav__item">
1605
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1606
- Sites, Locations, and Racks
2761
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2762
+ Cluster Type
1607
2763
  </a>
1608
2764
  </li>
1609
2765
 
@@ -1616,8 +2772,8 @@
1616
2772
 
1617
2773
 
1618
2774
  <li class="md-nav__item">
1619
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1620
- Tenancy
2775
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2776
+ Virtual Machine
1621
2777
  </a>
1622
2778
  </li>
1623
2779
 
@@ -1630,23 +2786,16 @@
1630
2786
 
1631
2787
 
1632
2788
  <li class="md-nav__item">
1633
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1634
- Virtualization
2789
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2790
+ VM Interface
1635
2791
  </a>
1636
2792
  </li>
1637
2793
 
1638
2794
 
1639
2795
 
1640
2796
 
1641
-
1642
-
1643
-
1644
-
1645
-
1646
- <li class="md-nav__item">
1647
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1648
- VLAN Management
1649
- </a>
2797
+ </ul>
2798
+ </nav>
1650
2799
  </li>
1651
2800
 
1652
2801
 
@@ -1668,18 +2817,19 @@
1668
2817
  <li class="md-nav__item md-nav__item--nested">
1669
2818
 
1670
2819
 
1671
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1672
2820
 
1673
2821
 
2822
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1674
2823
 
1675
2824
 
1676
- <label class="md-nav__link" for="__nav_2_8">
2825
+
2826
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1677
2827
  Additional Features
1678
2828
  <span class="md-nav__icon md-icon"></span>
1679
2829
  </label>
1680
2830
 
1681
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1682
- <label class="md-nav__title" for="__nav_2_8">
2831
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2832
+ <label class="md-nav__title" for="__nav_2_9">
1683
2833
  <span class="md-nav__icon md-icon"></span>
1684
2834
  Additional Features
1685
2835
  </label>
@@ -2009,18 +3159,19 @@
2009
3159
  <li class="md-nav__item md-nav__item--nested">
2010
3160
 
2011
3161
 
2012
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
2013
3162
 
2014
3163
 
3164
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
3165
+
2015
3166
 
2016
3167
 
2017
- <label class="md-nav__link" for="__nav_2_9">
3168
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2018
3169
  REST API
2019
3170
  <span class="md-nav__icon md-icon"></span>
2020
3171
  </label>
2021
3172
 
2022
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
2023
- <label class="md-nav__title" for="__nav_2_9">
3173
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
3174
+ <label class="md-nav__title" for="__nav_2_10">
2024
3175
  <span class="md-nav__icon md-icon"></span>
2025
3176
  REST API
2026
3177
  </label>
@@ -2068,6 +3219,20 @@
2068
3219
 
2069
3220
 
2070
3221
 
3222
+
3223
+
3224
+
3225
+
3226
+
3227
+ <li class="md-nav__item">
3228
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3229
+ UI Endpoints
3230
+ </a>
3231
+ </li>
3232
+
3233
+
3234
+
3235
+
2071
3236
  </ul>
2072
3237
  </nav>
2073
3238
  </li>
@@ -2084,18 +3249,19 @@
2084
3249
  <li class="md-nav__item md-nav__item--nested">
2085
3250
 
2086
3251
 
2087
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
2088
3252
 
2089
3253
 
3254
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
2090
3255
 
2091
3256
 
2092
- <label class="md-nav__link" for="__nav_2_10">
3257
+
3258
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
2093
3259
  GraphQL API
2094
3260
  <span class="md-nav__icon md-icon"></span>
2095
3261
  </label>
2096
3262
 
2097
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
2098
- <label class="md-nav__title" for="__nav_2_10">
3263
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3264
+ <label class="md-nav__title" for="__nav_2_11">
2099
3265
  <span class="md-nav__icon md-icon"></span>
2100
3266
  GraphQL API
2101
3267
  </label>
@@ -2153,17 +3319,18 @@
2153
3319
  <li class="md-nav__item md-nav__item--nested">
2154
3320
 
2155
3321
 
2156
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
2157
3322
 
2158
3323
 
3324
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
2159
3325
 
2160
3326
 
2161
- <label class="md-nav__link" for="__nav_3">
3327
+
3328
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2162
3329
  App Developer Guide
2163
3330
  <span class="md-nav__icon md-icon"></span>
2164
3331
  </label>
2165
3332
 
2166
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
3333
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
2167
3334
  <label class="md-nav__title" for="__nav_3">
2168
3335
  <span class="md-nav__icon md-icon"></span>
2169
3336
  App Developer Guide
@@ -2207,17 +3374,18 @@
2207
3374
  <li class="md-nav__item md-nav__item--nested">
2208
3375
 
2209
3376
 
2210
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
2211
3377
 
2212
3378
 
3379
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
3380
+
2213
3381
 
2214
3382
 
2215
- <label class="md-nav__link" for="__nav_3_3">
3383
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
2216
3384
  Code Reference
2217
3385
  <span class="md-nav__icon md-icon"></span>
2218
3386
  </label>
2219
3387
 
2220
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
3388
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
2221
3389
  <label class="md-nav__title" for="__nav_3_3">
2222
3390
  <span class="md-nav__icon md-icon"></span>
2223
3391
  Code Reference
@@ -2444,17 +3612,18 @@
2444
3612
  <li class="md-nav__item md-nav__item--nested">
2445
3613
 
2446
3614
 
2447
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2448
3615
 
2449
3616
 
3617
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
2450
3618
 
2451
3619
 
2452
- <label class="md-nav__link" for="__nav_4">
3620
+
3621
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2453
3622
  Core Developer Guide
2454
3623
  <span class="md-nav__icon md-icon"></span>
2455
3624
  </label>
2456
3625
 
2457
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3626
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2458
3627
  <label class="md-nav__title" for="__nav_4">
2459
3628
  <span class="md-nav__icon md-icon"></span>
2460
3629
  Core Developer Guide
@@ -2688,17 +3857,18 @@
2688
3857
  <li class="md-nav__item md-nav__item--nested">
2689
3858
 
2690
3859
 
2691
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
2692
3860
 
2693
3861
 
3862
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
3863
+
2694
3864
 
2695
3865
 
2696
- <label class="md-nav__link" for="__nav_5">
3866
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
2697
3867
  Release Notes
2698
3868
  <span class="md-nav__icon md-icon"></span>
2699
3869
  </label>
2700
3870
 
2701
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
3871
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
2702
3872
  <label class="md-nav__title" for="__nav_5">
2703
3873
  <span class="md-nav__icon md-icon"></span>
2704
3874
  Release Notes
@@ -2834,17 +4004,18 @@
2834
4004
  <li class="md-nav__item md-nav__item--nested">
2835
4005
 
2836
4006
 
2837
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2838
4007
 
2839
4008
 
4009
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
2840
4010
 
2841
4011
 
2842
- <label class="md-nav__link" for="__nav_6">
4012
+
4013
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
2843
4014
  Nautobot Apps
2844
4015
  <span class="md-nav__icon md-icon"></span>
2845
4016
  </label>
2846
4017
 
2847
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
4018
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
2848
4019
  <label class="md-nav__title" for="__nav_6">
2849
4020
  <span class="md-nav__icon md-icon"></span>
2850
4021
  Nautobot Apps
@@ -2874,17 +4045,18 @@
2874
4045
  <li class="md-nav__item md-nav__item--nested">
2875
4046
 
2876
4047
 
2877
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2878
4048
 
2879
4049
 
4050
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
4051
+
2880
4052
 
2881
4053
 
2882
- <label class="md-nav__link" for="__nav_6_2">
4054
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2883
4055
  Network to Code App Docs
2884
4056
  <span class="md-nav__icon md-icon"></span>
2885
4057
  </label>
2886
4058
 
2887
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
4059
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
2888
4060
  <label class="md-nav__title" for="__nav_6_2">
2889
4061
  <span class="md-nav__icon md-icon"></span>
2890
4062
  Network to Code App Docs
@@ -2911,8 +4083,8 @@
2911
4083
 
2912
4084
 
2913
4085
  <li class="md-nav__item">
2914
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
2915
- Nautobot Firewall Models
4086
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
4087
+ Nautobot Circuit Maintenance
2916
4088
  </a>
2917
4089
  </li>
2918
4090
 
@@ -2925,8 +4097,36 @@
2925
4097
 
2926
4098
 
2927
4099
  <li class="md-nav__item">
2928
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
2929
- Nautobot Plugin Nornir
4100
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
4101
+ Nautobot Device LifeCycle Management
4102
+ </a>
4103
+ </li>
4104
+
4105
+
4106
+
4107
+
4108
+
4109
+
4110
+
4111
+
4112
+
4113
+ <li class="md-nav__item">
4114
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
4115
+ Nautobot Device Onboarding
4116
+ </a>
4117
+ </li>
4118
+
4119
+
4120
+
4121
+
4122
+
4123
+
4124
+
4125
+
4126
+
4127
+ <li class="md-nav__item">
4128
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
4129
+ Nautobot Firewall Models
2930
4130
  </a>
2931
4131
  </li>
2932
4132
 
@@ -2953,7 +4153,21 @@
2953
4153
 
2954
4154
 
2955
4155
  <li class="md-nav__item">
2956
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
4156
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
4157
+ Nautobot Plugin Nornir
4158
+ </a>
4159
+ </li>
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+ <li class="md-nav__item">
4170
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
2957
4171
  Nautobot Single Source of Truth
2958
4172
  </a>
2959
4173
  </li>
@@ -3121,13 +4335,6 @@
3121
4335
  <nav class="md-nav" aria-label="Display name">
3122
4336
  <ul class="md-nav__list">
3123
4337
 
3124
- <li class="md-nav__item">
3125
- <a href="#csv-imports" class="md-nav__link">
3126
- CSV Imports
3127
- </a>
3128
-
3129
- </li>
3130
-
3131
4338
  <li class="md-nav__item">
3132
4339
  <a href="#default-choices" class="md-nav__link">
3133
4340
  Default Choices
@@ -3206,15 +4413,8 @@
3206
4413
  </li>
3207
4414
 
3208
4415
  <li class="md-nav__item">
3209
- <a href="#ipaddress-prefix_length-contains-the-prefix-length" class="md-nav__link">
3210
- IPAddress prefix_length contains the prefix length
3211
- </a>
3212
-
3213
- </li>
3214
-
3215
- <li class="md-nav__item">
3216
- <a href="#ipaddress-broadcast-contains-the-broadcast-address" class="md-nav__link">
3217
- IPAddress broadcast contains the broadcast address
4416
+ <a href="#ipaddress-mask_length-contains-the-prefix-length" class="md-nav__link">
4417
+ IPAddress mask_length contains the prefix length
3218
4418
  </a>
3219
4419
 
3220
4420
  </li>
@@ -3343,10 +4543,8 @@
3343
4543
 
3344
4544
 
3345
4545
 
3346
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/installation/migrating-from-netbox.md" title="Edit this page" class="md-content__button md-icon">
3347
-
3348
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
3349
- </a>
4546
+
4547
+
3350
4548
 
3351
4549
 
3352
4550
  <h1 id="migrating-to-nautobot-from-netbox">Migrating to Nautobot from NetBox<a class="headerlink" href="#migrating-to-nautobot-from-netbox" title="Permanent link">&para;</a></h1>
@@ -3397,22 +4595,11 @@
3397
4595
  <h2 id="data-model-changes">Data Model Changes<a class="headerlink" href="#data-model-changes" title="Permanent link">&para;</a></h2>
3398
4596
  <p>The following backwards-incompatible changes have been made to the data model in Nautobot.</p>
3399
4597
  <h3 id="status-fields">Status Fields<a class="headerlink" href="#status-fields" title="Permanent link">&para;</a></h3>
3400
- <div class="admonition tip">
3401
- <p class="admonition-title">Tip</p>
3402
- <p>Status names are now lower-cased when setting the <code>status</code> field on CSV imports. The <code>slug</code> value is used for create/update of objects and for filtering in the API.</p>
3403
- </div>
3404
- <p>A new <a href="../models/extras/status.html"><code>Status</code></a> model has been added to represent the <code>status</code> field for many models. Each status has a human-readable <code>name</code> field (e.g. <code>Active</code>), and a <code>slug</code> field (e.g. <code>active</code>).</p>
4598
+ <p>A new <a href="../models/extras/status.html"><code>Status</code></a> model has been added to represent the <code>status</code> field for many models. Each status has a human-readable <code>name</code> field (e.g. <code>Active</code>), a <code>color</code>, a <code>description</code>, and a set of <code>content_types</code> that it can be applied to (for example, <code>Device</code> and <code>Location</code>).</p>
3405
4599
  <h3 id="display-name">Display name<a class="headerlink" href="#display-name" title="Permanent link">&para;</a></h3>
3406
4600
  <p>Several models such as device type and VLAN exposed a <code>display_name</code> property, which has now been renamed to <code>display</code>. In fact, there are several other instances, especially in the REST API, where the <code>display_name</code> field was used and as such, all instances have been renamed to <code>display</code>.</p>
3407
- <h4 id="csv-imports">CSV Imports<a class="headerlink" href="#csv-imports" title="Permanent link">&para;</a></h4>
3408
- <p>When using CSV import to define a <code>status</code> field on imported objects, such as when importing Devices or Prefixes, the <code>Status.slug</code> field is used.</p>
3409
- <p>For example, the built-in <strong>Active</strong> status has a slug of <code>active</code>, so the <code>active</code> value would be used for import.</p>
3410
4601
  <h4 id="default-choices">Default Choices<a class="headerlink" href="#default-choices" title="Permanent link">&para;</a></h4>
3411
4602
  <p>Because <code>status</code> fields are now stored in the database, they cannot have a default value, just like other similar objects like Device Roles or Device Types. In cases where <code>status</code> was not required to be set because it would use the default value, you must now provide a <code>status</code> yourself. </p>
3412
- <div class="admonition note">
3413
- <p class="admonition-title">Note</p>
3414
- <p>For consistency in the API, the <code>slug</code> value of a <code>status</code> is used when creating or updating an object.</p>
3415
- </div>
3416
4603
  <h4 id="choices-in-code">Choices in Code<a class="headerlink" href="#choices-in-code" title="Permanent link">&para;</a></h4>
3417
4604
  <p>All <code>*StatusChoices</code> enums used for populated <code>status</code> field choices (such as <code>nautobot.dcim.choices.DeviceStatusChoices</code>) are deprecated. Any code you have that is leveraging these will now result in an error when performing lookups on objects with <code>status</code> fields.</p>
3418
4605
  <p>Anywhere you have code like this:</p>
@@ -3425,7 +4612,7 @@
3425
4612
  <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="kn">from</span> <span class="nn">nautobot.extras.models</span> <span class="kn">import</span> <span class="n">Status</span>
3426
4613
  <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="kn">from</span> <span class="nn">nautobot.dcim.models</span> <span class="kn">import</span> <span class="n">Device</span>
3427
4614
  <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a>
3428
- <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="n">Device</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">Status</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">slug</span><span class="o">=</span><span class="s2">&quot;planned&quot;</span><span class="p">))</span>
4615
+ <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="n">Device</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">Status</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;Planned&quot;</span><span class="p">))</span>
3429
4616
  </code></pre></div>
3430
4617
  <h3 id="uuid-primary-database-keys">UUID Primary Database Keys<a class="headerlink" href="#uuid-primary-database-keys" title="Permanent link">&para;</a></h3>
3431
4618
  <div class="admonition tip">
@@ -3454,10 +4641,10 @@
3454
4641
  <h4 id="technical-details">Technical Details<a class="headerlink" href="#technical-details" title="Permanent link">&para;</a></h4>
3455
4642
  <p>Below is a summary of the underlying technical changes to network fields. These will be explained in more detail in the following sections.</p>
3456
4643
  <ul>
3457
- <li>For <code>IPAddress</code>, the <code>address</code> field was exploded out to <code>host</code>, <code>broadcast</code>, and <code>prefix_length</code> fields; <code>address</code> was converted into a computed field.</li>
4644
+ <li>For <code>IPAddress</code>, the <code>address</code> field was exploded out to <code>host</code> and <code>mask_length</code> fields; <code>address</code> was converted into a computed field.</li>
3458
4645
  <li>For <code>Prefix</code> objects, the <code>prefix</code> field was exploded out to <code>network</code>, <code>broadcast</code>, and <code>prefix_length</code> fields; <code>prefix</code> was converted into a computed field.</li>
3459
4646
  <li>The <code>host</code>, <code>network</code>, and <code>broadcast</code> fields are now of a <code>varbinary</code> database type, which is represented as a packed binary integer (for example, the host <code>1.1.1.1</code> is packed as <code>b"\x01\x01\x01\x01"</code>)</li>
3460
- <li>Network membership queries are accomplished by triangulating the "position" of an address using the IP, broadcast, and prefix length of the source and target addresses.</li>
4647
+ <li>Network membership queries are accomplished by triangulating the "position" of an address using the <code>host</code> of the <code>IPAddress</code> and the <code>network</code> and <code>broadcast</code> of the <code>Prefix</code>.</li>
3461
4648
  </ul>
3462
4649
  <div class="admonition note">
3463
4650
  <p class="admonition-title">Note</p>
@@ -3466,7 +4653,7 @@
3466
4653
  <h4 id="changes-to-ipaddress">Changes to <code>IPAddress</code><a class="headerlink" href="#changes-to-ipaddress" title="Permanent link">&para;</a></h4>
3467
4654
  <p>The following fields have changed when working with <code>ipam.IPAddress</code> objects:</p>
3468
4655
  <h5 id="address-is-now-a-computed-field"><code>address</code> is now a computed field<a class="headerlink" href="#address-is-now-a-computed-field" title="Permanent link">&para;</a></h5>
3469
- <p>This field is computed from <code>{host}/{prefix_length}</code> and is represented as a <code>netaddr.IPNetwork</code> object.</p>
4656
+ <p>This field is computed from <code>{host}/{mask_length}</code> and is represented as a <code>netaddr.IPNetwork</code> object.</p>
3470
4657
  <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">ip</span> <span class="o">=</span> <span class="n">IPAddress</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s2">&quot;1.1.1.1/30&quot;</span><span class="p">)</span>
3471
4658
  <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">ip</span><span class="o">.</span><span class="n">address</span>
3472
4659
  <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="n">IPNetwork</span><span class="p">(</span><span class="s1">&#39;1.1.1.1/30&#39;</span><span class="p">)</span>
@@ -3483,7 +4670,7 @@
3483
4670
  </code></pre></div>
3484
4671
  <div class="admonition note">
3485
4672
  <p class="admonition-title">Note</p>
3486
- <p>If you use a <code>prefix_length</code> other than <code>/32</code> (IPv4) or <code>/128</code> (IPv6) it <strong>must</strong> be included in your lookups</p>
4673
+ <p>If you use a <code>mask_length</code> other than <code>/32</code> (IPv4) or <code>/128</code> (IPv6) it <strong>must</strong> be included in your lookups</p>
3487
4674
  </div>
3488
4675
  <p>This field <em>cannot be used in </em><em>nested</em><em> filter expressions</em>:</p>
3489
4676
  <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Device</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">primary_ip4__address</span><span class="o">=</span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">)</span>
@@ -3497,33 +4684,20 @@
3497
4684
  <p>This field <em>can</em> be used in nested filter expressions, for example:</p>
3498
4685
  <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Device</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">primary_ip4__host</span><span class="o">=</span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">)</span>
3499
4686
  </code></pre></div>
3500
- <h5 id="ipaddress-prefix_length-contains-the-prefix-length">IPAddress <code>prefix_length</code> contains the prefix length<a class="headerlink" href="#ipaddress-prefix_length-contains-the-prefix-length" title="Permanent link">&para;</a></h5>
4687
+ <h5 id="ipaddress-mask_length-contains-the-prefix-length">IPAddress <code>mask_length</code> contains the prefix length<a class="headerlink" href="#ipaddress-mask_length-contains-the-prefix-length" title="Permanent link">&para;</a></h5>
3501
4688
  <p>This is an integer, such as <code>30</code> for <code>/30</code>.</p>
3502
- <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">ip</span><span class="o">.</span><span class="n">prefix_length</span>
4689
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">ip</span><span class="o">.</span><span class="n">mask_length</span>
3503
4690
  <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="mi">30</span>
3504
4691
  </code></pre></div>
3505
- <p>For IP addresses with a prefix length other than a host prefix, you will need to filter using <code>host</code> and <code>prefix_length</code> fields for greater accuracy.</p>
3506
- <p>For example, if you have multiple <code>IPAddress</code> objects with the same <code>host</code> value but different <code>prefix_length</code>:</p>
4692
+ <p>For IP addresses with a mask length other than a host prefix, you will need to filter using <code>host</code> and <code>mask_length</code> fields for greater accuracy.</p>
4693
+ <p>For example, if you have multiple <code>IPAddress</code> objects with the same <code>host</code> value but different <code>mask_length</code>:</p>
3507
4694
  <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s2">&quot;1.1.1.1/32&quot;</span><span class="p">)</span>
3508
4695
  <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="o">&lt;</span><span class="n">IPAddress</span><span class="p">:</span> <span class="mf">1.1.1.1</span><span class="o">/</span><span class="mi">32</span><span class="o">&gt;</span>
3509
4696
  <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">)</span>
3510
4697
  <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="o">&lt;</span><span class="n">IPAddressQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">IPAddress</span><span class="p">:</span> <span class="mf">1.1.1.1</span><span class="o">/</span><span class="mi">30</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">IPAddress</span><span class="p">:</span> <span class="mf">1.1.1.1</span><span class="o">/</span><span class="mi">32</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
3511
- <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">,</span> <span class="n">prefix_length</span><span class="o">=</span><span class="mi">30</span><span class="p">)</span>
4698
+ <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">&quot;1.1.1.1&quot;</span><span class="p">,</span> <span class="n">mask_length</span><span class="o">=</span><span class="mi">30</span><span class="p">)</span>
3512
4699
  <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="o">&lt;</span><span class="n">IPAddressQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">IPAddress</span><span class="p">:</span> <span class="mf">1.1.1.1</span><span class="o">/</span><span class="mi">30</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
3513
4700
  </code></pre></div>
3514
- <h5 id="ipaddress-broadcast-contains-the-broadcast-address">IPAddress <code>broadcast</code> contains the broadcast address<a class="headerlink" href="#ipaddress-broadcast-contains-the-broadcast-address" title="Permanent link">&para;</a></h5>
3515
- <p>If the prefix length is that of a host prefix (e.g. <code>/32</code>), <code>broadcast</code> will be the same as the <code>host</code> :</p>
3516
- <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s2">&quot;1.1.1.1/32&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">broadcast</span>
3517
- <a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="s1">&#39;1.1.1.1&#39;</span>
3518
- </code></pre></div>
3519
- <p>If the prefix length is any larger (e.g. <code>/24</code>), <code>broadcast</code> will be that of the containing network for that prefix length (e.g. <code>1.1.1.255</code>):</p>
3520
- <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s2">&quot;1.1.1.1/24&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">broadcast</span>
3521
- <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="s1">&#39;1.1.1.255&#39;</span>
3522
- </code></pre></div>
3523
- <div class="admonition note">
3524
- <p class="admonition-title">Note</p>
3525
- <p>This field is largely for internal use only for facilitating network membership queries and it is not recommend that you use it for filtering.</p>
3526
- </div>
3527
4701
  <h4 id="changes-to-aggregate-and-prefix">Changes to <code>Aggregate</code> and <code>Prefix</code><a class="headerlink" href="#changes-to-aggregate-and-prefix" title="Permanent link">&para;</a></h4>
3528
4702
  <p>The following fields have changed when working with <code>ipam.Aggregate</code> and <code>ipam.Prefix</code> objects.</p>
3529
4703
  <h5 id="aggregate-model-merged-into-prefix"><code>Aggregate</code> model merged into <code>Prefix</code><a class="headerlink" href="#aggregate-model-merged-into-prefix" title="Permanent link">&para;</a></h5>
@@ -3532,37 +4706,37 @@
3532
4706
  <p>This field is computed from <code>{network}/{prefix_length}</code> and is represented as a <code>netaddr.IPNetwork</code> object.</p>
3533
4707
  <p>While this field is now a virtual field, it can still be used in many ways.</p>
3534
4708
  <p>It can be used to create objects:</p>
3535
- <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span> <span class="o">=</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
4709
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span> <span class="o">=</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
3536
4710
  </code></pre></div>
3537
4711
  <p>It can be used in <code>.get()</code> and <code>.filter()</code> lookups where <code>prefix</code> is the primary argument:</p>
3538
- <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
3539
- <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span>
3540
- <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
3541
- <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
4712
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
4713
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span>
4714
+ <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span>
4715
+ <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
3542
4716
  </code></pre></div>
3543
4717
  <h5 id="network-contains-the-network-address"><code>network</code> contains the network address<a class="headerlink" href="#network-contains-the-network-address" title="Permanent link">&para;</a></h5>
3544
4718
  <p>The network component of the address is now stored in the <code>network</code> field.</p>
3545
- <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span><span class="o">.</span><span class="n">network</span>
3546
- <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="s1">&#39;1.1.1.0&#39;</span>
4719
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span><span class="o">.</span><span class="n">network</span>
4720
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="s1">&#39;1.1.1.0&#39;</span>
3547
4721
  </code></pre></div>
3548
4722
  <h5 id="prefix-prefix_length-contains-the-prefix-length">Prefix <code>prefix_length</code> contains the prefix length<a class="headerlink" href="#prefix-prefix_length-contains-the-prefix-length" title="Permanent link">&para;</a></h5>
3549
4723
  <p>This is an integer, such as <code>24</code> for <code>/24</code>.</p>
3550
- <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span><span class="o">.</span><span class="n">prefix_length</span>
3551
- <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a><span class="mi">24</span>
4724
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">net</span><span class="o">.</span><span class="n">prefix_length</span>
4725
+ <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="mi">24</span>
3552
4726
  </code></pre></div>
3553
4727
  <p>It's highly likely that you will have multiple objects with the same <code>network</code> address but varying prefix lengths, so you will need to filter using <code>network</code> and <code>prefix_length</code> fields for greater accuracy.</p>
3554
4728
  <p>For example, if you have multiple <code>Prefix</code> objects with the same <code>network</code> value but different <code>prefix_length</code>:</p>
3555
- <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/25&quot;</span><span class="p">)</span>
3556
- <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span>
3557
- <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">network</span><span class="o">=</span><span class="s2">&quot;1.1.1.0&quot;</span><span class="p">)</span>
3558
- <a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
3559
- <a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">network</span><span class="o">=</span><span class="s2">&quot;1.1.1.0&quot;</span><span class="p">,</span> <span class="n">prefix_length</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
3560
- <a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
4729
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/25&quot;</span><span class="p">)</span>
4730
+ <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span>
4731
+ <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">network</span><span class="o">=</span><span class="s2">&quot;1.1.1.0&quot;</span><span class="p">)</span>
4732
+ <a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
4733
+ <a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">network</span><span class="o">=</span><span class="s2">&quot;1.1.1.0&quot;</span><span class="p">,</span> <span class="n">prefix_length</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
4734
+ <a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a><span class="o">&lt;</span><span class="n">PrefixQuerySet</span> <span class="p">[</span><span class="o">&lt;</span><span class="n">Prefix</span><span class="p">:</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">25</span><span class="o">&gt;</span><span class="p">]</span><span class="o">&gt;</span>
3561
4735
  </code></pre></div>
3562
4736
  <h5 id="prefix-broadcast-contains-the-broadcast-address">Prefix <code>broadcast</code> contains the broadcast address<a class="headerlink" href="#prefix-broadcast-contains-the-broadcast-address" title="Permanent link">&para;</a></h5>
3563
4737
  <p>The <code>broadcast</code> will be derived from the <code>prefix_length</code> and will be that of the last network address for that prefix length (e.g. <code>1.1.1.255</code>):</p>
3564
- <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">broadcast</span>
3565
- <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="s1">&#39;1.1.1.255&#39;</span>
4738
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;1.1.1.0/24&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">broadcast</span>
4739
+ <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a><span class="s1">&#39;1.1.1.255&#39;</span>
3566
4740
  </code></pre></div>
3567
4741
  <div class="admonition note">
3568
4742
  <p class="admonition-title">Note</p>
@@ -3582,14 +4756,14 @@
3582
4756
  <p>The NetBox filter net_mask_length should use the <code>prefix_length</code> field for filtering.</p>
3583
4757
  </div>
3584
4758
  <p>NetBox:</p>
3585
- <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">address__net_mask_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
3586
- <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="c1"># or</span>
3587
- <a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a><span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix__net_mask_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
4759
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">address__net_mask_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
4760
+ <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="c1"># or</span>
4761
+ <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix__net_mask_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
3588
4762
  </code></pre></div>
3589
4763
  <p>Nautobot:</p>
3590
- <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
3591
- <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a><span class="c1"># or</span>
3592
- <a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a><span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
4764
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="n">IPAddress</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">mask_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
4765
+ <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="c1"># or</span>
4766
+ <a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a><span class="n">Prefix</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">prefix_length</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
3593
4767
  </code></pre></div>
3594
4768
  <h2 id="rest-api-changes">REST API Changes<a class="headerlink" href="#rest-api-changes" title="Permanent link">&para;</a></h2>
3595
4769
  <p>The following backwards-incompatible changes have been made to the REST API in Nautobot.</p>
@@ -3613,42 +4787,6 @@
3613
4787
 
3614
4788
  <footer class="md-footer">
3615
4789
 
3616
-
3617
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
3618
-
3619
-
3620
- <a href="../docker/index.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Nautobot Docker Images" rel="prev">
3621
- <div class="md-footer__button md-icon">
3622
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
3623
- </div>
3624
- <div class="md-footer__title">
3625
- <div class="md-ellipsis">
3626
- <span class="md-footer__direction">
3627
- Previous
3628
- </span>
3629
- Nautobot Docker Images
3630
- </div>
3631
- </div>
3632
- </a>
3633
-
3634
-
3635
-
3636
- <a href="migrating-from-postgresql.html" class="md-footer__link md-footer__link--next" aria-label="Next: Migrating from PostgreSQL to MySQL" rel="next">
3637
- <div class="md-footer__title">
3638
- <div class="md-ellipsis">
3639
- <span class="md-footer__direction">
3640
- Next
3641
- </span>
3642
- Migrating from PostgreSQL to MySQL
3643
- </div>
3644
- </div>
3645
- <div class="md-footer__button md-icon">
3646
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
3647
- </div>
3648
- </a>
3649
-
3650
- </nav>
3651
-
3652
4790
  <div class="md-footer-meta md-typeset">
3653
4791
  <div class="md-footer-meta__inner md-grid">
3654
4792
  <div class="md-copyright">
@@ -3676,32 +4814,42 @@
3676
4814
 
3677
4815
 
3678
4816
 
4817
+
4818
+
3679
4819
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
3680
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm128 352c0 35.3-28.7 64-64 64S0 451.3 0 416s28.7-64 64-64 64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
4820
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
3681
4821
  </a>
3682
4822
 
3683
4823
 
3684
4824
 
4825
+
4826
+
3685
4827
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
3686
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
4828
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
3687
4829
  </a>
3688
4830
 
3689
4831
 
3690
4832
 
4833
+
4834
+
3691
4835
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
3692
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
4836
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
3693
4837
  </a>
3694
4838
 
3695
4839
 
3696
4840
 
4841
+
4842
+
3697
4843
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
3698
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
4844
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
3699
4845
  </a>
3700
4846
 
3701
4847
 
3702
4848
 
4849
+
4850
+
3703
4851
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
3704
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
4852
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
3705
4853
  </a>
3706
4854
 
3707
4855
  </div>
@@ -3715,14 +4863,13 @@
3715
4863
  <div class="md-dialog__inner md-typeset"></div>
3716
4864
  </div>
3717
4865
 
3718
- <script id="__config" type="application/json">{"base": "..", "features": ["navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.16e2a7d4.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
4866
+ <script id="__config" type="application/json">{"base": "..", "features": ["navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
3719
4867
 
3720
4868
 
3721
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
4869
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
3722
4870
 
3723
4871
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
3724
4872
 
3725
4873
 
3726
-
3727
4874
  </body>
3728
4875
  </html>