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/docker/index.html">
12
12
 
13
+
14
+ <link rel="prev" href="../installation/external-authentication.html">
15
+
16
+
17
+ <link rel="next" href="../installation/migrating-from-netbox.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
@@ -417,17 +419,18 @@
417
419
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
418
420
 
419
421
 
420
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" checked>
421
422
 
422
423
 
424
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" checked>
423
425
 
424
426
 
425
- <label class="md-nav__link" for="__nav_2_1">
427
+
428
+ <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
426
429
  Installation
427
430
  <span class="md-nav__icon md-icon"></span>
428
431
  </label>
429
432
 
430
- <nav class="md-nav" aria-label="Installation" data-md-level="2">
433
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="true">
431
434
  <label class="md-nav__title" for="__nav_2_1">
432
435
  <span class="md-nav__icon md-icon"></span>
433
436
  Installation
@@ -513,7 +516,7 @@
513
516
 
514
517
  <li class="md-nav__item md-nav__item--active">
515
518
 
516
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
519
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
517
520
 
518
521
 
519
522
 
@@ -719,17 +722,18 @@
719
722
  <li class="md-nav__item md-nav__item--nested">
720
723
 
721
724
 
722
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
723
725
 
724
726
 
727
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
728
+
725
729
 
726
730
 
727
- <label class="md-nav__link" for="__nav_2_2">
731
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
728
732
  Migration
729
733
  <span class="md-nav__icon md-icon"></span>
730
734
  </label>
731
735
 
732
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
736
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
733
737
  <label class="md-nav__title" for="__nav_2_2">
734
738
  <span class="md-nav__icon md-icon"></span>
735
739
  Migration
@@ -822,17 +826,18 @@
822
826
  <li class="md-nav__item md-nav__item--nested">
823
827
 
824
828
 
825
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
826
829
 
827
830
 
831
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
828
832
 
829
833
 
830
- <label class="md-nav__link" for="__nav_2_3">
834
+
835
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
831
836
  Configuration
832
837
  <span class="md-nav__icon md-icon"></span>
833
838
  </label>
834
839
 
835
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
840
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
836
841
  <label class="md-nav__title" for="__nav_2_3">
837
842
  <span class="md-nav__icon md-icon"></span>
838
843
  Configuration
@@ -897,17 +902,18 @@
897
902
  <li class="md-nav__item md-nav__item--nested">
898
903
 
899
904
 
900
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
901
905
 
902
906
 
907
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
908
+
903
909
 
904
910
 
905
- <label class="md-nav__link" for="__nav_2_4">
911
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
906
912
  External Authentication
907
913
  <span class="md-nav__icon md-icon"></span>
908
914
  </label>
909
915
 
910
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
916
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
911
917
  <label class="md-nav__title" for="__nav_2_4">
912
918
  <span class="md-nav__icon md-icon"></span>
913
919
  External Authentication
@@ -972,17 +978,18 @@
972
978
  <li class="md-nav__item md-nav__item--nested">
973
979
 
974
980
 
975
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
976
981
 
977
982
 
983
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
978
984
 
979
985
 
980
- <label class="md-nav__link" for="__nav_2_5">
986
+
987
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
981
988
  Administration
982
989
  <span class="md-nav__icon md-icon"></span>
983
990
  </label>
984
991
 
985
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
992
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
986
993
  <label class="md-nav__title" for="__nav_2_5">
987
994
  <span class="md-nav__icon md-icon"></span>
988
995
  Administration
@@ -1075,17 +1082,18 @@
1075
1082
  <li class="md-nav__item md-nav__item--nested">
1076
1083
 
1077
1084
 
1078
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
1079
1085
 
1080
1086
 
1087
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1088
+
1081
1089
 
1082
1090
 
1083
- <label class="md-nav__link" for="__nav_2_6">
1091
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1084
1092
  User Guides
1085
1093
  <span class="md-nav__icon md-icon"></span>
1086
1094
  </label>
1087
1095
 
1088
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
1096
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1089
1097
  <label class="md-nav__title" for="__nav_2_6">
1090
1098
  <span class="md-nav__icon md-icon"></span>
1091
1099
  User Guides
@@ -1098,8 +1106,1081 @@
1098
1106
 
1099
1107
 
1100
1108
  <li class="md-nav__item">
1101
- <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1102
- Creating Devices
1109
+ <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1110
+ Creating Devices
1111
+ </a>
1112
+ </li>
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+ <li class="md-nav__item">
1123
+ <a href="../user-guides/custom-fields.html" class="md-nav__link">
1124
+ Custom Fields
1125
+ </a>
1126
+ </li>
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+ <li class="md-nav__item">
1137
+ <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1138
+ Getting Started In the Web UI
1139
+ </a>
1140
+ </li>
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+ <li class="md-nav__item">
1151
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1152
+ Git as a Data Source
1153
+ </a>
1154
+ </li>
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+ <li class="md-nav__item">
1165
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1166
+ GraphQL
1167
+ </a>
1168
+ </li>
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+ <li class="md-nav__item">
1179
+ <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1180
+ Interfaces
1181
+ </a>
1182
+ </li>
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+ <li class="md-nav__item">
1193
+ <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1194
+ IP Address Management
1195
+ </a>
1196
+ </li>
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+ <li class="md-nav__item">
1207
+ <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1208
+ Platforms
1209
+ </a>
1210
+ </li>
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+ <li class="md-nav__item">
1221
+ <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1222
+ Regions
1223
+ </a>
1224
+ </li>
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+ <li class="md-nav__item">
1235
+ <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1236
+ Tenants
1237
+ </a>
1238
+ </li>
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+ <li class="md-nav__item">
1249
+ <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1250
+ The Search Bar
1251
+ </a>
1252
+ </li>
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+ <li class="md-nav__item">
1263
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1264
+ Git as a Data Source
1265
+ </a>
1266
+ </li>
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+ <li class="md-nav__item">
1277
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1278
+ GraphQL
1279
+ </a>
1280
+ </li>
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+ <li class="md-nav__item">
1291
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1292
+ Relationships
1293
+ </a>
1294
+ </li>
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+ <li class="md-nav__item">
1305
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1306
+ Django Storages with S3
1307
+ </a>
1308
+ </li>
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+ <li class="md-nav__item">
1319
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1320
+ VLANS and VLAN Groups
1321
+ </a>
1322
+ </li>
1323
+
1324
+
1325
+
1326
+
1327
+ </ul>
1328
+ </nav>
1329
+ </li>
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+ <li class="md-nav__item md-nav__item--nested">
1341
+
1342
+
1343
+
1344
+
1345
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1346
+
1347
+
1348
+
1349
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1350
+ Core Functionality
1351
+ <span class="md-nav__icon md-icon"></span>
1352
+ </label>
1353
+
1354
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1355
+ <label class="md-nav__title" for="__nav_2_7">
1356
+ <span class="md-nav__icon md-icon"></span>
1357
+ Core Functionality
1358
+ </label>
1359
+ <ul class="md-nav__list" data-md-scrollfix>
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+ <li class="md-nav__item">
1367
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1368
+ Circuits
1369
+ </a>
1370
+ </li>
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+ <li class="md-nav__item">
1381
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1382
+ Devices and Cabling
1383
+ </a>
1384
+ </li>
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+ <li class="md-nav__item">
1395
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1396
+ Device Types
1397
+ </a>
1398
+ </li>
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+ <li class="md-nav__item">
1409
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1410
+ IP Address Management
1411
+ </a>
1412
+ </li>
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+ <li class="md-nav__item">
1423
+ <a href="../core-functionality/power.html" class="md-nav__link">
1424
+ Power Tracking
1425
+ </a>
1426
+ </li>
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+ <li class="md-nav__item">
1437
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1438
+ Secrets
1439
+ </a>
1440
+ </li>
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+ <li class="md-nav__item">
1451
+ <a href="../core-functionality/services.html" class="md-nav__link">
1452
+ Service Mapping
1453
+ </a>
1454
+ </li>
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+ <li class="md-nav__item">
1465
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1466
+ Sites, Locations, and Racks
1467
+ </a>
1468
+ </li>
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+ <li class="md-nav__item">
1479
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1480
+ Tenancy
1481
+ </a>
1482
+ </li>
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+ <li class="md-nav__item">
1493
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1494
+ Virtualization
1495
+ </a>
1496
+ </li>
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+ <li class="md-nav__item">
1507
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1508
+ VLAN Management
1509
+ </a>
1510
+ </li>
1511
+
1512
+
1513
+
1514
+
1515
+ </ul>
1516
+ </nav>
1517
+ </li>
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+ <li class="md-nav__item md-nav__item--nested">
1529
+
1530
+
1531
+
1532
+
1533
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1534
+
1535
+
1536
+
1537
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1538
+ Model Details
1539
+ <span class="md-nav__icon md-icon"></span>
1540
+ </label>
1541
+
1542
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1543
+ <label class="md-nav__title" for="__nav_2_8">
1544
+ <span class="md-nav__icon md-icon"></span>
1545
+ Model Details
1546
+ </label>
1547
+ <ul class="md-nav__list" data-md-scrollfix>
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+ <li class="md-nav__item md-nav__item--nested">
1556
+
1557
+
1558
+
1559
+
1560
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1561
+
1562
+
1563
+
1564
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1565
+ Circuits
1566
+ <span class="md-nav__icon md-icon"></span>
1567
+ </label>
1568
+
1569
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1570
+ <label class="md-nav__title" for="__nav_2_8_1">
1571
+ <span class="md-nav__icon md-icon"></span>
1572
+ Circuits
1573
+ </label>
1574
+ <ul class="md-nav__list" data-md-scrollfix>
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+ <li class="md-nav__item">
1582
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1583
+ Circuit
1584
+ </a>
1585
+ </li>
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+ <li class="md-nav__item">
1596
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1597
+ Circuit Termination
1598
+ </a>
1599
+ </li>
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+ <li class="md-nav__item">
1610
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1611
+ Circuit Type
1612
+ </a>
1613
+ </li>
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+ <li class="md-nav__item">
1624
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1625
+ Circuit Provider
1626
+ </a>
1627
+ </li>
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+ <li class="md-nav__item">
1638
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1639
+ Circuit Provider Network
1640
+ </a>
1641
+ </li>
1642
+
1643
+
1644
+
1645
+
1646
+ </ul>
1647
+ </nav>
1648
+ </li>
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+ <li class="md-nav__item md-nav__item--nested">
1660
+
1661
+
1662
+
1663
+
1664
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1665
+
1666
+
1667
+
1668
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1669
+ DCIM
1670
+ <span class="md-nav__icon md-icon"></span>
1671
+ </label>
1672
+
1673
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1674
+ <label class="md-nav__title" for="__nav_2_8_2">
1675
+ <span class="md-nav__icon md-icon"></span>
1676
+ DCIM
1677
+ </label>
1678
+ <ul class="md-nav__list" data-md-scrollfix>
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+ <li class="md-nav__item">
1686
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1687
+ Cable
1688
+ </a>
1689
+ </li>
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+
1697
+
1698
+
1699
+ <li class="md-nav__item">
1700
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1701
+ Console Port
1702
+ </a>
1703
+ </li>
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+ <li class="md-nav__item">
1714
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1715
+ Console Port Template
1716
+ </a>
1717
+ </li>
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+
1727
+ <li class="md-nav__item">
1728
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1729
+ Console Server Port
1730
+ </a>
1731
+ </li>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+ <li class="md-nav__item">
1742
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1743
+ Console Server Port Template
1744
+ </a>
1745
+ </li>
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+ <li class="md-nav__item">
1756
+ <a href="../models/dcim/device.html" class="md-nav__link">
1757
+ Device
1758
+ </a>
1759
+ </li>
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+ <li class="md-nav__item">
1770
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1771
+ Device Bay
1772
+ </a>
1773
+ </li>
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+ <li class="md-nav__item">
1784
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1785
+ Device Bay Template
1786
+ </a>
1787
+ </li>
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+ <li class="md-nav__item">
1798
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1799
+ Device Redundancy Group
1800
+ </a>
1801
+ </li>
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+ <li class="md-nav__item">
1812
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1813
+ Device Type
1814
+ </a>
1815
+ </li>
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+ <li class="md-nav__item">
1826
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1827
+ Front Port
1828
+ </a>
1829
+ </li>
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+ <li class="md-nav__item">
1840
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1841
+ Front Port Template
1842
+ </a>
1843
+ </li>
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+ <li class="md-nav__item">
1854
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1855
+ Interface
1856
+ </a>
1857
+ </li>
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+ <li class="md-nav__item">
1868
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1869
+ Interface Template
1870
+ </a>
1871
+ </li>
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+ <li class="md-nav__item">
1882
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1883
+ Inventory Item
1884
+ </a>
1885
+ </li>
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+ <li class="md-nav__item">
1896
+ <a href="../models/dcim/location.html" class="md-nav__link">
1897
+ Location
1898
+ </a>
1899
+ </li>
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+ <li class="md-nav__item">
1910
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1911
+ Location Type
1912
+ </a>
1913
+ </li>
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+ <li class="md-nav__item">
1924
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1925
+ Manufacturer
1926
+ </a>
1927
+ </li>
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+ <li class="md-nav__item">
1938
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1939
+ Platform
1940
+ </a>
1941
+ </li>
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+ <li class="md-nav__item">
1952
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1953
+ Power Feed
1954
+ </a>
1955
+ </li>
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+ <li class="md-nav__item">
1966
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1967
+ Power Outlet
1968
+ </a>
1969
+ </li>
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+ <li class="md-nav__item">
1980
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
1981
+ Power Outlet Template
1982
+ </a>
1983
+ </li>
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+ <li class="md-nav__item">
1994
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
1995
+ Power Panel
1996
+ </a>
1997
+ </li>
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+ <li class="md-nav__item">
2008
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
2009
+ Power Port
2010
+ </a>
2011
+ </li>
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+ <li class="md-nav__item">
2022
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
2023
+ Power Port Template
2024
+ </a>
2025
+ </li>
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+ <li class="md-nav__item">
2036
+ <a href="../models/dcim/rack.html" class="md-nav__link">
2037
+ Rack
2038
+ </a>
2039
+ </li>
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+ <li class="md-nav__item">
2050
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
2051
+ Rack Group
2052
+ </a>
2053
+ </li>
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+
2063
+ <li class="md-nav__item">
2064
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
2065
+ Rack Reservation
2066
+ </a>
2067
+ </li>
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+ <li class="md-nav__item">
2078
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2079
+ Rear Port
2080
+ </a>
2081
+ </li>
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+ <li class="md-nav__item">
2092
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2093
+ Rear Port Template
2094
+ </a>
2095
+ </li>
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+ <li class="md-nav__item">
2106
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2107
+ Virtual Chassis
2108
+ </a>
2109
+ </li>
2110
+
2111
+
2112
+
2113
+
2114
+ </ul>
2115
+ </nav>
2116
+ </li>
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+ <li class="md-nav__item md-nav__item--nested">
2128
+
2129
+
2130
+
2131
+
2132
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
2133
+
2134
+
2135
+
2136
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2137
+ Extras
2138
+ <span class="md-nav__icon md-icon"></span>
2139
+ </label>
2140
+
2141
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2142
+ <label class="md-nav__title" for="__nav_2_8_3">
2143
+ <span class="md-nav__icon md-icon"></span>
2144
+ Extras
2145
+ </label>
2146
+ <ul class="md-nav__list" data-md-scrollfix>
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+ <li class="md-nav__item">
2154
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2155
+ Config Context
2156
+ </a>
2157
+ </li>
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+ <li class="md-nav__item">
2168
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2169
+ Config Context Schema
2170
+ </a>
2171
+ </li>
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+ <li class="md-nav__item">
2182
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2183
+ GraphQL Query
1103
2184
  </a>
1104
2185
  </li>
1105
2186
 
@@ -1112,8 +2193,8 @@
1112
2193
 
1113
2194
 
1114
2195
  <li class="md-nav__item">
1115
- <a href="../user-guides/custom-fields.html" class="md-nav__link">
1116
- Custom Fields
2196
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2197
+ Image Attachment
1117
2198
  </a>
1118
2199
  </li>
1119
2200
 
@@ -1126,8 +2207,8 @@
1126
2207
 
1127
2208
 
1128
2209
  <li class="md-nav__item">
1129
- <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1130
- Getting Started In the Web UI
2210
+ <a href="../models/extras/job.html" class="md-nav__link">
2211
+ Job
1131
2212
  </a>
1132
2213
  </li>
1133
2214
 
@@ -1140,8 +2221,8 @@
1140
2221
 
1141
2222
 
1142
2223
  <li class="md-nav__item">
1143
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1144
- Git as a Data Source
2224
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2225
+ Job Log Entry
1145
2226
  </a>
1146
2227
  </li>
1147
2228
 
@@ -1154,8 +2235,8 @@
1154
2235
 
1155
2236
 
1156
2237
  <li class="md-nav__item">
1157
- <a href="../user-guides/graphql.html" class="md-nav__link">
1158
- GraphQL
2238
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2239
+ Job Result
1159
2240
  </a>
1160
2241
  </li>
1161
2242
 
@@ -1168,8 +2249,8 @@
1168
2249
 
1169
2250
 
1170
2251
  <li class="md-nav__item">
1171
- <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1172
- Interfaces
2252
+ <a href="../models/extras/role.html" class="md-nav__link">
2253
+ Role
1173
2254
  </a>
1174
2255
  </li>
1175
2256
 
@@ -1182,8 +2263,8 @@
1182
2263
 
1183
2264
 
1184
2265
  <li class="md-nav__item">
1185
- <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1186
- IP Address Management
2266
+ <a href="../models/extras/secret.html" class="md-nav__link">
2267
+ Secret
1187
2268
  </a>
1188
2269
  </li>
1189
2270
 
@@ -1196,22 +2277,56 @@
1196
2277
 
1197
2278
 
1198
2279
  <li class="md-nav__item">
1199
- <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1200
- Platforms
2280
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2281
+ Secrets group
1201
2282
  </a>
1202
2283
  </li>
1203
2284
 
1204
2285
 
1205
2286
 
1206
2287
 
2288
+ </ul>
2289
+ </nav>
2290
+ </li>
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+ <li class="md-nav__item md-nav__item--nested">
2302
+
2303
+
2304
+
2305
+
2306
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2307
+
2308
+
2309
+
2310
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2311
+ IPAM
2312
+ <span class="md-nav__icon md-icon"></span>
2313
+ </label>
2314
+
2315
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2316
+ <label class="md-nav__title" for="__nav_2_8_4">
2317
+ <span class="md-nav__icon md-icon"></span>
2318
+ IPAM
2319
+ </label>
2320
+ <ul class="md-nav__list" data-md-scrollfix>
2321
+
1207
2322
 
1208
2323
 
1209
2324
 
1210
2325
 
1211
2326
 
1212
2327
  <li class="md-nav__item">
1213
- <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1214
- Regions
2328
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2329
+ IP Address
1215
2330
  </a>
1216
2331
  </li>
1217
2332
 
@@ -1224,8 +2339,8 @@
1224
2339
 
1225
2340
 
1226
2341
  <li class="md-nav__item">
1227
- <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1228
- Tenants
2342
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2343
+ Prefix
1229
2344
  </a>
1230
2345
  </li>
1231
2346
 
@@ -1238,8 +2353,8 @@
1238
2353
 
1239
2354
 
1240
2355
  <li class="md-nav__item">
1241
- <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1242
- The Search Bar
2356
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2357
+ Rir
1243
2358
  </a>
1244
2359
  </li>
1245
2360
 
@@ -1252,8 +2367,8 @@
1252
2367
 
1253
2368
 
1254
2369
  <li class="md-nav__item">
1255
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1256
- Git as a Data Source
2370
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2371
+ Route Target
1257
2372
  </a>
1258
2373
  </li>
1259
2374
 
@@ -1266,8 +2381,8 @@
1266
2381
 
1267
2382
 
1268
2383
  <li class="md-nav__item">
1269
- <a href="../user-guides/graphql.html" class="md-nav__link">
1270
- GraphQL
2384
+ <a href="../models/ipam/service.html" class="md-nav__link">
2385
+ Service
1271
2386
  </a>
1272
2387
  </li>
1273
2388
 
@@ -1280,8 +2395,8 @@
1280
2395
 
1281
2396
 
1282
2397
  <li class="md-nav__item">
1283
- <a href="../user-guides/relationships.html" class="md-nav__link">
1284
- Relationships
2398
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2399
+ VLAN
1285
2400
  </a>
1286
2401
  </li>
1287
2402
 
@@ -1294,8 +2409,8 @@
1294
2409
 
1295
2410
 
1296
2411
  <li class="md-nav__item">
1297
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1298
- Django Storages with S3
2412
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2413
+ VLAN Group
1299
2414
  </a>
1300
2415
  </li>
1301
2416
 
@@ -1308,8 +2423,8 @@
1308
2423
 
1309
2424
 
1310
2425
  <li class="md-nav__item">
1311
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1312
- VLANS and VLAN Groups
2426
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2427
+ VRF
1313
2428
  </a>
1314
2429
  </li>
1315
2430
 
@@ -1332,20 +2447,21 @@
1332
2447
  <li class="md-nav__item md-nav__item--nested">
1333
2448
 
1334
2449
 
1335
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" >
1336
2450
 
1337
2451
 
2452
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1338
2453
 
1339
2454
 
1340
- <label class="md-nav__link" for="__nav_2_7">
1341
- Core Functionality
2455
+
2456
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2457
+ Tenancy
1342
2458
  <span class="md-nav__icon md-icon"></span>
1343
2459
  </label>
1344
2460
 
1345
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1346
- <label class="md-nav__title" for="__nav_2_7">
2461
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2462
+ <label class="md-nav__title" for="__nav_2_8_5">
1347
2463
  <span class="md-nav__icon md-icon"></span>
1348
- Core Functionality
2464
+ Tenancy
1349
2465
  </label>
1350
2466
  <ul class="md-nav__list" data-md-scrollfix>
1351
2467
 
@@ -1355,8 +2471,8 @@
1355
2471
 
1356
2472
 
1357
2473
  <li class="md-nav__item">
1358
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1359
- Circuits
2474
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2475
+ Tenant
1360
2476
  </a>
1361
2477
  </li>
1362
2478
 
@@ -1369,27 +2485,47 @@
1369
2485
 
1370
2486
 
1371
2487
  <li class="md-nav__item">
1372
- <a href="../core-functionality/devices.html" class="md-nav__link">
1373
- Devices and Cabling
2488
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2489
+ Tenant Group
1374
2490
  </a>
1375
2491
  </li>
1376
2492
 
1377
2493
 
1378
2494
 
1379
2495
 
2496
+ </ul>
2497
+ </nav>
2498
+ </li>
2499
+
2500
+
2501
+
2502
+
1380
2503
 
1381
2504
 
1382
2505
 
1383
2506
 
1384
2507
 
1385
- <li class="md-nav__item">
1386
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1387
- Device Types
1388
- </a>
1389
- </li>
1390
-
1391
-
1392
-
2508
+
2509
+ <li class="md-nav__item md-nav__item--nested">
2510
+
2511
+
2512
+
2513
+
2514
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2515
+
2516
+
2517
+
2518
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2519
+ Users
2520
+ <span class="md-nav__icon md-icon"></span>
2521
+ </label>
2522
+
2523
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2524
+ <label class="md-nav__title" for="__nav_2_8_6">
2525
+ <span class="md-nav__icon md-icon"></span>
2526
+ Users
2527
+ </label>
2528
+ <ul class="md-nav__list" data-md-scrollfix>
1393
2529
 
1394
2530
 
1395
2531
 
@@ -1397,8 +2533,8 @@
1397
2533
 
1398
2534
 
1399
2535
  <li class="md-nav__item">
1400
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1401
- IP Address Management
2536
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2537
+ Object Permission
1402
2538
  </a>
1403
2539
  </li>
1404
2540
 
@@ -1411,27 +2547,47 @@
1411
2547
 
1412
2548
 
1413
2549
  <li class="md-nav__item">
1414
- <a href="../core-functionality/power.html" class="md-nav__link">
1415
- Power Tracking
2550
+ <a href="../models/users/token.html" class="md-nav__link">
2551
+ Token
1416
2552
  </a>
1417
2553
  </li>
1418
2554
 
1419
2555
 
1420
2556
 
1421
2557
 
2558
+ </ul>
2559
+ </nav>
2560
+ </li>
2561
+
2562
+
2563
+
2564
+
1422
2565
 
1423
2566
 
1424
2567
 
1425
2568
 
1426
2569
 
1427
- <li class="md-nav__item">
1428
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1429
- Secrets
1430
- </a>
1431
- </li>
1432
-
1433
-
1434
-
2570
+
2571
+ <li class="md-nav__item md-nav__item--nested">
2572
+
2573
+
2574
+
2575
+
2576
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2577
+
2578
+
2579
+
2580
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2581
+ Virtualization
2582
+ <span class="md-nav__icon md-icon"></span>
2583
+ </label>
2584
+
2585
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2586
+ <label class="md-nav__title" for="__nav_2_8_7">
2587
+ <span class="md-nav__icon md-icon"></span>
2588
+ Virtualization
2589
+ </label>
2590
+ <ul class="md-nav__list" data-md-scrollfix>
1435
2591
 
1436
2592
 
1437
2593
 
@@ -1439,8 +2595,8 @@
1439
2595
 
1440
2596
 
1441
2597
  <li class="md-nav__item">
1442
- <a href="../core-functionality/services.html" class="md-nav__link">
1443
- Service Mapping
2598
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2599
+ Cluster
1444
2600
  </a>
1445
2601
  </li>
1446
2602
 
@@ -1453,8 +2609,8 @@
1453
2609
 
1454
2610
 
1455
2611
  <li class="md-nav__item">
1456
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1457
- Sites, Locations, and Racks
2612
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2613
+ Cluster Group
1458
2614
  </a>
1459
2615
  </li>
1460
2616
 
@@ -1467,8 +2623,8 @@
1467
2623
 
1468
2624
 
1469
2625
  <li class="md-nav__item">
1470
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1471
- Tenancy
2626
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2627
+ Cluster Type
1472
2628
  </a>
1473
2629
  </li>
1474
2630
 
@@ -1481,8 +2637,8 @@
1481
2637
 
1482
2638
 
1483
2639
  <li class="md-nav__item">
1484
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1485
- Virtualization
2640
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2641
+ Virtual Machine
1486
2642
  </a>
1487
2643
  </li>
1488
2644
 
@@ -1495,8 +2651,8 @@
1495
2651
 
1496
2652
 
1497
2653
  <li class="md-nav__item">
1498
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1499
- VLAN Management
2654
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2655
+ VM Interface
1500
2656
  </a>
1501
2657
  </li>
1502
2658
 
@@ -1510,6 +2666,13 @@
1510
2666
 
1511
2667
 
1512
2668
 
2669
+ </ul>
2670
+ </nav>
2671
+ </li>
2672
+
2673
+
2674
+
2675
+
1513
2676
 
1514
2677
 
1515
2678
 
@@ -1519,18 +2682,19 @@
1519
2682
  <li class="md-nav__item md-nav__item--nested">
1520
2683
 
1521
2684
 
1522
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1523
2685
 
1524
2686
 
2687
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2688
+
1525
2689
 
1526
2690
 
1527
- <label class="md-nav__link" for="__nav_2_8">
2691
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1528
2692
  Additional Features
1529
2693
  <span class="md-nav__icon md-icon"></span>
1530
2694
  </label>
1531
2695
 
1532
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1533
- <label class="md-nav__title" for="__nav_2_8">
2696
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2697
+ <label class="md-nav__title" for="__nav_2_9">
1534
2698
  <span class="md-nav__icon md-icon"></span>
1535
2699
  Additional Features
1536
2700
  </label>
@@ -1860,18 +3024,19 @@
1860
3024
  <li class="md-nav__item md-nav__item--nested">
1861
3025
 
1862
3026
 
1863
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
1864
3027
 
1865
3028
 
3029
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1866
3030
 
1867
3031
 
1868
- <label class="md-nav__link" for="__nav_2_9">
3032
+
3033
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1869
3034
  REST API
1870
3035
  <span class="md-nav__icon md-icon"></span>
1871
3036
  </label>
1872
3037
 
1873
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
1874
- <label class="md-nav__title" for="__nav_2_9">
3038
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
3039
+ <label class="md-nav__title" for="__nav_2_10">
1875
3040
  <span class="md-nav__icon md-icon"></span>
1876
3041
  REST API
1877
3042
  </label>
@@ -1919,6 +3084,20 @@
1919
3084
 
1920
3085
 
1921
3086
 
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+ <li class="md-nav__item">
3093
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3094
+ UI Endpoints
3095
+ </a>
3096
+ </li>
3097
+
3098
+
3099
+
3100
+
1922
3101
  </ul>
1923
3102
  </nav>
1924
3103
  </li>
@@ -1935,18 +3114,19 @@
1935
3114
  <li class="md-nav__item md-nav__item--nested">
1936
3115
 
1937
3116
 
1938
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
1939
3117
 
1940
3118
 
3119
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
3120
+
1941
3121
 
1942
3122
 
1943
- <label class="md-nav__link" for="__nav_2_10">
3123
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1944
3124
  GraphQL API
1945
3125
  <span class="md-nav__icon md-icon"></span>
1946
3126
  </label>
1947
3127
 
1948
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
1949
- <label class="md-nav__title" for="__nav_2_10">
3128
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3129
+ <label class="md-nav__title" for="__nav_2_11">
1950
3130
  <span class="md-nav__icon md-icon"></span>
1951
3131
  GraphQL API
1952
3132
  </label>
@@ -2004,17 +3184,18 @@
2004
3184
  <li class="md-nav__item md-nav__item--nested">
2005
3185
 
2006
3186
 
2007
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
2008
3187
 
2009
3188
 
3189
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
3190
+
2010
3191
 
2011
3192
 
2012
- <label class="md-nav__link" for="__nav_3">
3193
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2013
3194
  App Developer Guide
2014
3195
  <span class="md-nav__icon md-icon"></span>
2015
3196
  </label>
2016
3197
 
2017
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
3198
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
2018
3199
  <label class="md-nav__title" for="__nav_3">
2019
3200
  <span class="md-nav__icon md-icon"></span>
2020
3201
  App Developer Guide
@@ -2058,17 +3239,18 @@
2058
3239
  <li class="md-nav__item md-nav__item--nested">
2059
3240
 
2060
3241
 
2061
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
2062
3242
 
2063
3243
 
3244
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
2064
3245
 
2065
3246
 
2066
- <label class="md-nav__link" for="__nav_3_3">
3247
+
3248
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
2067
3249
  Code Reference
2068
3250
  <span class="md-nav__icon md-icon"></span>
2069
3251
  </label>
2070
3252
 
2071
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
3253
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
2072
3254
  <label class="md-nav__title" for="__nav_3_3">
2073
3255
  <span class="md-nav__icon md-icon"></span>
2074
3256
  Code Reference
@@ -2295,17 +3477,18 @@
2295
3477
  <li class="md-nav__item md-nav__item--nested">
2296
3478
 
2297
3479
 
2298
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2299
3480
 
2300
3481
 
3482
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
3483
+
2301
3484
 
2302
3485
 
2303
- <label class="md-nav__link" for="__nav_4">
3486
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2304
3487
  Core Developer Guide
2305
3488
  <span class="md-nav__icon md-icon"></span>
2306
3489
  </label>
2307
3490
 
2308
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3491
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2309
3492
  <label class="md-nav__title" for="__nav_4">
2310
3493
  <span class="md-nav__icon md-icon"></span>
2311
3494
  Core Developer Guide
@@ -2539,17 +3722,18 @@
2539
3722
  <li class="md-nav__item md-nav__item--nested">
2540
3723
 
2541
3724
 
2542
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
2543
3725
 
2544
3726
 
3727
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
2545
3728
 
2546
3729
 
2547
- <label class="md-nav__link" for="__nav_5">
3730
+
3731
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
2548
3732
  Release Notes
2549
3733
  <span class="md-nav__icon md-icon"></span>
2550
3734
  </label>
2551
3735
 
2552
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
3736
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
2553
3737
  <label class="md-nav__title" for="__nav_5">
2554
3738
  <span class="md-nav__icon md-icon"></span>
2555
3739
  Release Notes
@@ -2685,17 +3869,18 @@
2685
3869
  <li class="md-nav__item md-nav__item--nested">
2686
3870
 
2687
3871
 
2688
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2689
3872
 
2690
3873
 
3874
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
3875
+
2691
3876
 
2692
3877
 
2693
- <label class="md-nav__link" for="__nav_6">
3878
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
2694
3879
  Nautobot Apps
2695
3880
  <span class="md-nav__icon md-icon"></span>
2696
3881
  </label>
2697
3882
 
2698
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
3883
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
2699
3884
  <label class="md-nav__title" for="__nav_6">
2700
3885
  <span class="md-nav__icon md-icon"></span>
2701
3886
  Nautobot Apps
@@ -2725,17 +3910,18 @@
2725
3910
  <li class="md-nav__item md-nav__item--nested">
2726
3911
 
2727
3912
 
2728
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2729
3913
 
2730
3914
 
3915
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
2731
3916
 
2732
3917
 
2733
- <label class="md-nav__link" for="__nav_6_2">
3918
+
3919
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2734
3920
  Network to Code App Docs
2735
3921
  <span class="md-nav__icon md-icon"></span>
2736
3922
  </label>
2737
3923
 
2738
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
3924
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
2739
3925
  <label class="md-nav__title" for="__nav_6_2">
2740
3926
  <span class="md-nav__icon md-icon"></span>
2741
3927
  Network to Code App Docs
@@ -2762,8 +3948,8 @@
2762
3948
 
2763
3949
 
2764
3950
  <li class="md-nav__item">
2765
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
2766
- Nautobot Firewall Models
3951
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
3952
+ Nautobot Circuit Maintenance
2767
3953
  </a>
2768
3954
  </li>
2769
3955
 
@@ -2776,8 +3962,36 @@
2776
3962
 
2777
3963
 
2778
3964
  <li class="md-nav__item">
2779
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
2780
- Nautobot Plugin Nornir
3965
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
3966
+ Nautobot Device LifeCycle Management
3967
+ </a>
3968
+ </li>
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+
3975
+
3976
+
3977
+
3978
+ <li class="md-nav__item">
3979
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
3980
+ Nautobot Device Onboarding
3981
+ </a>
3982
+ </li>
3983
+
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+
3992
+ <li class="md-nav__item">
3993
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
3994
+ Nautobot Firewall Models
2781
3995
  </a>
2782
3996
  </li>
2783
3997
 
@@ -2804,7 +4018,21 @@
2804
4018
 
2805
4019
 
2806
4020
  <li class="md-nav__item">
2807
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
4021
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
4022
+ Nautobot Plugin Nornir
4023
+ </a>
4024
+ </li>
4025
+
4026
+
4027
+
4028
+
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+ <li class="md-nav__item">
4035
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
2808
4036
  Nautobot Single Source of Truth
2809
4037
  </a>
2810
4038
  </li>
@@ -3045,14 +4273,16 @@
3045
4273
 
3046
4274
 
3047
4275
 
3048
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/docker/index.md" title="Edit this page" class="md-content__button md-icon">
3049
-
3050
- <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>
3051
- </a>
4276
+
4277
+
3052
4278
 
3053
4279
 
3054
4280
  <h1 id="nautobot-docker-images">Nautobot Docker Images<a class="headerlink" href="#nautobot-docker-images" title="Permanent link">&para;</a></h1>
3055
- <p>Nautobot is packaged as a Docker image for use in a production environment. The published image is based on the <code>python:3.7-slim</code> image to maintain the most compatibility with Nautobot deployments. The Docker image and deployment strategies are being actively developed, check back here or join the <strong>#nautobot</strong> channel on <a href="https://slack.networktocode.com/">Network to Code's Slack community</a> for the most up to date information.</p>
4281
+ <p>Nautobot is packaged as a Docker image for use in a production environment. The published image is based on the <code>python:3.8-slim</code> image to maintain the most compatibility with Nautobot deployments. The Docker image and deployment strategies are being actively developed, check back here or join the <strong>#nautobot</strong> channel on <a href="https://slack.networktocode.com/">Network to Code's Slack community</a> for the most up to date information.</p>
4282
+ <div class="admonition version-changed">
4283
+ <p class="admonition-title">Changed in version 2.0.0</p>
4284
+ <p>The base image was changed from <code>python:3.7-slim</code> to <code>python:3.8-slim</code> due to the end-of-life of Python 3.7.</p>
4285
+ </div>
3056
4286
  <h2 id="platforms">Platforms<a class="headerlink" href="#platforms" title="Permanent link">&para;</a></h2>
3057
4287
  <p>Nautobot docker images are currently provided for both <code>linux/amd64</code> and <code>linux/arm64</code> architectures. Please note ARM64 support is untested by our automated tests and should be considered in an alpha state.</p>
3058
4288
  <h2 id="tags">Tags<a class="headerlink" href="#tags" title="Permanent link">&para;</a></h2>
@@ -3078,31 +4308,31 @@
3078
4308
  <tr>
3079
4309
  <td><code>${NAUTOBOT_VER}</code></td>
3080
4310
  <td>As specified</td>
3081
- <td>3.7</td>
3082
- <td><code>1.2.7</code></td>
4311
+ <td>3.8</td>
4312
+ <td><code>2.0.0</code></td>
3083
4313
  </tr>
3084
4314
  <tr>
3085
4315
  <td><code>${NAUTOBOT_VER}-py${PYTHON_VER}</code></td>
3086
4316
  <td>As specified</td>
3087
4317
  <td>As specified</td>
3088
- <td><code>1.2.7-py3.8</code></td>
4318
+ <td><code>2.0.0-py3.8</code></td>
3089
4319
  </tr>
3090
4320
  <tr>
3091
4321
  <td><code>${NAUTOBOT_MAJOR_VER}.${NAUTOBOT_MINOR_VER}</code></td>
3092
4322
  <td>As specified</td>
3093
- <td>3.7</td>
3094
- <td><code>1.2</code></td>
4323
+ <td>3.8</td>
4324
+ <td><code>2.0</code></td>
3095
4325
  </tr>
3096
4326
  <tr>
3097
4327
  <td><code>${NAUTOBOT_MAJOR_VER}.${NAUTOBOT_MINOR_VER}-py${PYTHON_VER}</code></td>
3098
4328
  <td>As specified</td>
3099
4329
  <td>As specified</td>
3100
- <td><code>1.2-py3.8</code></td>
4330
+ <td><code>2.0-py3.8</code></td>
3101
4331
  </tr>
3102
4332
  <tr>
3103
4333
  <td><code>stable</code></td>
3104
4334
  <td>Latest stable release</td>
3105
- <td>3.7</td>
4335
+ <td>3.8</td>
3106
4336
  <td><code>stable</code></td>
3107
4337
  </tr>
3108
4338
  <tr>
@@ -3126,7 +4356,7 @@
3126
4356
  <tr>
3127
4357
  <td><code>latest</code></td>
3128
4358
  <td><code>develop</code>, the latest commit</td>
3129
- <td>3.7</td>
4359
+ <td>3.8</td>
3130
4360
  </tr>
3131
4361
  <tr>
3132
4362
  <td><code>latest-py${PYTHON_VER}</code></td>
@@ -3136,7 +4366,7 @@
3136
4366
  <tr>
3137
4367
  <td><code>develop</code></td>
3138
4368
  <td><code>develop</code>, the latest commit</td>
3139
- <td>3.7</td>
4369
+ <td>3.8</td>
3140
4370
  </tr>
3141
4371
  <tr>
3142
4372
  <td><code>develop-py${PYTHON_VER}</code></td>
@@ -3146,7 +4376,7 @@
3146
4376
  <tr>
3147
4377
  <td><code>develop-${GIT_SHA:0:7}-$(date +%s)</code></td>
3148
4378
  <td><code>develop</code>, a specific commit</td>
3149
- <td>3.7</td>
4379
+ <td>3.8</td>
3150
4380
  </tr>
3151
4381
  <tr>
3152
4382
  <td><code>develop-${GIT_SHA:0:7}-$(date +%s)-py${PYTHON_VER}</code></td>
@@ -3156,7 +4386,7 @@
3156
4386
  <tr>
3157
4387
  <td><code>next</code></td>
3158
4388
  <td><code>next</code>, the latest commit</td>
3159
- <td>3.7</td>
4389
+ <td>3.8</td>
3160
4390
  </tr>
3161
4391
  <tr>
3162
4392
  <td><code>next-py${PYTHON_VER}</code></td>
@@ -3166,7 +4396,7 @@
3166
4396
  <tr>
3167
4397
  <td><code>next-${GIT_SHA:0:7}-$(date +%s)</code></td>
3168
4398
  <td><code>next</code>, a specific commit</td>
3169
- <td>3.7</td>
4399
+ <td>3.8</td>
3170
4400
  </tr>
3171
4401
  <tr>
3172
4402
  <td><code>next-${GIT_SHA:0:7}-$(date +%s)-py${PYTHON_VER}</code></td>
@@ -3177,7 +4407,6 @@
3177
4407
  </table>
3178
4408
  <p>Currently images are pushed for the following python versions:</p>
3179
4409
  <ul>
3180
- <li>3.7</li>
3181
4410
  <li>3.8</li>
3182
4411
  <li>3.9</li>
3183
4412
  <li>3.10</li>
@@ -3279,7 +4508,7 @@
3279
4508
  </code></pre></div>
3280
4509
  <p>Example output:</p>
3281
4510
  <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>REPOSITORY TAG IMAGE ID CREATED SIZE
3282
- <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>local/nautobot-dev local-py3.7 0d93eec7dfea 5 minutes ago 1.31GB
4511
+ <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>local/nautobot-dev local-py3.8 0d93eec7dfea 5 minutes ago 1.31GB
3283
4512
  </code></pre></div>
3284
4513
  <p>If you need to build or test the <code>final</code> image, you must set your <code>invoke.yml</code> to use <code>docker-compose.final.yml</code> in place of <code>docker-compose.dev.yml</code>:</p>
3285
4514
  <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nn">---</span>
@@ -3299,7 +4528,7 @@
3299
4528
  </code></pre></div>
3300
4529
  <p>Example output:</p>
3301
4530
  <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>REPOSITORY TAG IMAGE ID CREATED SIZE
3302
- <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>local/nautobot-final local-py3.7 e03e752fcc6b 27 minutes ago 629MB
4531
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>local/nautobot-final local-py3.8 e03e752fcc6b 27 minutes ago 629MB
3303
4532
  </code></pre></div>
3304
4533
  <p>Similarly, you can use <code>docker-compose.final-dev.yml</code> if you wish to build and test the <code>final-dev</code> image.</p>
3305
4534
  <h2 id="docker-compose">Docker Compose<a class="headerlink" href="#docker-compose" title="Permanent link">&para;</a></h2>
@@ -3320,42 +4549,6 @@
3320
4549
 
3321
4550
  <footer class="md-footer">
3322
4551
 
3323
-
3324
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
3325
-
3326
-
3327
- <a href="../installation/external-authentication.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: External Authentication (Optional)" rel="prev">
3328
- <div class="md-footer__button md-icon">
3329
- <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>
3330
- </div>
3331
- <div class="md-footer__title">
3332
- <div class="md-ellipsis">
3333
- <span class="md-footer__direction">
3334
- Previous
3335
- </span>
3336
- External Authentication (Optional)
3337
- </div>
3338
- </div>
3339
- </a>
3340
-
3341
-
3342
-
3343
- <a href="../installation/migrating-from-netbox.html" class="md-footer__link md-footer__link--next" aria-label="Next: Migrating from NetBox" rel="next">
3344
- <div class="md-footer__title">
3345
- <div class="md-ellipsis">
3346
- <span class="md-footer__direction">
3347
- Next
3348
- </span>
3349
- Migrating from NetBox
3350
- </div>
3351
- </div>
3352
- <div class="md-footer__button md-icon">
3353
- <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>
3354
- </div>
3355
- </a>
3356
-
3357
- </nav>
3358
-
3359
4552
  <div class="md-footer-meta md-typeset">
3360
4553
  <div class="md-footer-meta__inner md-grid">
3361
4554
  <div class="md-copyright">
@@ -3383,32 +4576,42 @@
3383
4576
 
3384
4577
 
3385
4578
 
4579
+
4580
+
3386
4581
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
3387
- <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>
4582
+ <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>
3388
4583
  </a>
3389
4584
 
3390
4585
 
3391
4586
 
4587
+
4588
+
3392
4589
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
3393
- <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>
4590
+ <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>
3394
4591
  </a>
3395
4592
 
3396
4593
 
3397
4594
 
4595
+
4596
+
3398
4597
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
3399
- <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>
4598
+ <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>
3400
4599
  </a>
3401
4600
 
3402
4601
 
3403
4602
 
4603
+
4604
+
3404
4605
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
3405
- <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>
4606
+ <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>
3406
4607
  </a>
3407
4608
 
3408
4609
 
3409
4610
 
4611
+
4612
+
3410
4613
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
3411
- <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>
4614
+ <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>
3412
4615
  </a>
3413
4616
 
3414
4617
  </div>
@@ -3422,14 +4625,13 @@
3422
4625
  <div class="md-dialog__inner md-typeset"></div>
3423
4626
  </div>
3424
4627
 
3425
- <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>
4628
+ <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>
3426
4629
 
3427
4630
 
3428
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
4631
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
3429
4632
 
3430
4633
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
3431
4634
 
3432
4635
 
3433
-
3434
4636
  </body>
3435
4637
  </html>