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/core-functionality/ipam.html">
12
12
 
13
+
14
+ <link rel="prev" href="device-types.html">
15
+
16
+
17
+ <link rel="next" href="power.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
@@ -532,17 +535,18 @@
532
535
  <li class="md-nav__item md-nav__item--nested">
533
536
 
534
537
 
535
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
536
538
 
537
539
 
540
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
541
+
538
542
 
539
543
 
540
- <label class="md-nav__link" for="__nav_2_2">
544
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
541
545
  Migration
542
546
  <span class="md-nav__icon md-icon"></span>
543
547
  </label>
544
548
 
545
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
549
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
546
550
  <label class="md-nav__title" for="__nav_2_2">
547
551
  <span class="md-nav__icon md-icon"></span>
548
552
  Migration
@@ -635,17 +639,18 @@
635
639
  <li class="md-nav__item md-nav__item--nested">
636
640
 
637
641
 
638
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
639
642
 
640
643
 
644
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
641
645
 
642
646
 
643
- <label class="md-nav__link" for="__nav_2_3">
647
+
648
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
644
649
  Configuration
645
650
  <span class="md-nav__icon md-icon"></span>
646
651
  </label>
647
652
 
648
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
653
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
649
654
  <label class="md-nav__title" for="__nav_2_3">
650
655
  <span class="md-nav__icon md-icon"></span>
651
656
  Configuration
@@ -710,17 +715,18 @@
710
715
  <li class="md-nav__item md-nav__item--nested">
711
716
 
712
717
 
713
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
714
718
 
715
719
 
720
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
721
+
716
722
 
717
723
 
718
- <label class="md-nav__link" for="__nav_2_4">
724
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
719
725
  External Authentication
720
726
  <span class="md-nav__icon md-icon"></span>
721
727
  </label>
722
728
 
723
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
729
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
724
730
  <label class="md-nav__title" for="__nav_2_4">
725
731
  <span class="md-nav__icon md-icon"></span>
726
732
  External Authentication
@@ -785,17 +791,18 @@
785
791
  <li class="md-nav__item md-nav__item--nested">
786
792
 
787
793
 
788
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
789
794
 
790
795
 
796
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
791
797
 
792
798
 
793
- <label class="md-nav__link" for="__nav_2_5">
799
+
800
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
794
801
  Administration
795
802
  <span class="md-nav__icon md-icon"></span>
796
803
  </label>
797
804
 
798
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
805
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
799
806
  <label class="md-nav__title" for="__nav_2_5">
800
807
  <span class="md-nav__icon md-icon"></span>
801
808
  Administration
@@ -888,17 +895,18 @@
888
895
  <li class="md-nav__item md-nav__item--nested">
889
896
 
890
897
 
891
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
892
898
 
893
899
 
900
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
901
+
894
902
 
895
903
 
896
- <label class="md-nav__link" for="__nav_2_6">
904
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
897
905
  User Guides
898
906
  <span class="md-nav__icon md-icon"></span>
899
907
  </label>
900
908
 
901
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
909
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
902
910
  <label class="md-nav__title" for="__nav_2_6">
903
911
  <span class="md-nav__icon md-icon"></span>
904
912
  User Guides
@@ -1147,17 +1155,18 @@
1147
1155
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1148
1156
 
1149
1157
 
1150
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" checked>
1151
1158
 
1152
1159
 
1160
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" checked>
1153
1161
 
1154
1162
 
1155
- <label class="md-nav__link" for="__nav_2_7">
1163
+
1164
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1156
1165
  Core Functionality
1157
1166
  <span class="md-nav__icon md-icon"></span>
1158
1167
  </label>
1159
1168
 
1160
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1169
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="true">
1161
1170
  <label class="md-nav__title" for="__nav_2_7">
1162
1171
  <span class="md-nav__icon md-icon"></span>
1163
1172
  Core Functionality
@@ -1215,7 +1224,7 @@
1215
1224
 
1216
1225
  <li class="md-nav__item md-nav__item--active">
1217
1226
 
1218
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
1227
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1219
1228
 
1220
1229
 
1221
1230
 
@@ -1449,20 +1458,48 @@
1449
1458
  <li class="md-nav__item md-nav__item--nested">
1450
1459
 
1451
1460
 
1452
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1453
1461
 
1454
1462
 
1463
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1455
1464
 
1456
1465
 
1457
- <label class="md-nav__link" for="__nav_2_8">
1458
- Additional Features
1466
+
1467
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1468
+ Model Details
1459
1469
  <span class="md-nav__icon md-icon"></span>
1460
1470
  </label>
1461
1471
 
1462
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1472
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1463
1473
  <label class="md-nav__title" for="__nav_2_8">
1464
1474
  <span class="md-nav__icon md-icon"></span>
1465
- Additional Features
1475
+ Model Details
1476
+ </label>
1477
+ <ul class="md-nav__list" data-md-scrollfix>
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+ <li class="md-nav__item md-nav__item--nested">
1486
+
1487
+
1488
+
1489
+
1490
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1491
+
1492
+
1493
+
1494
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1495
+ Circuits
1496
+ <span class="md-nav__icon md-icon"></span>
1497
+ </label>
1498
+
1499
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1500
+ <label class="md-nav__title" for="__nav_2_8_1">
1501
+ <span class="md-nav__icon md-icon"></span>
1502
+ Circuits
1466
1503
  </label>
1467
1504
  <ul class="md-nav__list" data-md-scrollfix>
1468
1505
 
@@ -1472,8 +1509,8 @@
1472
1509
 
1473
1510
 
1474
1511
  <li class="md-nav__item">
1475
- <a href="../additional-features/caching.html" class="md-nav__link">
1476
- Caching
1512
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1513
+ Circuit
1477
1514
  </a>
1478
1515
  </li>
1479
1516
 
@@ -1486,8 +1523,8 @@
1486
1523
 
1487
1524
 
1488
1525
  <li class="md-nav__item">
1489
- <a href="../additional-features/change-logging.html" class="md-nav__link">
1490
- Change Logging
1526
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1527
+ Circuit Termination
1491
1528
  </a>
1492
1529
  </li>
1493
1530
 
@@ -1500,8 +1537,8 @@
1500
1537
 
1501
1538
 
1502
1539
  <li class="md-nav__item">
1503
- <a href="../models/extras/computedfield.html" class="md-nav__link">
1504
- Computed Fields
1540
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1541
+ Circuit Type
1505
1542
  </a>
1506
1543
  </li>
1507
1544
 
@@ -1514,8 +1551,8 @@
1514
1551
 
1515
1552
 
1516
1553
  <li class="md-nav__item">
1517
- <a href="../additional-features/config-contexts.html" class="md-nav__link">
1518
- Context Data
1554
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1555
+ Circuit Provider
1519
1556
  </a>
1520
1557
  </li>
1521
1558
 
@@ -1528,22 +1565,56 @@
1528
1565
 
1529
1566
 
1530
1567
  <li class="md-nav__item">
1531
- <a href="../models/extras/customfield.html" class="md-nav__link">
1532
- Custom Fields
1568
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1569
+ Circuit Provider Network
1533
1570
  </a>
1534
1571
  </li>
1535
1572
 
1536
1573
 
1537
1574
 
1538
1575
 
1576
+ </ul>
1577
+ </nav>
1578
+ </li>
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+ <li class="md-nav__item md-nav__item--nested">
1590
+
1591
+
1592
+
1593
+
1594
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1595
+
1596
+
1597
+
1598
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1599
+ DCIM
1600
+ <span class="md-nav__icon md-icon"></span>
1601
+ </label>
1602
+
1603
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1604
+ <label class="md-nav__title" for="__nav_2_8_2">
1605
+ <span class="md-nav__icon md-icon"></span>
1606
+ DCIM
1607
+ </label>
1608
+ <ul class="md-nav__list" data-md-scrollfix>
1609
+
1539
1610
 
1540
1611
 
1541
1612
 
1542
1613
 
1543
1614
 
1544
1615
  <li class="md-nav__item">
1545
- <a href="../models/extras/customlink.html" class="md-nav__link">
1546
- Custom Links
1616
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1617
+ Cable
1547
1618
  </a>
1548
1619
  </li>
1549
1620
 
@@ -1556,8 +1627,8 @@
1556
1627
 
1557
1628
 
1558
1629
  <li class="md-nav__item">
1559
- <a href="../models/extras/dynamicgroup.html" class="md-nav__link">
1560
- Dynamic Groups
1630
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1631
+ Console Port
1561
1632
  </a>
1562
1633
  </li>
1563
1634
 
@@ -1570,8 +1641,8 @@
1570
1641
 
1571
1642
 
1572
1643
  <li class="md-nav__item">
1573
- <a href="../models/extras/exporttemplate.html" class="md-nav__link">
1574
- Export Templates
1644
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1645
+ Console Port Template
1575
1646
  </a>
1576
1647
  </li>
1577
1648
 
@@ -1584,8 +1655,8 @@
1584
1655
 
1585
1656
 
1586
1657
  <li class="md-nav__item">
1587
- <a href="../models/extras/gitrepository.html" class="md-nav__link">
1588
- Git Repositories
1658
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1659
+ Console Server Port
1589
1660
  </a>
1590
1661
  </li>
1591
1662
 
@@ -1598,8 +1669,8 @@
1598
1669
 
1599
1670
 
1600
1671
  <li class="md-nav__item">
1601
- <a href="../additional-features/healthcheck.html" class="md-nav__link">
1602
- Health Check
1672
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1673
+ Console Server Port Template
1603
1674
  </a>
1604
1675
  </li>
1605
1676
 
@@ -1612,8 +1683,8 @@
1612
1683
 
1613
1684
 
1614
1685
  <li class="md-nav__item">
1615
- <a href="../additional-features/jobs.html" class="md-nav__link">
1616
- Jobs
1686
+ <a href="../models/dcim/device.html" class="md-nav__link">
1687
+ Device
1617
1688
  </a>
1618
1689
  </li>
1619
1690
 
@@ -1626,8 +1697,8 @@
1626
1697
 
1627
1698
 
1628
1699
  <li class="md-nav__item">
1629
- <a href="../models/extras/jobbutton.html" class="md-nav__link">
1630
- Job Buttons
1700
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1701
+ Device Bay
1631
1702
  </a>
1632
1703
  </li>
1633
1704
 
@@ -1640,8 +1711,8 @@
1640
1711
 
1641
1712
 
1642
1713
  <li class="md-nav__item">
1643
- <a href="../models/extras/jobhook.html" class="md-nav__link">
1644
- Job Hooks
1714
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1715
+ Device Bay Template
1645
1716
  </a>
1646
1717
  </li>
1647
1718
 
@@ -1654,8 +1725,8 @@
1654
1725
 
1655
1726
 
1656
1727
  <li class="md-nav__item">
1657
- <a href="../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
1658
- Job Scheduling and Approvals
1728
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1729
+ Device Redundancy Group
1659
1730
  </a>
1660
1731
  </li>
1661
1732
 
@@ -1668,8 +1739,8 @@
1668
1739
 
1669
1740
 
1670
1741
  <li class="md-nav__item">
1671
- <a href="../additional-features/napalm.html" class="md-nav__link">
1672
- NAPALM
1742
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1743
+ Device Type
1673
1744
  </a>
1674
1745
  </li>
1675
1746
 
@@ -1682,8 +1753,8 @@
1682
1753
 
1683
1754
 
1684
1755
  <li class="md-nav__item">
1685
- <a href="../models/extras/note.html" class="md-nav__link">
1686
- Notes
1756
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1757
+ Front Port
1687
1758
  </a>
1688
1759
  </li>
1689
1760
 
@@ -1696,8 +1767,8 @@
1696
1767
 
1697
1768
 
1698
1769
  <li class="md-nav__item">
1699
- <a href="../additional-features/prometheus-metrics.html" class="md-nav__link">
1700
- Prometheus Metrics
1770
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1771
+ Front Port Template
1701
1772
  </a>
1702
1773
  </li>
1703
1774
 
@@ -1710,8 +1781,8 @@
1710
1781
 
1711
1782
 
1712
1783
  <li class="md-nav__item">
1713
- <a href="../models/extras/relationship.html" class="md-nav__link">
1714
- Relationships
1784
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1785
+ Interface
1715
1786
  </a>
1716
1787
  </li>
1717
1788
 
@@ -1724,8 +1795,8 @@
1724
1795
 
1725
1796
 
1726
1797
  <li class="md-nav__item">
1727
- <a href="../models/extras/status.html" class="md-nav__link">
1728
- Statuses
1798
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1799
+ Interface Template
1729
1800
  </a>
1730
1801
  </li>
1731
1802
 
@@ -1738,8 +1809,8 @@
1738
1809
 
1739
1810
 
1740
1811
  <li class="md-nav__item">
1741
- <a href="../models/extras/tag.html" class="md-nav__link">
1742
- Tags
1812
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1813
+ Inventory Item
1743
1814
  </a>
1744
1815
  </li>
1745
1816
 
@@ -1752,8 +1823,8 @@
1752
1823
 
1753
1824
 
1754
1825
  <li class="md-nav__item">
1755
- <a href="../additional-features/template-filters.html" class="md-nav__link">
1756
- Template Filters
1826
+ <a href="../models/dcim/location.html" class="md-nav__link">
1827
+ Location
1757
1828
  </a>
1758
1829
  </li>
1759
1830
 
@@ -1766,16 +1837,23 @@
1766
1837
 
1767
1838
 
1768
1839
  <li class="md-nav__item">
1769
- <a href="../models/extras/webhook.html" class="md-nav__link">
1770
- Webhooks
1840
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1841
+ Location Type
1771
1842
  </a>
1772
1843
  </li>
1773
1844
 
1774
1845
 
1775
1846
 
1776
1847
 
1777
- </ul>
1778
- </nav>
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+ <li class="md-nav__item">
1854
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1855
+ Manufacturer
1856
+ </a>
1779
1857
  </li>
1780
1858
 
1781
1859
 
@@ -1786,26 +1864,14 @@
1786
1864
 
1787
1865
 
1788
1866
 
1789
-
1790
- <li class="md-nav__item md-nav__item--nested">
1791
-
1792
-
1793
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
1794
-
1795
-
1796
-
1797
-
1798
- <label class="md-nav__link" for="__nav_2_9">
1799
- REST API
1800
- <span class="md-nav__icon md-icon"></span>
1801
- </label>
1802
-
1803
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
1804
- <label class="md-nav__title" for="__nav_2_9">
1805
- <span class="md-nav__icon md-icon"></span>
1806
- REST API
1807
- </label>
1808
- <ul class="md-nav__list" data-md-scrollfix>
1867
+ <li class="md-nav__item">
1868
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1869
+ Platform
1870
+ </a>
1871
+ </li>
1872
+
1873
+
1874
+
1809
1875
 
1810
1876
 
1811
1877
 
@@ -1813,8 +1879,8 @@
1813
1879
 
1814
1880
 
1815
1881
  <li class="md-nav__item">
1816
- <a href="../rest-api/overview.html" class="md-nav__link">
1817
- Overview
1882
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1883
+ Power Feed
1818
1884
  </a>
1819
1885
  </li>
1820
1886
 
@@ -1827,8 +1893,8 @@
1827
1893
 
1828
1894
 
1829
1895
  <li class="md-nav__item">
1830
- <a href="../rest-api/filtering.html" class="md-nav__link">
1831
- Filtering
1896
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1897
+ Power Outlet
1832
1898
  </a>
1833
1899
  </li>
1834
1900
 
@@ -1841,16 +1907,23 @@
1841
1907
 
1842
1908
 
1843
1909
  <li class="md-nav__item">
1844
- <a href="../rest-api/authentication.html" class="md-nav__link">
1845
- Authentication
1910
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
1911
+ Power Outlet Template
1846
1912
  </a>
1847
1913
  </li>
1848
1914
 
1849
1915
 
1850
1916
 
1851
1917
 
1852
- </ul>
1853
- </nav>
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+ <li class="md-nav__item">
1924
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
1925
+ Power Panel
1926
+ </a>
1854
1927
  </li>
1855
1928
 
1856
1929
 
@@ -1861,26 +1934,14 @@
1861
1934
 
1862
1935
 
1863
1936
 
1864
-
1865
- <li class="md-nav__item md-nav__item--nested">
1866
-
1867
-
1868
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
1869
-
1870
-
1871
-
1872
-
1873
- <label class="md-nav__link" for="__nav_2_10">
1874
- GraphQL API
1875
- <span class="md-nav__icon md-icon"></span>
1876
- </label>
1877
-
1878
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
1879
- <label class="md-nav__title" for="__nav_2_10">
1880
- <span class="md-nav__icon md-icon"></span>
1881
- GraphQL API
1882
- </label>
1883
- <ul class="md-nav__list" data-md-scrollfix>
1937
+ <li class="md-nav__item">
1938
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
1939
+ Power Port
1940
+ </a>
1941
+ </li>
1942
+
1943
+
1944
+
1884
1945
 
1885
1946
 
1886
1947
 
@@ -1888,16 +1949,23 @@
1888
1949
 
1889
1950
 
1890
1951
  <li class="md-nav__item">
1891
- <a href="../additional-features/graphql.html" class="md-nav__link">
1892
- Overview
1952
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
1953
+ Power Port Template
1893
1954
  </a>
1894
1955
  </li>
1895
1956
 
1896
1957
 
1897
1958
 
1898
1959
 
1899
- </ul>
1900
- </nav>
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+ <li class="md-nav__item">
1966
+ <a href="../models/dcim/rack.html" class="md-nav__link">
1967
+ Rack
1968
+ </a>
1901
1969
  </li>
1902
1970
 
1903
1971
 
@@ -1909,47 +1977,41 @@
1909
1977
 
1910
1978
 
1911
1979
  <li class="md-nav__item">
1912
- <a href="../plugins/index.html" class="md-nav__link">
1913
- Installing and Using Plugins
1980
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
1981
+ Rack Group
1914
1982
  </a>
1915
1983
  </li>
1916
1984
 
1917
1985
 
1918
1986
 
1919
1987
 
1920
- </ul>
1921
- </nav>
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+ <li class="md-nav__item">
1994
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
1995
+ Rack Reservation
1996
+ </a>
1922
1997
  </li>
1923
1998
 
1924
1999
 
1925
-
1926
-
1927
-
1928
-
1929
-
2000
+
2001
+
2002
+
2003
+
1930
2004
 
1931
2005
 
1932
2006
 
1933
-
1934
- <li class="md-nav__item md-nav__item--nested">
1935
-
1936
-
1937
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
1938
-
1939
-
1940
-
1941
-
1942
- <label class="md-nav__link" for="__nav_3">
1943
- App Developer Guide
1944
- <span class="md-nav__icon md-icon"></span>
1945
- </label>
1946
-
1947
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
1948
- <label class="md-nav__title" for="__nav_3">
1949
- <span class="md-nav__icon md-icon"></span>
1950
- App Developer Guide
1951
- </label>
1952
- <ul class="md-nav__list" data-md-scrollfix>
2007
+ <li class="md-nav__item">
2008
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2009
+ Rear Port
2010
+ </a>
2011
+ </li>
2012
+
2013
+
2014
+
1953
2015
 
1954
2016
 
1955
2017
 
@@ -1957,8 +2019,8 @@
1957
2019
 
1958
2020
 
1959
2021
  <li class="md-nav__item">
1960
- <a href="../plugins/development.html" class="md-nav__link">
1961
- Developing Apps
2022
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2023
+ Rear Port Template
1962
2024
  </a>
1963
2025
  </li>
1964
2026
 
@@ -1971,14 +2033,21 @@
1971
2033
 
1972
2034
 
1973
2035
  <li class="md-nav__item">
1974
- <a href="../plugins/porting-from-netbox.html" class="md-nav__link">
1975
- Porting NetBox Plugins to Nautobot
2036
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2037
+ Virtual Chassis
1976
2038
  </a>
1977
2039
  </li>
1978
2040
 
1979
2041
 
1980
2042
 
1981
2043
 
2044
+ </ul>
2045
+ </nav>
2046
+ </li>
2047
+
2048
+
2049
+
2050
+
1982
2051
 
1983
2052
 
1984
2053
 
@@ -1988,20 +2057,21 @@
1988
2057
  <li class="md-nav__item md-nav__item--nested">
1989
2058
 
1990
2059
 
1991
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
1992
2060
 
1993
2061
 
2062
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
1994
2063
 
1995
2064
 
1996
- <label class="md-nav__link" for="__nav_3_3">
1997
- Code Reference
2065
+
2066
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2067
+ Extras
1998
2068
  <span class="md-nav__icon md-icon"></span>
1999
2069
  </label>
2000
2070
 
2001
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
2002
- <label class="md-nav__title" for="__nav_3_3">
2071
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2072
+ <label class="md-nav__title" for="__nav_2_8_3">
2003
2073
  <span class="md-nav__icon md-icon"></span>
2004
- Code Reference
2074
+ Extras
2005
2075
  </label>
2006
2076
  <ul class="md-nav__list" data-md-scrollfix>
2007
2077
 
@@ -2011,8 +2081,8 @@
2011
2081
 
2012
2082
 
2013
2083
  <li class="md-nav__item">
2014
- <a href="../code-reference/nautobot/apps/__init__.html" class="md-nav__link">
2015
- nautobot.apps
2084
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2085
+ Config Context
2016
2086
  </a>
2017
2087
  </li>
2018
2088
 
@@ -2025,8 +2095,1120 @@
2025
2095
 
2026
2096
 
2027
2097
  <li class="md-nav__item">
2028
- <a href="../code-reference/nautobot/apps/admin.html" class="md-nav__link">
2029
- nautobot.apps.admin
2098
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2099
+ Config Context Schema
2100
+ </a>
2101
+ </li>
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+ <li class="md-nav__item">
2112
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2113
+ GraphQL Query
2114
+ </a>
2115
+ </li>
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+ <li class="md-nav__item">
2126
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2127
+ Image Attachment
2128
+ </a>
2129
+ </li>
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+ <li class="md-nav__item">
2140
+ <a href="../models/extras/job.html" class="md-nav__link">
2141
+ Job
2142
+ </a>
2143
+ </li>
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+ <li class="md-nav__item">
2154
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2155
+ Job Log Entry
2156
+ </a>
2157
+ </li>
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+ <li class="md-nav__item">
2168
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2169
+ Job Result
2170
+ </a>
2171
+ </li>
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+ <li class="md-nav__item">
2182
+ <a href="../models/extras/role.html" class="md-nav__link">
2183
+ Role
2184
+ </a>
2185
+ </li>
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+ <li class="md-nav__item">
2196
+ <a href="../models/extras/secret.html" class="md-nav__link">
2197
+ Secret
2198
+ </a>
2199
+ </li>
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+ <li class="md-nav__item">
2210
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2211
+ Secrets group
2212
+ </a>
2213
+ </li>
2214
+
2215
+
2216
+
2217
+
2218
+ </ul>
2219
+ </nav>
2220
+ </li>
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+ <li class="md-nav__item md-nav__item--nested">
2232
+
2233
+
2234
+
2235
+
2236
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2237
+
2238
+
2239
+
2240
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2241
+ IPAM
2242
+ <span class="md-nav__icon md-icon"></span>
2243
+ </label>
2244
+
2245
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2246
+ <label class="md-nav__title" for="__nav_2_8_4">
2247
+ <span class="md-nav__icon md-icon"></span>
2248
+ IPAM
2249
+ </label>
2250
+ <ul class="md-nav__list" data-md-scrollfix>
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+ <li class="md-nav__item">
2258
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2259
+ IP Address
2260
+ </a>
2261
+ </li>
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+ <li class="md-nav__item">
2272
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2273
+ Prefix
2274
+ </a>
2275
+ </li>
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+ <li class="md-nav__item">
2286
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2287
+ Rir
2288
+ </a>
2289
+ </li>
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+ <li class="md-nav__item">
2300
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2301
+ Route Target
2302
+ </a>
2303
+ </li>
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+ <li class="md-nav__item">
2314
+ <a href="../models/ipam/service.html" class="md-nav__link">
2315
+ Service
2316
+ </a>
2317
+ </li>
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+ <li class="md-nav__item">
2328
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2329
+ VLAN
2330
+ </a>
2331
+ </li>
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+ <li class="md-nav__item">
2342
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2343
+ VLAN Group
2344
+ </a>
2345
+ </li>
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+ <li class="md-nav__item">
2356
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2357
+ VRF
2358
+ </a>
2359
+ </li>
2360
+
2361
+
2362
+
2363
+
2364
+ </ul>
2365
+ </nav>
2366
+ </li>
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+ <li class="md-nav__item md-nav__item--nested">
2378
+
2379
+
2380
+
2381
+
2382
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
2383
+
2384
+
2385
+
2386
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2387
+ Tenancy
2388
+ <span class="md-nav__icon md-icon"></span>
2389
+ </label>
2390
+
2391
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2392
+ <label class="md-nav__title" for="__nav_2_8_5">
2393
+ <span class="md-nav__icon md-icon"></span>
2394
+ Tenancy
2395
+ </label>
2396
+ <ul class="md-nav__list" data-md-scrollfix>
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+ <li class="md-nav__item">
2404
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2405
+ Tenant
2406
+ </a>
2407
+ </li>
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+
2417
+ <li class="md-nav__item">
2418
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2419
+ Tenant Group
2420
+ </a>
2421
+ </li>
2422
+
2423
+
2424
+
2425
+
2426
+ </ul>
2427
+ </nav>
2428
+ </li>
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+ <li class="md-nav__item md-nav__item--nested">
2440
+
2441
+
2442
+
2443
+
2444
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2445
+
2446
+
2447
+
2448
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2449
+ Users
2450
+ <span class="md-nav__icon md-icon"></span>
2451
+ </label>
2452
+
2453
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2454
+ <label class="md-nav__title" for="__nav_2_8_6">
2455
+ <span class="md-nav__icon md-icon"></span>
2456
+ Users
2457
+ </label>
2458
+ <ul class="md-nav__list" data-md-scrollfix>
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+ <li class="md-nav__item">
2466
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2467
+ Object Permission
2468
+ </a>
2469
+ </li>
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+ <li class="md-nav__item">
2480
+ <a href="../models/users/token.html" class="md-nav__link">
2481
+ Token
2482
+ </a>
2483
+ </li>
2484
+
2485
+
2486
+
2487
+
2488
+ </ul>
2489
+ </nav>
2490
+ </li>
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+ <li class="md-nav__item md-nav__item--nested">
2502
+
2503
+
2504
+
2505
+
2506
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2507
+
2508
+
2509
+
2510
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2511
+ Virtualization
2512
+ <span class="md-nav__icon md-icon"></span>
2513
+ </label>
2514
+
2515
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2516
+ <label class="md-nav__title" for="__nav_2_8_7">
2517
+ <span class="md-nav__icon md-icon"></span>
2518
+ Virtualization
2519
+ </label>
2520
+ <ul class="md-nav__list" data-md-scrollfix>
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+ <li class="md-nav__item">
2528
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2529
+ Cluster
2530
+ </a>
2531
+ </li>
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+ <li class="md-nav__item">
2542
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2543
+ Cluster Group
2544
+ </a>
2545
+ </li>
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+ <li class="md-nav__item">
2556
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2557
+ Cluster Type
2558
+ </a>
2559
+ </li>
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+ <li class="md-nav__item">
2570
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2571
+ Virtual Machine
2572
+ </a>
2573
+ </li>
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+ <li class="md-nav__item">
2584
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2585
+ VM Interface
2586
+ </a>
2587
+ </li>
2588
+
2589
+
2590
+
2591
+
2592
+ </ul>
2593
+ </nav>
2594
+ </li>
2595
+
2596
+
2597
+
2598
+
2599
+ </ul>
2600
+ </nav>
2601
+ </li>
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+ <li class="md-nav__item md-nav__item--nested">
2613
+
2614
+
2615
+
2616
+
2617
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2618
+
2619
+
2620
+
2621
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2622
+ Additional Features
2623
+ <span class="md-nav__icon md-icon"></span>
2624
+ </label>
2625
+
2626
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2627
+ <label class="md-nav__title" for="__nav_2_9">
2628
+ <span class="md-nav__icon md-icon"></span>
2629
+ Additional Features
2630
+ </label>
2631
+ <ul class="md-nav__list" data-md-scrollfix>
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+ <li class="md-nav__item">
2639
+ <a href="../additional-features/caching.html" class="md-nav__link">
2640
+ Caching
2641
+ </a>
2642
+ </li>
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+ <li class="md-nav__item">
2653
+ <a href="../additional-features/change-logging.html" class="md-nav__link">
2654
+ Change Logging
2655
+ </a>
2656
+ </li>
2657
+
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+ <li class="md-nav__item">
2667
+ <a href="../models/extras/computedfield.html" class="md-nav__link">
2668
+ Computed Fields
2669
+ </a>
2670
+ </li>
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+ <li class="md-nav__item">
2681
+ <a href="../additional-features/config-contexts.html" class="md-nav__link">
2682
+ Context Data
2683
+ </a>
2684
+ </li>
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+ <li class="md-nav__item">
2695
+ <a href="../models/extras/customfield.html" class="md-nav__link">
2696
+ Custom Fields
2697
+ </a>
2698
+ </li>
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+ <li class="md-nav__item">
2709
+ <a href="../models/extras/customlink.html" class="md-nav__link">
2710
+ Custom Links
2711
+ </a>
2712
+ </li>
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+ <li class="md-nav__item">
2723
+ <a href="../models/extras/dynamicgroup.html" class="md-nav__link">
2724
+ Dynamic Groups
2725
+ </a>
2726
+ </li>
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+ <li class="md-nav__item">
2737
+ <a href="../models/extras/exporttemplate.html" class="md-nav__link">
2738
+ Export Templates
2739
+ </a>
2740
+ </li>
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+ <li class="md-nav__item">
2751
+ <a href="../models/extras/gitrepository.html" class="md-nav__link">
2752
+ Git Repositories
2753
+ </a>
2754
+ </li>
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+ <li class="md-nav__item">
2765
+ <a href="../additional-features/healthcheck.html" class="md-nav__link">
2766
+ Health Check
2767
+ </a>
2768
+ </li>
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+ <li class="md-nav__item">
2779
+ <a href="../additional-features/jobs.html" class="md-nav__link">
2780
+ Jobs
2781
+ </a>
2782
+ </li>
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+ <li class="md-nav__item">
2793
+ <a href="../models/extras/jobbutton.html" class="md-nav__link">
2794
+ Job Buttons
2795
+ </a>
2796
+ </li>
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+ <li class="md-nav__item">
2807
+ <a href="../models/extras/jobhook.html" class="md-nav__link">
2808
+ Job Hooks
2809
+ </a>
2810
+ </li>
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+ <li class="md-nav__item">
2821
+ <a href="../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
2822
+ Job Scheduling and Approvals
2823
+ </a>
2824
+ </li>
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+ <li class="md-nav__item">
2835
+ <a href="../additional-features/napalm.html" class="md-nav__link">
2836
+ NAPALM
2837
+ </a>
2838
+ </li>
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+ <li class="md-nav__item">
2849
+ <a href="../models/extras/note.html" class="md-nav__link">
2850
+ Notes
2851
+ </a>
2852
+ </li>
2853
+
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+ <li class="md-nav__item">
2863
+ <a href="../additional-features/prometheus-metrics.html" class="md-nav__link">
2864
+ Prometheus Metrics
2865
+ </a>
2866
+ </li>
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+ <li class="md-nav__item">
2877
+ <a href="../models/extras/relationship.html" class="md-nav__link">
2878
+ Relationships
2879
+ </a>
2880
+ </li>
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+ <li class="md-nav__item">
2891
+ <a href="../models/extras/status.html" class="md-nav__link">
2892
+ Statuses
2893
+ </a>
2894
+ </li>
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+ <li class="md-nav__item">
2905
+ <a href="../models/extras/tag.html" class="md-nav__link">
2906
+ Tags
2907
+ </a>
2908
+ </li>
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+ <li class="md-nav__item">
2919
+ <a href="../additional-features/template-filters.html" class="md-nav__link">
2920
+ Template Filters
2921
+ </a>
2922
+ </li>
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+ <li class="md-nav__item">
2933
+ <a href="../models/extras/webhook.html" class="md-nav__link">
2934
+ Webhooks
2935
+ </a>
2936
+ </li>
2937
+
2938
+
2939
+
2940
+
2941
+ </ul>
2942
+ </nav>
2943
+ </li>
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+ <li class="md-nav__item md-nav__item--nested">
2955
+
2956
+
2957
+
2958
+
2959
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2960
+
2961
+
2962
+
2963
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2964
+ REST API
2965
+ <span class="md-nav__icon md-icon"></span>
2966
+ </label>
2967
+
2968
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2969
+ <label class="md-nav__title" for="__nav_2_10">
2970
+ <span class="md-nav__icon md-icon"></span>
2971
+ REST API
2972
+ </label>
2973
+ <ul class="md-nav__list" data-md-scrollfix>
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+ <li class="md-nav__item">
2981
+ <a href="../rest-api/overview.html" class="md-nav__link">
2982
+ Overview
2983
+ </a>
2984
+ </li>
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+ <li class="md-nav__item">
2995
+ <a href="../rest-api/filtering.html" class="md-nav__link">
2996
+ Filtering
2997
+ </a>
2998
+ </li>
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+ <li class="md-nav__item">
3009
+ <a href="../rest-api/authentication.html" class="md-nav__link">
3010
+ Authentication
3011
+ </a>
3012
+ </li>
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+
3020
+
3021
+
3022
+ <li class="md-nav__item">
3023
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3024
+ UI Endpoints
3025
+ </a>
3026
+ </li>
3027
+
3028
+
3029
+
3030
+
3031
+ </ul>
3032
+ </nav>
3033
+ </li>
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+ <li class="md-nav__item md-nav__item--nested">
3045
+
3046
+
3047
+
3048
+
3049
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
3050
+
3051
+
3052
+
3053
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
3054
+ GraphQL API
3055
+ <span class="md-nav__icon md-icon"></span>
3056
+ </label>
3057
+
3058
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3059
+ <label class="md-nav__title" for="__nav_2_11">
3060
+ <span class="md-nav__icon md-icon"></span>
3061
+ GraphQL API
3062
+ </label>
3063
+ <ul class="md-nav__list" data-md-scrollfix>
3064
+
3065
+
3066
+
3067
+
3068
+
3069
+
3070
+ <li class="md-nav__item">
3071
+ <a href="../additional-features/graphql.html" class="md-nav__link">
3072
+ Overview
3073
+ </a>
3074
+ </li>
3075
+
3076
+
3077
+
3078
+
3079
+ </ul>
3080
+ </nav>
3081
+ </li>
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+ <li class="md-nav__item">
3092
+ <a href="../plugins/index.html" class="md-nav__link">
3093
+ Installing and Using Plugins
3094
+ </a>
3095
+ </li>
3096
+
3097
+
3098
+
3099
+
3100
+ </ul>
3101
+ </nav>
3102
+ </li>
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+ <li class="md-nav__item md-nav__item--nested">
3115
+
3116
+
3117
+
3118
+
3119
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
3120
+
3121
+
3122
+
3123
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
3124
+ App Developer Guide
3125
+ <span class="md-nav__icon md-icon"></span>
3126
+ </label>
3127
+
3128
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
3129
+ <label class="md-nav__title" for="__nav_3">
3130
+ <span class="md-nav__icon md-icon"></span>
3131
+ App Developer Guide
3132
+ </label>
3133
+ <ul class="md-nav__list" data-md-scrollfix>
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+ <li class="md-nav__item">
3141
+ <a href="../plugins/development.html" class="md-nav__link">
3142
+ Developing Apps
3143
+ </a>
3144
+ </li>
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+ <li class="md-nav__item">
3155
+ <a href="../plugins/porting-from-netbox.html" class="md-nav__link">
3156
+ Porting NetBox Plugins to Nautobot
3157
+ </a>
3158
+ </li>
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+ <li class="md-nav__item md-nav__item--nested">
3170
+
3171
+
3172
+
3173
+
3174
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
3175
+
3176
+
3177
+
3178
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
3179
+ Code Reference
3180
+ <span class="md-nav__icon md-icon"></span>
3181
+ </label>
3182
+
3183
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
3184
+ <label class="md-nav__title" for="__nav_3_3">
3185
+ <span class="md-nav__icon md-icon"></span>
3186
+ Code Reference
3187
+ </label>
3188
+ <ul class="md-nav__list" data-md-scrollfix>
3189
+
3190
+
3191
+
3192
+
3193
+
3194
+
3195
+ <li class="md-nav__item">
3196
+ <a href="../code-reference/nautobot/apps/__init__.html" class="md-nav__link">
3197
+ nautobot.apps
3198
+ </a>
3199
+ </li>
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+ <li class="md-nav__item">
3210
+ <a href="../code-reference/nautobot/apps/admin.html" class="md-nav__link">
3211
+ nautobot.apps.admin
2030
3212
  </a>
2031
3213
  </li>
2032
3214
 
@@ -2225,17 +3407,18 @@
2225
3407
  <li class="md-nav__item md-nav__item--nested">
2226
3408
 
2227
3409
 
2228
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2229
3410
 
2230
3411
 
3412
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
2231
3413
 
2232
3414
 
2233
- <label class="md-nav__link" for="__nav_4">
3415
+
3416
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2234
3417
  Core Developer Guide
2235
3418
  <span class="md-nav__icon md-icon"></span>
2236
3419
  </label>
2237
3420
 
2238
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3421
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2239
3422
  <label class="md-nav__title" for="__nav_4">
2240
3423
  <span class="md-nav__icon md-icon"></span>
2241
3424
  Core Developer Guide
@@ -2469,17 +3652,18 @@
2469
3652
  <li class="md-nav__item md-nav__item--nested">
2470
3653
 
2471
3654
 
2472
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
2473
3655
 
2474
3656
 
3657
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
3658
+
2475
3659
 
2476
3660
 
2477
- <label class="md-nav__link" for="__nav_5">
3661
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
2478
3662
  Release Notes
2479
3663
  <span class="md-nav__icon md-icon"></span>
2480
3664
  </label>
2481
3665
 
2482
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
3666
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
2483
3667
  <label class="md-nav__title" for="__nav_5">
2484
3668
  <span class="md-nav__icon md-icon"></span>
2485
3669
  Release Notes
@@ -2615,17 +3799,18 @@
2615
3799
  <li class="md-nav__item md-nav__item--nested">
2616
3800
 
2617
3801
 
2618
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2619
3802
 
2620
3803
 
3804
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
2621
3805
 
2622
3806
 
2623
- <label class="md-nav__link" for="__nav_6">
3807
+
3808
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
2624
3809
  Nautobot Apps
2625
3810
  <span class="md-nav__icon md-icon"></span>
2626
3811
  </label>
2627
3812
 
2628
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
3813
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
2629
3814
  <label class="md-nav__title" for="__nav_6">
2630
3815
  <span class="md-nav__icon md-icon"></span>
2631
3816
  Nautobot Apps
@@ -2655,17 +3840,18 @@
2655
3840
  <li class="md-nav__item md-nav__item--nested">
2656
3841
 
2657
3842
 
2658
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2659
3843
 
2660
3844
 
3845
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
3846
+
2661
3847
 
2662
3848
 
2663
- <label class="md-nav__link" for="__nav_6_2">
3849
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2664
3850
  Network to Code App Docs
2665
3851
  <span class="md-nav__icon md-icon"></span>
2666
3852
  </label>
2667
3853
 
2668
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
3854
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
2669
3855
  <label class="md-nav__title" for="__nav_6_2">
2670
3856
  <span class="md-nav__icon md-icon"></span>
2671
3857
  Network to Code App Docs
@@ -2692,8 +3878,8 @@
2692
3878
 
2693
3879
 
2694
3880
  <li class="md-nav__item">
2695
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
2696
- Nautobot Firewall Models
3881
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
3882
+ Nautobot Circuit Maintenance
2697
3883
  </a>
2698
3884
  </li>
2699
3885
 
@@ -2706,8 +3892,36 @@
2706
3892
 
2707
3893
 
2708
3894
  <li class="md-nav__item">
2709
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
2710
- Nautobot Plugin Nornir
3895
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
3896
+ Nautobot Device LifeCycle Management
3897
+ </a>
3898
+ </li>
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+ <li class="md-nav__item">
3909
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
3910
+ Nautobot Device Onboarding
3911
+ </a>
3912
+ </li>
3913
+
3914
+
3915
+
3916
+
3917
+
3918
+
3919
+
3920
+
3921
+
3922
+ <li class="md-nav__item">
3923
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
3924
+ Nautobot Firewall Models
2711
3925
  </a>
2712
3926
  </li>
2713
3927
 
@@ -2734,7 +3948,21 @@
2734
3948
 
2735
3949
 
2736
3950
  <li class="md-nav__item">
2737
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
3951
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
3952
+ Nautobot Plugin Nornir
3953
+ </a>
3954
+ </li>
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+
3964
+ <li class="md-nav__item">
3965
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
2738
3966
  Nautobot Single Source of Truth
2739
3967
  </a>
2740
3968
  </li>
@@ -2905,10 +4133,8 @@
2905
4133
 
2906
4134
 
2907
4135
 
2908
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/core-functionality/ipam.md" title="Edit this page" class="md-content__button md-icon">
2909
-
2910
- <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>
2911
- </a>
4136
+
4137
+
2912
4138
 
2913
4139
 
2914
4140
  <h1 id="ip-address-management">IP Address Management<a class="headerlink" href="#ip-address-management" title="Permanent link">&para;</a></h1>
@@ -2998,6 +4224,10 @@
2998
4224
  <p class="admonition-title">Note</p>
2999
4225
  <p>When primary IPs are set for both IPv4 and IPv6, Nautobot will prefer IPv6. This can be changed by setting the <code>PREFER_IPV4</code> configuration parameter.</p>
3000
4226
  </div>
4227
+ <div class="admonition version-changed">
4228
+ <p class="admonition-title">Changed in version 2.0.0</p>
4229
+ <p><code>prefix_length</code> becomes <code>mask_length</code> and is intended to describe the desired subnet mask of the IP addresses when configured on interface(s).</p>
4230
+ </div>
3001
4231
  <h3 id="network-address-translation-nat">Network Address Translation (NAT)<a class="headerlink" href="#network-address-translation-nat" title="Permanent link">&para;</a></h3>
3002
4232
  <p>An IP address can be designated as the network address translation (NAT) inside IP address for one or more other IP addresses. This is useful primarily to denote a translation between public and private IP addresses. This relationship is followed in both directions: For example, if 10.0.0.1 is assigned as the inside IP for 192.0.2.1, 192.0.2.1 will be displayed as the outside IP for 10.0.0.1.</p>
3003
4233
  <div class="admonition version-added">
@@ -3013,10 +4243,6 @@
3013
4243
  <p>Each VRF is assigned a unique name and an optional route distinguisher (RD). The RD is expected to take one of the forms prescribed in <a href="https://tools.ietf.org/html/rfc4364#section-4.2">RFC 4364</a>, however its formatting is not strictly enforced.</p>
3014
4244
  <p>Each prefix and IP address may be assigned to one (and only one) VRF. If you have a prefix or IP address which exists in multiple VRFs, you will need to create a separate instance of it in Nautobot for each VRF. Any prefix or IP address not assigned to a VRF is said to belong to the "global" table.</p>
3015
4245
  <p>By default, Nautobot will allow duplicate prefixes to be assigned to a VRF. This behavior can be toggled by setting the "enforce unique" flag on the VRF model.</p>
3016
- <div class="admonition note">
3017
- <p class="admonition-title">Note</p>
3018
- <p>Enforcement of unique IP space can be toggled for global table (non-VRF prefixes) using the <code>ENFORCE_GLOBAL_UNIQUE</code> configuration setting.</p>
3019
- </div>
3020
4246
  <p>Each VRF may have one or more import and/or export route targets applied to it. Route targets are used to control the exchange of routes (prefixes) among VRFs in L3VPNs.</p>
3021
4247
  <!-- END INCLUDE -->
3022
4248
  <!-- BEGIN INCLUDE ../models/ipam/routetarget.md -->
@@ -3040,42 +4266,6 @@
3040
4266
 
3041
4267
  <footer class="md-footer">
3042
4268
 
3043
-
3044
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
3045
-
3046
-
3047
- <a href="device-types.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Device Types" rel="prev">
3048
- <div class="md-footer__button md-icon">
3049
- <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>
3050
- </div>
3051
- <div class="md-footer__title">
3052
- <div class="md-ellipsis">
3053
- <span class="md-footer__direction">
3054
- Previous
3055
- </span>
3056
- Device Types
3057
- </div>
3058
- </div>
3059
- </a>
3060
-
3061
-
3062
-
3063
- <a href="power.html" class="md-footer__link md-footer__link--next" aria-label="Next: Power Tracking" rel="next">
3064
- <div class="md-footer__title">
3065
- <div class="md-ellipsis">
3066
- <span class="md-footer__direction">
3067
- Next
3068
- </span>
3069
- Power Tracking
3070
- </div>
3071
- </div>
3072
- <div class="md-footer__button md-icon">
3073
- <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>
3074
- </div>
3075
- </a>
3076
-
3077
- </nav>
3078
-
3079
4269
  <div class="md-footer-meta md-typeset">
3080
4270
  <div class="md-footer-meta__inner md-grid">
3081
4271
  <div class="md-copyright">
@@ -3103,32 +4293,42 @@
3103
4293
 
3104
4294
 
3105
4295
 
4296
+
4297
+
3106
4298
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
3107
- <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>
4299
+ <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>
3108
4300
  </a>
3109
4301
 
3110
4302
 
3111
4303
 
4304
+
4305
+
3112
4306
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
3113
- <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>
4307
+ <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>
3114
4308
  </a>
3115
4309
 
3116
4310
 
3117
4311
 
4312
+
4313
+
3118
4314
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
3119
- <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>
4315
+ <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>
3120
4316
  </a>
3121
4317
 
3122
4318
 
3123
4319
 
4320
+
4321
+
3124
4322
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
3125
- <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>
4323
+ <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>
3126
4324
  </a>
3127
4325
 
3128
4326
 
3129
4327
 
4328
+
4329
+
3130
4330
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
3131
- <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>
4331
+ <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>
3132
4332
  </a>
3133
4333
 
3134
4334
  </div>
@@ -3142,14 +4342,13 @@
3142
4342
  <div class="md-dialog__inner md-typeset"></div>
3143
4343
  </div>
3144
4344
 
3145
- <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>
4345
+ <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>
3146
4346
 
3147
4347
 
3148
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
4348
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
3149
4349
 
3150
4350
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
3151
4351
 
3152
4352
 
3153
-
3154
4353
  </body>
3155
4354
  </html>