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/administration/nautobot-server.html">
12
12
 
13
+
14
+ <link rel="prev" href="../configuration/authentication/remote.html">
15
+
16
+
17
+ <link rel="next" href="nautobot-shell.html">
18
+
13
19
  <link rel="icon" href="../assets/favicon.ico">
14
- <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.5.10">
20
+ <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.1.6">
15
21
 
16
22
 
17
23
 
@@ -19,11 +25,10 @@
19
25
 
20
26
 
21
27
 
22
- <link rel="stylesheet" href="../assets/stylesheets/main.975780f9.min.css">
28
+ <link rel="stylesheet" href="../assets/stylesheets/main.ded33207.min.css">
23
29
 
24
30
 
25
- <link rel="stylesheet" href="../assets/stylesheets/palette.2505c338.min.css">
26
-
31
+ <link rel="stylesheet" href="../assets/stylesheets/palette.a0c5b2b5.min.css">
27
32
 
28
33
 
29
34
 
@@ -86,7 +91,7 @@
86
91
 
87
92
 
88
93
 
89
- <header class="md-header md-header--lifted" data-md-component="header">
94
+ <header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
90
95
  <nav class="md-header__inner md-grid" aria-label="Header">
91
96
  <a href="../index.html" title="Nautobot Documentation" class="md-header__button md-logo" aria-label="Nautobot Documentation" data-md-component="logo">
92
97
 
@@ -116,8 +121,6 @@
116
121
  <form class="md-header__option" data-md-component="palette">
117
122
 
118
123
 
119
-
120
-
121
124
  <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
122
125
 
123
126
  <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
@@ -126,8 +129,6 @@
126
129
 
127
130
 
128
131
 
129
-
130
-
131
132
  <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
132
133
 
133
134
  <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
@@ -171,7 +172,7 @@
171
172
  <div class="md-search-result__meta">
172
173
  Initializing search
173
174
  </div>
174
- <ol class="md-search-result__list"></ol>
175
+ <ol class="md-search-result__list" role="presentation"></ol>
175
176
  </div>
176
177
  </div>
177
178
  </div>
@@ -183,7 +184,7 @@
183
184
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
184
185
  <div class="md-source__icon md-icon">
185
186
 
186
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
187
188
  </div>
188
189
  <div class="md-source__repository">
189
190
  GitHub
@@ -196,7 +197,7 @@
196
197
 
197
198
 
198
199
  <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
199
- <div class="md-tabs__inner md-grid">
200
+ <div class="md-grid">
200
201
  <ul class="md-tabs__list">
201
202
 
202
203
 
@@ -351,7 +352,7 @@
351
352
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
352
353
  <div class="md-source__icon md-icon">
353
354
 
354
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
355
356
  </div>
356
357
  <div class="md-source__repository">
357
358
  GitHub
@@ -389,17 +390,18 @@
389
390
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
390
391
 
391
392
 
392
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
393
393
 
394
394
 
395
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
396
+
395
397
 
396
398
 
397
- <label class="md-nav__link" for="__nav_2">
399
+ <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
398
400
  Documentation
399
401
  <span class="md-nav__icon md-icon"></span>
400
402
  </label>
401
403
 
402
- <nav class="md-nav" aria-label="Documentation" data-md-level="1">
404
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
403
405
  <label class="md-nav__title" for="__nav_2">
404
406
  <span class="md-nav__icon md-icon"></span>
405
407
  Documentation
@@ -415,17 +417,18 @@
415
417
  <li class="md-nav__item md-nav__item--nested">
416
418
 
417
419
 
418
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" >
419
420
 
420
421
 
422
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
421
423
 
422
424
 
423
- <label class="md-nav__link" for="__nav_2_1">
425
+
426
+ <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
424
427
  Installation
425
428
  <span class="md-nav__icon md-icon"></span>
426
429
  </label>
427
430
 
428
- <nav class="md-nav" aria-label="Installation" data-md-level="2">
431
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
429
432
  <label class="md-nav__title" for="__nav_2_1">
430
433
  <span class="md-nav__icon md-icon"></span>
431
434
  Installation
@@ -532,17 +535,18 @@
532
535
  <li class="md-nav__item md-nav__item--nested">
533
536
 
534
537
 
535
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
536
538
 
537
539
 
540
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
541
+
538
542
 
539
543
 
540
- <label class="md-nav__link" for="__nav_2_2">
544
+ <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
541
545
  Migration
542
546
  <span class="md-nav__icon md-icon"></span>
543
547
  </label>
544
548
 
545
- <nav class="md-nav" aria-label="Migration" data-md-level="2">
549
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
546
550
  <label class="md-nav__title" for="__nav_2_2">
547
551
  <span class="md-nav__icon md-icon"></span>
548
552
  Migration
@@ -635,17 +639,18 @@
635
639
  <li class="md-nav__item md-nav__item--nested">
636
640
 
637
641
 
638
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
639
642
 
640
643
 
644
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
641
645
 
642
646
 
643
- <label class="md-nav__link" for="__nav_2_3">
647
+
648
+ <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
644
649
  Configuration
645
650
  <span class="md-nav__icon md-icon"></span>
646
651
  </label>
647
652
 
648
- <nav class="md-nav" aria-label="Configuration" data-md-level="2">
653
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
649
654
  <label class="md-nav__title" for="__nav_2_3">
650
655
  <span class="md-nav__icon md-icon"></span>
651
656
  Configuration
@@ -710,17 +715,18 @@
710
715
  <li class="md-nav__item md-nav__item--nested">
711
716
 
712
717
 
713
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" >
714
718
 
715
719
 
720
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
721
+
716
722
 
717
723
 
718
- <label class="md-nav__link" for="__nav_2_4">
724
+ <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
719
725
  External Authentication
720
726
  <span class="md-nav__icon md-icon"></span>
721
727
  </label>
722
728
 
723
- <nav class="md-nav" aria-label="External Authentication" data-md-level="2">
729
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
724
730
  <label class="md-nav__title" for="__nav_2_4">
725
731
  <span class="md-nav__icon md-icon"></span>
726
732
  External Authentication
@@ -787,17 +793,18 @@
787
793
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
788
794
 
789
795
 
790
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" checked>
791
796
 
792
797
 
798
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" checked>
793
799
 
794
800
 
795
- <label class="md-nav__link" for="__nav_2_5">
801
+
802
+ <label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
796
803
  Administration
797
804
  <span class="md-nav__icon md-icon"></span>
798
805
  </label>
799
806
 
800
- <nav class="md-nav" aria-label="Administration" data-md-level="2">
807
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="true">
801
808
  <label class="md-nav__title" for="__nav_2_5">
802
809
  <span class="md-nav__icon md-icon"></span>
803
810
  Administration
@@ -813,7 +820,7 @@
813
820
 
814
821
  <li class="md-nav__item md-nav__item--active">
815
822
 
816
- <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
823
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
817
824
 
818
825
 
819
826
 
@@ -933,13 +940,6 @@
933
940
  init
934
941
  </a>
935
942
 
936
- </li>
937
-
938
- <li class="md-nav__item">
939
- <a href="#invalidate" class="md-nav__link">
940
- invalidate
941
- </a>
942
-
943
943
  </li>
944
944
 
945
945
  <li class="md-nav__item">
@@ -1105,17 +1105,18 @@
1105
1105
  <li class="md-nav__item md-nav__item--nested">
1106
1106
 
1107
1107
 
1108
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" type="checkbox" id="__nav_2_6" >
1109
1108
 
1110
1109
 
1110
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1111
1111
 
1112
1112
 
1113
- <label class="md-nav__link" for="__nav_2_6">
1113
+
1114
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1114
1115
  User Guides
1115
1116
  <span class="md-nav__icon md-icon"></span>
1116
1117
  </label>
1117
1118
 
1118
- <nav class="md-nav" aria-label="User Guides" data-md-level="2">
1119
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1119
1120
  <label class="md-nav__title" for="__nav_2_6">
1120
1121
  <span class="md-nav__icon md-icon"></span>
1121
1122
  User Guides
@@ -1170,8 +1171,1081 @@
1170
1171
 
1171
1172
 
1172
1173
  <li class="md-nav__item">
1173
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1174
- Git as a Data Source
1174
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1175
+ Git as a Data Source
1176
+ </a>
1177
+ </li>
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+ <li class="md-nav__item">
1188
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1189
+ GraphQL
1190
+ </a>
1191
+ </li>
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+ <li class="md-nav__item">
1202
+ <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1203
+ Interfaces
1204
+ </a>
1205
+ </li>
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+ <li class="md-nav__item">
1216
+ <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1217
+ IP Address Management
1218
+ </a>
1219
+ </li>
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+ <li class="md-nav__item">
1230
+ <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1231
+ Platforms
1232
+ </a>
1233
+ </li>
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+ <li class="md-nav__item">
1244
+ <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1245
+ Regions
1246
+ </a>
1247
+ </li>
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+ <li class="md-nav__item">
1258
+ <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1259
+ Tenants
1260
+ </a>
1261
+ </li>
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+ <li class="md-nav__item">
1272
+ <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1273
+ The Search Bar
1274
+ </a>
1275
+ </li>
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+ <li class="md-nav__item">
1286
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1287
+ Git as a Data Source
1288
+ </a>
1289
+ </li>
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+ <li class="md-nav__item">
1300
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1301
+ GraphQL
1302
+ </a>
1303
+ </li>
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+ <li class="md-nav__item">
1314
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1315
+ Relationships
1316
+ </a>
1317
+ </li>
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+ <li class="md-nav__item">
1328
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1329
+ Django Storages with S3
1330
+ </a>
1331
+ </li>
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+ <li class="md-nav__item">
1342
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1343
+ VLANS and VLAN Groups
1344
+ </a>
1345
+ </li>
1346
+
1347
+
1348
+
1349
+
1350
+ </ul>
1351
+ </nav>
1352
+ </li>
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+ <li class="md-nav__item md-nav__item--nested">
1364
+
1365
+
1366
+
1367
+
1368
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1369
+
1370
+
1371
+
1372
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1373
+ Core Functionality
1374
+ <span class="md-nav__icon md-icon"></span>
1375
+ </label>
1376
+
1377
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1378
+ <label class="md-nav__title" for="__nav_2_7">
1379
+ <span class="md-nav__icon md-icon"></span>
1380
+ Core Functionality
1381
+ </label>
1382
+ <ul class="md-nav__list" data-md-scrollfix>
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+ <li class="md-nav__item">
1390
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1391
+ Circuits
1392
+ </a>
1393
+ </li>
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+ <li class="md-nav__item">
1404
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1405
+ Devices and Cabling
1406
+ </a>
1407
+ </li>
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+ <li class="md-nav__item">
1418
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1419
+ Device Types
1420
+ </a>
1421
+ </li>
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+ <li class="md-nav__item">
1432
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1433
+ IP Address Management
1434
+ </a>
1435
+ </li>
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+ <li class="md-nav__item">
1446
+ <a href="../core-functionality/power.html" class="md-nav__link">
1447
+ Power Tracking
1448
+ </a>
1449
+ </li>
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+ <li class="md-nav__item">
1460
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1461
+ Secrets
1462
+ </a>
1463
+ </li>
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+ <li class="md-nav__item">
1474
+ <a href="../core-functionality/services.html" class="md-nav__link">
1475
+ Service Mapping
1476
+ </a>
1477
+ </li>
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+ <li class="md-nav__item">
1488
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1489
+ Sites, Locations, and Racks
1490
+ </a>
1491
+ </li>
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+ <li class="md-nav__item">
1502
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1503
+ Tenancy
1504
+ </a>
1505
+ </li>
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+ <li class="md-nav__item">
1516
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1517
+ Virtualization
1518
+ </a>
1519
+ </li>
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+ <li class="md-nav__item">
1530
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1531
+ VLAN Management
1532
+ </a>
1533
+ </li>
1534
+
1535
+
1536
+
1537
+
1538
+ </ul>
1539
+ </nav>
1540
+ </li>
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+ <li class="md-nav__item md-nav__item--nested">
1552
+
1553
+
1554
+
1555
+
1556
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1557
+
1558
+
1559
+
1560
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1561
+ Model Details
1562
+ <span class="md-nav__icon md-icon"></span>
1563
+ </label>
1564
+
1565
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1566
+ <label class="md-nav__title" for="__nav_2_8">
1567
+ <span class="md-nav__icon md-icon"></span>
1568
+ Model Details
1569
+ </label>
1570
+ <ul class="md-nav__list" data-md-scrollfix>
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+ <li class="md-nav__item md-nav__item--nested">
1579
+
1580
+
1581
+
1582
+
1583
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1584
+
1585
+
1586
+
1587
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1588
+ Circuits
1589
+ <span class="md-nav__icon md-icon"></span>
1590
+ </label>
1591
+
1592
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1593
+ <label class="md-nav__title" for="__nav_2_8_1">
1594
+ <span class="md-nav__icon md-icon"></span>
1595
+ Circuits
1596
+ </label>
1597
+ <ul class="md-nav__list" data-md-scrollfix>
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+ <li class="md-nav__item">
1605
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1606
+ Circuit
1607
+ </a>
1608
+ </li>
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+ <li class="md-nav__item">
1619
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1620
+ Circuit Termination
1621
+ </a>
1622
+ </li>
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+ <li class="md-nav__item">
1633
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1634
+ Circuit Type
1635
+ </a>
1636
+ </li>
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+ <li class="md-nav__item">
1647
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1648
+ Circuit Provider
1649
+ </a>
1650
+ </li>
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+ <li class="md-nav__item">
1661
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1662
+ Circuit Provider Network
1663
+ </a>
1664
+ </li>
1665
+
1666
+
1667
+
1668
+
1669
+ </ul>
1670
+ </nav>
1671
+ </li>
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+ <li class="md-nav__item md-nav__item--nested">
1683
+
1684
+
1685
+
1686
+
1687
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1688
+
1689
+
1690
+
1691
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1692
+ DCIM
1693
+ <span class="md-nav__icon md-icon"></span>
1694
+ </label>
1695
+
1696
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1697
+ <label class="md-nav__title" for="__nav_2_8_2">
1698
+ <span class="md-nav__icon md-icon"></span>
1699
+ DCIM
1700
+ </label>
1701
+ <ul class="md-nav__list" data-md-scrollfix>
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+ <li class="md-nav__item">
1709
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1710
+ Cable
1711
+ </a>
1712
+ </li>
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+ <li class="md-nav__item">
1723
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1724
+ Console Port
1725
+ </a>
1726
+ </li>
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+ <li class="md-nav__item">
1737
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1738
+ Console Port Template
1739
+ </a>
1740
+ </li>
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+ <li class="md-nav__item">
1751
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1752
+ Console Server Port
1753
+ </a>
1754
+ </li>
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+ <li class="md-nav__item">
1765
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1766
+ Console Server Port Template
1767
+ </a>
1768
+ </li>
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+ <li class="md-nav__item">
1779
+ <a href="../models/dcim/device.html" class="md-nav__link">
1780
+ Device
1781
+ </a>
1782
+ </li>
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+ <li class="md-nav__item">
1793
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1794
+ Device Bay
1795
+ </a>
1796
+ </li>
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+ <li class="md-nav__item">
1807
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1808
+ Device Bay Template
1809
+ </a>
1810
+ </li>
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+ <li class="md-nav__item">
1821
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1822
+ Device Redundancy Group
1823
+ </a>
1824
+ </li>
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+ <li class="md-nav__item">
1835
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1836
+ Device Type
1837
+ </a>
1838
+ </li>
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+ <li class="md-nav__item">
1849
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1850
+ Front Port
1851
+ </a>
1852
+ </li>
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+ <li class="md-nav__item">
1863
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1864
+ Front Port Template
1865
+ </a>
1866
+ </li>
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+ <li class="md-nav__item">
1877
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1878
+ Interface
1879
+ </a>
1880
+ </li>
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+ <li class="md-nav__item">
1891
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1892
+ Interface Template
1893
+ </a>
1894
+ </li>
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+ <li class="md-nav__item">
1905
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1906
+ Inventory Item
1907
+ </a>
1908
+ </li>
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+ <li class="md-nav__item">
1919
+ <a href="../models/dcim/location.html" class="md-nav__link">
1920
+ Location
1921
+ </a>
1922
+ </li>
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+ <li class="md-nav__item">
1933
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1934
+ Location Type
1935
+ </a>
1936
+ </li>
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+ <li class="md-nav__item">
1947
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1948
+ Manufacturer
1949
+ </a>
1950
+ </li>
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+ <li class="md-nav__item">
1961
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1962
+ Platform
1963
+ </a>
1964
+ </li>
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+ <li class="md-nav__item">
1975
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1976
+ Power Feed
1977
+ </a>
1978
+ </li>
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+ <li class="md-nav__item">
1989
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1990
+ Power Outlet
1991
+ </a>
1992
+ </li>
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+ <li class="md-nav__item">
2003
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
2004
+ Power Outlet Template
2005
+ </a>
2006
+ </li>
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+ <li class="md-nav__item">
2017
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
2018
+ Power Panel
2019
+ </a>
2020
+ </li>
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+ <li class="md-nav__item">
2031
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
2032
+ Power Port
2033
+ </a>
2034
+ </li>
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+ <li class="md-nav__item">
2045
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
2046
+ Power Port Template
2047
+ </a>
2048
+ </li>
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+ <li class="md-nav__item">
2059
+ <a href="../models/dcim/rack.html" class="md-nav__link">
2060
+ Rack
2061
+ </a>
2062
+ </li>
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+ <li class="md-nav__item">
2073
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
2074
+ Rack Group
2075
+ </a>
2076
+ </li>
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+ <li class="md-nav__item">
2087
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
2088
+ Rack Reservation
2089
+ </a>
2090
+ </li>
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+ <li class="md-nav__item">
2101
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2102
+ Rear Port
2103
+ </a>
2104
+ </li>
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+ <li class="md-nav__item">
2115
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2116
+ Rear Port Template
2117
+ </a>
2118
+ </li>
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+ <li class="md-nav__item">
2129
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2130
+ Virtual Chassis
2131
+ </a>
2132
+ </li>
2133
+
2134
+
2135
+
2136
+
2137
+ </ul>
2138
+ </nav>
2139
+ </li>
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+ <li class="md-nav__item md-nav__item--nested">
2151
+
2152
+
2153
+
2154
+
2155
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
2156
+
2157
+
2158
+
2159
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2160
+ Extras
2161
+ <span class="md-nav__icon md-icon"></span>
2162
+ </label>
2163
+
2164
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2165
+ <label class="md-nav__title" for="__nav_2_8_3">
2166
+ <span class="md-nav__icon md-icon"></span>
2167
+ Extras
2168
+ </label>
2169
+ <ul class="md-nav__list" data-md-scrollfix>
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+ <li class="md-nav__item">
2177
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2178
+ Config Context
2179
+ </a>
2180
+ </li>
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+ <li class="md-nav__item">
2191
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2192
+ Config Context Schema
2193
+ </a>
2194
+ </li>
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+ <li class="md-nav__item">
2205
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2206
+ GraphQL Query
2207
+ </a>
2208
+ </li>
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+ <li class="md-nav__item">
2219
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2220
+ Image Attachment
2221
+ </a>
2222
+ </li>
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+ <li class="md-nav__item">
2233
+ <a href="../models/extras/job.html" class="md-nav__link">
2234
+ Job
2235
+ </a>
2236
+ </li>
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+ <li class="md-nav__item">
2247
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2248
+ Job Log Entry
1175
2249
  </a>
1176
2250
  </li>
1177
2251
 
@@ -1184,8 +2258,8 @@
1184
2258
 
1185
2259
 
1186
2260
  <li class="md-nav__item">
1187
- <a href="../user-guides/graphql.html" class="md-nav__link">
1188
- GraphQL
2261
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2262
+ Job Result
1189
2263
  </a>
1190
2264
  </li>
1191
2265
 
@@ -1198,8 +2272,8 @@
1198
2272
 
1199
2273
 
1200
2274
  <li class="md-nav__item">
1201
- <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1202
- Interfaces
2275
+ <a href="../models/extras/role.html" class="md-nav__link">
2276
+ Role
1203
2277
  </a>
1204
2278
  </li>
1205
2279
 
@@ -1212,8 +2286,8 @@
1212
2286
 
1213
2287
 
1214
2288
  <li class="md-nav__item">
1215
- <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1216
- IP Address Management
2289
+ <a href="../models/extras/secret.html" class="md-nav__link">
2290
+ Secret
1217
2291
  </a>
1218
2292
  </li>
1219
2293
 
@@ -1226,22 +2300,56 @@
1226
2300
 
1227
2301
 
1228
2302
  <li class="md-nav__item">
1229
- <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1230
- Platforms
2303
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2304
+ Secrets group
1231
2305
  </a>
1232
2306
  </li>
1233
2307
 
1234
2308
 
1235
2309
 
1236
2310
 
2311
+ </ul>
2312
+ </nav>
2313
+ </li>
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+ <li class="md-nav__item md-nav__item--nested">
2325
+
2326
+
2327
+
2328
+
2329
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2330
+
2331
+
2332
+
2333
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2334
+ IPAM
2335
+ <span class="md-nav__icon md-icon"></span>
2336
+ </label>
2337
+
2338
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2339
+ <label class="md-nav__title" for="__nav_2_8_4">
2340
+ <span class="md-nav__icon md-icon"></span>
2341
+ IPAM
2342
+ </label>
2343
+ <ul class="md-nav__list" data-md-scrollfix>
2344
+
1237
2345
 
1238
2346
 
1239
2347
 
1240
2348
 
1241
2349
 
1242
2350
  <li class="md-nav__item">
1243
- <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1244
- Regions
2351
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2352
+ IP Address
1245
2353
  </a>
1246
2354
  </li>
1247
2355
 
@@ -1254,8 +2362,8 @@
1254
2362
 
1255
2363
 
1256
2364
  <li class="md-nav__item">
1257
- <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1258
- Tenants
2365
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2366
+ Prefix
1259
2367
  </a>
1260
2368
  </li>
1261
2369
 
@@ -1268,8 +2376,8 @@
1268
2376
 
1269
2377
 
1270
2378
  <li class="md-nav__item">
1271
- <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1272
- The Search Bar
2379
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2380
+ Rir
1273
2381
  </a>
1274
2382
  </li>
1275
2383
 
@@ -1282,8 +2390,8 @@
1282
2390
 
1283
2391
 
1284
2392
  <li class="md-nav__item">
1285
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1286
- Git as a Data Source
2393
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2394
+ Route Target
1287
2395
  </a>
1288
2396
  </li>
1289
2397
 
@@ -1296,8 +2404,8 @@
1296
2404
 
1297
2405
 
1298
2406
  <li class="md-nav__item">
1299
- <a href="../user-guides/graphql.html" class="md-nav__link">
1300
- GraphQL
2407
+ <a href="../models/ipam/service.html" class="md-nav__link">
2408
+ Service
1301
2409
  </a>
1302
2410
  </li>
1303
2411
 
@@ -1310,8 +2418,8 @@
1310
2418
 
1311
2419
 
1312
2420
  <li class="md-nav__item">
1313
- <a href="../user-guides/relationships.html" class="md-nav__link">
1314
- Relationships
2421
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2422
+ VLAN
1315
2423
  </a>
1316
2424
  </li>
1317
2425
 
@@ -1324,8 +2432,8 @@
1324
2432
 
1325
2433
 
1326
2434
  <li class="md-nav__item">
1327
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1328
- Django Storages with S3
2435
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2436
+ VLAN Group
1329
2437
  </a>
1330
2438
  </li>
1331
2439
 
@@ -1338,8 +2446,8 @@
1338
2446
 
1339
2447
 
1340
2448
  <li class="md-nav__item">
1341
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1342
- VLANS and VLAN Groups
2449
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2450
+ VRF
1343
2451
  </a>
1344
2452
  </li>
1345
2453
 
@@ -1362,20 +2470,21 @@
1362
2470
  <li class="md-nav__item md-nav__item--nested">
1363
2471
 
1364
2472
 
1365
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" >
1366
2473
 
1367
2474
 
2475
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1368
2476
 
1369
2477
 
1370
- <label class="md-nav__link" for="__nav_2_7">
1371
- Core Functionality
2478
+
2479
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2480
+ Tenancy
1372
2481
  <span class="md-nav__icon md-icon"></span>
1373
2482
  </label>
1374
2483
 
1375
- <nav class="md-nav" aria-label="Core Functionality" data-md-level="2">
1376
- <label class="md-nav__title" for="__nav_2_7">
2484
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2485
+ <label class="md-nav__title" for="__nav_2_8_5">
1377
2486
  <span class="md-nav__icon md-icon"></span>
1378
- Core Functionality
2487
+ Tenancy
1379
2488
  </label>
1380
2489
  <ul class="md-nav__list" data-md-scrollfix>
1381
2490
 
@@ -1385,8 +2494,8 @@
1385
2494
 
1386
2495
 
1387
2496
  <li class="md-nav__item">
1388
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1389
- Circuits
2497
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2498
+ Tenant
1390
2499
  </a>
1391
2500
  </li>
1392
2501
 
@@ -1399,27 +2508,47 @@
1399
2508
 
1400
2509
 
1401
2510
  <li class="md-nav__item">
1402
- <a href="../core-functionality/devices.html" class="md-nav__link">
1403
- Devices and Cabling
2511
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2512
+ Tenant Group
1404
2513
  </a>
1405
2514
  </li>
1406
2515
 
1407
2516
 
1408
2517
 
1409
2518
 
2519
+ </ul>
2520
+ </nav>
2521
+ </li>
2522
+
2523
+
2524
+
2525
+
1410
2526
 
1411
2527
 
1412
2528
 
1413
2529
 
1414
2530
 
1415
- <li class="md-nav__item">
1416
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1417
- Device Types
1418
- </a>
1419
- </li>
1420
-
1421
-
1422
-
2531
+
2532
+ <li class="md-nav__item md-nav__item--nested">
2533
+
2534
+
2535
+
2536
+
2537
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2538
+
2539
+
2540
+
2541
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2542
+ Users
2543
+ <span class="md-nav__icon md-icon"></span>
2544
+ </label>
2545
+
2546
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2547
+ <label class="md-nav__title" for="__nav_2_8_6">
2548
+ <span class="md-nav__icon md-icon"></span>
2549
+ Users
2550
+ </label>
2551
+ <ul class="md-nav__list" data-md-scrollfix>
1423
2552
 
1424
2553
 
1425
2554
 
@@ -1427,8 +2556,8 @@
1427
2556
 
1428
2557
 
1429
2558
  <li class="md-nav__item">
1430
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1431
- IP Address Management
2559
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2560
+ Object Permission
1432
2561
  </a>
1433
2562
  </li>
1434
2563
 
@@ -1441,27 +2570,47 @@
1441
2570
 
1442
2571
 
1443
2572
  <li class="md-nav__item">
1444
- <a href="../core-functionality/power.html" class="md-nav__link">
1445
- Power Tracking
2573
+ <a href="../models/users/token.html" class="md-nav__link">
2574
+ Token
1446
2575
  </a>
1447
2576
  </li>
1448
2577
 
1449
2578
 
1450
2579
 
1451
2580
 
2581
+ </ul>
2582
+ </nav>
2583
+ </li>
2584
+
2585
+
2586
+
2587
+
1452
2588
 
1453
2589
 
1454
2590
 
1455
2591
 
1456
2592
 
1457
- <li class="md-nav__item">
1458
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1459
- Secrets
1460
- </a>
1461
- </li>
1462
-
1463
-
1464
-
2593
+
2594
+ <li class="md-nav__item md-nav__item--nested">
2595
+
2596
+
2597
+
2598
+
2599
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2600
+
2601
+
2602
+
2603
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2604
+ Virtualization
2605
+ <span class="md-nav__icon md-icon"></span>
2606
+ </label>
2607
+
2608
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2609
+ <label class="md-nav__title" for="__nav_2_8_7">
2610
+ <span class="md-nav__icon md-icon"></span>
2611
+ Virtualization
2612
+ </label>
2613
+ <ul class="md-nav__list" data-md-scrollfix>
1465
2614
 
1466
2615
 
1467
2616
 
@@ -1469,8 +2618,8 @@
1469
2618
 
1470
2619
 
1471
2620
  <li class="md-nav__item">
1472
- <a href="../core-functionality/services.html" class="md-nav__link">
1473
- Service Mapping
2621
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2622
+ Cluster
1474
2623
  </a>
1475
2624
  </li>
1476
2625
 
@@ -1483,8 +2632,8 @@
1483
2632
 
1484
2633
 
1485
2634
  <li class="md-nav__item">
1486
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1487
- Sites, Locations, and Racks
2635
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2636
+ Cluster Group
1488
2637
  </a>
1489
2638
  </li>
1490
2639
 
@@ -1497,8 +2646,8 @@
1497
2646
 
1498
2647
 
1499
2648
  <li class="md-nav__item">
1500
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1501
- Tenancy
2649
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2650
+ Cluster Type
1502
2651
  </a>
1503
2652
  </li>
1504
2653
 
@@ -1511,8 +2660,8 @@
1511
2660
 
1512
2661
 
1513
2662
  <li class="md-nav__item">
1514
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1515
- Virtualization
2663
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2664
+ Virtual Machine
1516
2665
  </a>
1517
2666
  </li>
1518
2667
 
@@ -1525,8 +2674,8 @@
1525
2674
 
1526
2675
 
1527
2676
  <li class="md-nav__item">
1528
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1529
- VLAN Management
2677
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2678
+ VM Interface
1530
2679
  </a>
1531
2680
  </li>
1532
2681
 
@@ -1540,6 +2689,13 @@
1540
2689
 
1541
2690
 
1542
2691
 
2692
+ </ul>
2693
+ </nav>
2694
+ </li>
2695
+
2696
+
2697
+
2698
+
1543
2699
 
1544
2700
 
1545
2701
 
@@ -1549,18 +2705,19 @@
1549
2705
  <li class="md-nav__item md-nav__item--nested">
1550
2706
 
1551
2707
 
1552
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" type="checkbox" id="__nav_2_8" >
1553
2708
 
1554
2709
 
2710
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2711
+
1555
2712
 
1556
2713
 
1557
- <label class="md-nav__link" for="__nav_2_8">
2714
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1558
2715
  Additional Features
1559
2716
  <span class="md-nav__icon md-icon"></span>
1560
2717
  </label>
1561
2718
 
1562
- <nav class="md-nav" aria-label="Additional Features" data-md-level="2">
1563
- <label class="md-nav__title" for="__nav_2_8">
2719
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2720
+ <label class="md-nav__title" for="__nav_2_9">
1564
2721
  <span class="md-nav__icon md-icon"></span>
1565
2722
  Additional Features
1566
2723
  </label>
@@ -1890,18 +3047,19 @@
1890
3047
  <li class="md-nav__item md-nav__item--nested">
1891
3048
 
1892
3049
 
1893
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" type="checkbox" id="__nav_2_9" >
1894
3050
 
1895
3051
 
3052
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1896
3053
 
1897
3054
 
1898
- <label class="md-nav__link" for="__nav_2_9">
3055
+
3056
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1899
3057
  REST API
1900
3058
  <span class="md-nav__icon md-icon"></span>
1901
3059
  </label>
1902
3060
 
1903
- <nav class="md-nav" aria-label="REST API" data-md-level="2">
1904
- <label class="md-nav__title" for="__nav_2_9">
3061
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
3062
+ <label class="md-nav__title" for="__nav_2_10">
1905
3063
  <span class="md-nav__icon md-icon"></span>
1906
3064
  REST API
1907
3065
  </label>
@@ -1949,6 +3107,20 @@
1949
3107
 
1950
3108
 
1951
3109
 
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+ <li class="md-nav__item">
3116
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3117
+ UI Endpoints
3118
+ </a>
3119
+ </li>
3120
+
3121
+
3122
+
3123
+
1952
3124
  </ul>
1953
3125
  </nav>
1954
3126
  </li>
@@ -1965,18 +3137,19 @@
1965
3137
  <li class="md-nav__item md-nav__item--nested">
1966
3138
 
1967
3139
 
1968
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_10" type="checkbox" id="__nav_2_10" >
1969
3140
 
1970
3141
 
3142
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
3143
+
1971
3144
 
1972
3145
 
1973
- <label class="md-nav__link" for="__nav_2_10">
3146
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1974
3147
  GraphQL API
1975
3148
  <span class="md-nav__icon md-icon"></span>
1976
3149
  </label>
1977
3150
 
1978
- <nav class="md-nav" aria-label="GraphQL API" data-md-level="2">
1979
- <label class="md-nav__title" for="__nav_2_10">
3151
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3152
+ <label class="md-nav__title" for="__nav_2_11">
1980
3153
  <span class="md-nav__icon md-icon"></span>
1981
3154
  GraphQL API
1982
3155
  </label>
@@ -2034,17 +3207,18 @@
2034
3207
  <li class="md-nav__item md-nav__item--nested">
2035
3208
 
2036
3209
 
2037
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
2038
3210
 
2039
3211
 
3212
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
3213
+
2040
3214
 
2041
3215
 
2042
- <label class="md-nav__link" for="__nav_3">
3216
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2043
3217
  App Developer Guide
2044
3218
  <span class="md-nav__icon md-icon"></span>
2045
3219
  </label>
2046
3220
 
2047
- <nav class="md-nav" aria-label="App Developer Guide" data-md-level="1">
3221
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
2048
3222
  <label class="md-nav__title" for="__nav_3">
2049
3223
  <span class="md-nav__icon md-icon"></span>
2050
3224
  App Developer Guide
@@ -2088,17 +3262,18 @@
2088
3262
  <li class="md-nav__item md-nav__item--nested">
2089
3263
 
2090
3264
 
2091
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
2092
3265
 
2093
3266
 
3267
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
2094
3268
 
2095
3269
 
2096
- <label class="md-nav__link" for="__nav_3_3">
3270
+
3271
+ <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
2097
3272
  Code Reference
2098
3273
  <span class="md-nav__icon md-icon"></span>
2099
3274
  </label>
2100
3275
 
2101
- <nav class="md-nav" aria-label="Code Reference" data-md-level="2">
3276
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
2102
3277
  <label class="md-nav__title" for="__nav_3_3">
2103
3278
  <span class="md-nav__icon md-icon"></span>
2104
3279
  Code Reference
@@ -2325,17 +3500,18 @@
2325
3500
  <li class="md-nav__item md-nav__item--nested">
2326
3501
 
2327
3502
 
2328
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
2329
3503
 
2330
3504
 
3505
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
3506
+
2331
3507
 
2332
3508
 
2333
- <label class="md-nav__link" for="__nav_4">
3509
+ <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
2334
3510
  Core Developer Guide
2335
3511
  <span class="md-nav__icon md-icon"></span>
2336
3512
  </label>
2337
3513
 
2338
- <nav class="md-nav" aria-label="Core Developer Guide" data-md-level="1">
3514
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
2339
3515
  <label class="md-nav__title" for="__nav_4">
2340
3516
  <span class="md-nav__icon md-icon"></span>
2341
3517
  Core Developer Guide
@@ -2569,17 +3745,18 @@
2569
3745
  <li class="md-nav__item md-nav__item--nested">
2570
3746
 
2571
3747
 
2572
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
2573
3748
 
2574
3749
 
3750
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
2575
3751
 
2576
3752
 
2577
- <label class="md-nav__link" for="__nav_5">
3753
+
3754
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
2578
3755
  Release Notes
2579
3756
  <span class="md-nav__icon md-icon"></span>
2580
3757
  </label>
2581
3758
 
2582
- <nav class="md-nav" aria-label="Release Notes" data-md-level="1">
3759
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
2583
3760
  <label class="md-nav__title" for="__nav_5">
2584
3761
  <span class="md-nav__icon md-icon"></span>
2585
3762
  Release Notes
@@ -2715,17 +3892,18 @@
2715
3892
  <li class="md-nav__item md-nav__item--nested">
2716
3893
 
2717
3894
 
2718
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
2719
3895
 
2720
3896
 
3897
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
3898
+
2721
3899
 
2722
3900
 
2723
- <label class="md-nav__link" for="__nav_6">
3901
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
2724
3902
  Nautobot Apps
2725
3903
  <span class="md-nav__icon md-icon"></span>
2726
3904
  </label>
2727
3905
 
2728
- <nav class="md-nav" aria-label="Nautobot Apps" data-md-level="1">
3906
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
2729
3907
  <label class="md-nav__title" for="__nav_6">
2730
3908
  <span class="md-nav__icon md-icon"></span>
2731
3909
  Nautobot Apps
@@ -2755,17 +3933,18 @@
2755
3933
  <li class="md-nav__item md-nav__item--nested">
2756
3934
 
2757
3935
 
2758
- <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
2759
3936
 
2760
3937
 
3938
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
2761
3939
 
2762
3940
 
2763
- <label class="md-nav__link" for="__nav_6_2">
3941
+
3942
+ <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
2764
3943
  Network to Code App Docs
2765
3944
  <span class="md-nav__icon md-icon"></span>
2766
3945
  </label>
2767
3946
 
2768
- <nav class="md-nav" aria-label="Network to Code App Docs" data-md-level="2">
3947
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
2769
3948
  <label class="md-nav__title" for="__nav_6_2">
2770
3949
  <span class="md-nav__icon md-icon"></span>
2771
3950
  Network to Code App Docs
@@ -2792,8 +3971,8 @@
2792
3971
 
2793
3972
 
2794
3973
  <li class="md-nav__item">
2795
- <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
2796
- Nautobot Firewall Models
3974
+ <a href="https://docs.nautobot.com/projects/circuit-maintenance/en/latest/" class="md-nav__link">
3975
+ Nautobot Circuit Maintenance
2797
3976
  </a>
2798
3977
  </li>
2799
3978
 
@@ -2806,8 +3985,36 @@
2806
3985
 
2807
3986
 
2808
3987
  <li class="md-nav__item">
2809
- <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
2810
- Nautobot Plugin Nornir
3988
+ <a href="https://docs.nautobot.com/projects/device-lifecycle/en/latest/" class="md-nav__link">
3989
+ Nautobot Device LifeCycle Management
3990
+ </a>
3991
+ </li>
3992
+
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+ <li class="md-nav__item">
4002
+ <a href="https://docs.nautobot.com/projects/device-onboarding/en/latest/" class="md-nav__link">
4003
+ Nautobot Device Onboarding
4004
+ </a>
4005
+ </li>
4006
+
4007
+
4008
+
4009
+
4010
+
4011
+
4012
+
4013
+
4014
+
4015
+ <li class="md-nav__item">
4016
+ <a href="https://nautobot-plugin-firewall-models.readthedocs.io/en/latest/" class="md-nav__link">
4017
+ Nautobot Firewall Models
2811
4018
  </a>
2812
4019
  </li>
2813
4020
 
@@ -2834,7 +4041,21 @@
2834
4041
 
2835
4042
 
2836
4043
  <li class="md-nav__item">
2837
- <a href="https://nautobot-plugin-ssot.readthedocs.io/en/latest/" class="md-nav__link">
4044
+ <a href="https://docs.nautobot.com/projects/plugin-nornir/en/latest/" class="md-nav__link">
4045
+ Nautobot Plugin Nornir
4046
+ </a>
4047
+ </li>
4048
+
4049
+
4050
+
4051
+
4052
+
4053
+
4054
+
4055
+
4056
+
4057
+ <li class="md-nav__item">
4058
+ <a href="https://docs.nautobot.com/projects/ssot/en/latest/" class="md-nav__link">
2838
4059
  Nautobot Single Source of Truth
2839
4060
  </a>
2840
4061
  </li>
@@ -3000,13 +4221,6 @@
3000
4221
  init
3001
4222
  </a>
3002
4223
 
3003
- </li>
3004
-
3005
- <li class="md-nav__item">
3006
- <a href="#invalidate" class="md-nav__link">
3007
- invalidate
3008
- </a>
3009
-
3010
4224
  </li>
3011
4225
 
3012
4226
  <li class="md-nav__item">
@@ -3105,10 +4319,8 @@
3105
4319
 
3106
4320
 
3107
4321
 
3108
- <a href="https://github.com/nautobot/nautobot/edit/main/nautobot/docs/administration/nautobot-server.md" title="Edit this page" class="md-content__button md-icon">
3109
-
3110
- <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>
3111
- </a>
4322
+
4323
+
3112
4324
 
3113
4325
 
3114
4326
  <h1 id="the-nautobot-server-command">The Nautobot Server Command<a class="headerlink" href="#the-nautobot-server-command" title="Permanent link">&para;</a></h1>
@@ -3319,16 +4531,6 @@ String to use as a random generator seed for reproducible results.</p>
3319
4531
  <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Configuration file created at &#39;/home/example/.nautobot/nautobot_config.py
3320
4532
  </code></pre></div>
3321
4533
  <p>For more information on configuring Nautobot for the first time or on more advanced configuration patterns, please see the guide on <a href="../configuration/index.html">Nautobot Configuration</a>.</p>
3322
- <h3 id="invalidate"><code>invalidate</code><a class="headerlink" href="#invalidate" title="Permanent link">&para;</a></h3>
3323
- <p><code>nautobot-server invalidate</code></p>
3324
- <p>Invalidates cache for entire app, model or particular instance. Most commonly you will see us recommend clearing the entire cache using <code>invalidate all</code>:</p>
3325
- <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>nautobot-server invalidate all
3326
- </code></pre></div>
3327
- <p>There are a number of other options not covered here.</p>
3328
- <div class="admonition note">
3329
- <p class="admonition-title">Note</p>
3330
- <p>This is a built-in management command provided by the <a href="https://github.com/Suor/django-cacheops">Cacheops plugin</a> Nautobot for caching. Please see the official <a href="https://github.com/Suor/django-cacheops#invalidation">Cacheops documentation on <code>invalidate</code></a> for more information.</p>
3331
- </div>
3332
4534
  <h3 id="loaddata"><code>loaddata</code><a class="headerlink" href="#loaddata" title="Permanent link">&para;</a></h3>
3333
4535
  <p><code>nautobot-server loaddata --traceback nautobot_dump.json</code></p>
3334
4536
  <p>To import the data that was exported with <code>nautobot-server dumpdata ...</code> see the following documentation:</p>
@@ -3339,17 +4541,17 @@ String to use as a random generator seed for reproducible results.</p>
3339
4541
  <h3 id="migrate"><code>migrate</code><a class="headerlink" href="#migrate" title="Permanent link">&para;</a></h3>
3340
4542
  <p><code>nautobot-server migrate [app_label] [migration_name]</code></p>
3341
4543
  <p>Initialize a new database or run any pending database migrations to an existing database.</p>
3342
- <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>nautobot-server migrate
4544
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>nautobot-server migrate
3343
4545
  </code></pre></div>
3344
4546
  <p>Output:</p>
3345
- <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time.
3346
- <a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a>Operations to perform:
3347
- <a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
3348
- <a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a>Running migrations:
3349
- <a id="__codelineno-23-5" name="__codelineno-23-5" href="#__codelineno-23-5"></a> Applying contenttypes.0001_initial... OK
3350
- <a id="__codelineno-23-6" name="__codelineno-23-6" href="#__codelineno-23-6"></a> Applying auth.0001_initial... OK
3351
- <a id="__codelineno-23-7" name="__codelineno-23-7" href="#__codelineno-23-7"></a> Applying admin.0001_initial... OK
3352
- <a id="__codelineno-23-8" name="__codelineno-23-8" href="#__codelineno-23-8"></a>... (truncated for brevity of documentation) ...
4547
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time.
4548
+ <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>Operations to perform:
4549
+ <a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
4550
+ <a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a>Running migrations:
4551
+ <a id="__codelineno-22-5" name="__codelineno-22-5" href="#__codelineno-22-5"></a> Applying contenttypes.0001_initial... OK
4552
+ <a id="__codelineno-22-6" name="__codelineno-22-6" href="#__codelineno-22-6"></a> Applying auth.0001_initial... OK
4553
+ <a id="__codelineno-22-7" name="__codelineno-22-7" href="#__codelineno-22-7"></a> Applying admin.0001_initial... OK
4554
+ <a id="__codelineno-22-8" name="__codelineno-22-8" href="#__codelineno-22-8"></a>... (truncated for brevity of documentation) ...
3353
4555
  </code></pre></div>
3354
4556
  <div class="admonition note">
3355
4557
  <p class="admonition-title">Note</p>
@@ -3362,60 +4564,60 @@ String to use as a random generator seed for reproducible results.</p>
3362
4564
  <p class="admonition-title">Danger</p>
3363
4565
  <p>This is an advanced feature that gives you direct access to the Django database models. Use this very cautiously as you can cause irreparable damage to your Nautobot installation.</p>
3364
4566
  </div>
3365
- <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>nautobot-server nbshell
4567
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>nautobot-server nbshell
3366
4568
  </code></pre></div>
3367
4569
  <p>Prompt provided:</p>
3368
- <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a># Shell Plus Model Imports
3369
- <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>from constance.backends.database.models import Constance
3370
- <a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a>from django.contrib.admin.models import LogEntry
3371
- <a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a>from django.contrib.auth.models import Group, Permission
3372
- <a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>from django.contrib.contenttypes.models import ContentType
3373
- <a id="__codelineno-25-6" name="__codelineno-25-6" href="#__codelineno-25-6"></a>from django.contrib.sessions.models import Session
3374
- <a id="__codelineno-25-7" name="__codelineno-25-7" href="#__codelineno-25-7"></a>from django_celery_beat.models import ClockedSchedule, CrontabSchedule, IntervalSchedule, PeriodicTask, PeriodicTasks, SolarSchedule
3375
- <a id="__codelineno-25-8" name="__codelineno-25-8" href="#__codelineno-25-8"></a>from django_celery_results.models import ChordCounter, GroupResult, TaskResult
3376
- <a id="__codelineno-25-9" name="__codelineno-25-9" href="#__codelineno-25-9"></a>from example_plugin.models import AnotherExampleModel, ExampleModel
3377
- <a id="__codelineno-25-10" name="__codelineno-25-10" href="#__codelineno-25-10"></a>from nautobot.circuits.models import Circuit, CircuitTermination, CircuitType, Provider, ProviderNetwork
3378
- <a id="__codelineno-25-11" name="__codelineno-25-11" href="#__codelineno-25-11"></a>from nautobot.dcim.models.cables import Cable, CablePath
3379
- <a id="__codelineno-25-12" name="__codelineno-25-12" href="#__codelineno-25-12"></a>from nautobot.dcim.models.device_component_templates import ConsolePortTemplate, ConsoleServerPortTemplate, DeviceBayTemplate, FrontPortTemplate, InterfaceTemplate, PowerOutletTemplate, PowerPortTemplate, RearPortTemplate
3380
- <a id="__codelineno-25-13" name="__codelineno-25-13" href="#__codelineno-25-13"></a>from nautobot.dcim.models.device_components import ConsolePort, ConsoleServerPort, DeviceBay, FrontPort, Interface, InventoryItem, PowerOutlet, PowerPort, RearPort
3381
- <a id="__codelineno-25-14" name="__codelineno-25-14" href="#__codelineno-25-14"></a>from nautobot.dcim.models.devices import Device, DeviceRedundancyGroup, DeviceType, Manufacturer, Platform, VirtualChassis
3382
- <a id="__codelineno-25-15" name="__codelineno-25-15" href="#__codelineno-25-15"></a>from nautobot.dcim.models.locations import Location, LocationType
3383
- <a id="__codelineno-25-16" name="__codelineno-25-16" href="#__codelineno-25-16"></a>from nautobot.dcim.models.power import PowerFeed, PowerPanel
3384
- <a id="__codelineno-25-17" name="__codelineno-25-17" href="#__codelineno-25-17"></a>from nautobot.dcim.models.racks import Rack, RackGroup, RackReservation
3385
- <a id="__codelineno-25-18" name="__codelineno-25-18" href="#__codelineno-25-18"></a>from nautobot.dcim.models.sites import Region, Site
3386
- <a id="__codelineno-25-19" name="__codelineno-25-19" href="#__codelineno-25-19"></a>from nautobot.extras.models.change_logging import ObjectChange
3387
- <a id="__codelineno-25-20" name="__codelineno-25-20" href="#__codelineno-25-20"></a>from nautobot.extras.models.customfields import ComputedField, CustomField, CustomFieldChoice
3388
- <a id="__codelineno-25-21" name="__codelineno-25-21" href="#__codelineno-25-21"></a>from nautobot.extras.models.datasources import GitRepository
3389
- <a id="__codelineno-25-22" name="__codelineno-25-22" href="#__codelineno-25-22"></a>from nautobot.extras.models.groups import DynamicGroup, DynamicGroupMembership
3390
- <a id="__codelineno-25-23" name="__codelineno-25-23" href="#__codelineno-25-23"></a>from nautobot.extras.models.jobs import Job, JobHook, JobLogEntry, JobResult, ScheduledJob, ScheduledJobs
3391
- <a id="__codelineno-25-24" name="__codelineno-25-24" href="#__codelineno-25-24"></a>from nautobot.extras.models.models import ConfigContext, ConfigContextSchema, CustomLink, ExportTemplate, FileAttachment, FileProxy, GraphQLQuery, HealthCheckTestModel, ImageAttachment, Note, Webhook
3392
- <a id="__codelineno-25-25" name="__codelineno-25-25" href="#__codelineno-25-25"></a>from nautobot.extras.models.relationships import Relationship, RelationshipAssociation
3393
- <a id="__codelineno-25-26" name="__codelineno-25-26" href="#__codelineno-25-26"></a>from nautobot.extras.models.roles import Role
3394
- <a id="__codelineno-25-27" name="__codelineno-25-27" href="#__codelineno-25-27"></a>from nautobot.extras.models.secrets import Secret, SecretsGroup, SecretsGroupAssociation
3395
- <a id="__codelineno-25-28" name="__codelineno-25-28" href="#__codelineno-25-28"></a>from nautobot.extras.models.statuses import Status
3396
- <a id="__codelineno-25-29" name="__codelineno-25-29" href="#__codelineno-25-29"></a>from nautobot.extras.models.tags import Tag, TaggedItem
3397
- <a id="__codelineno-25-30" name="__codelineno-25-30" href="#__codelineno-25-30"></a>from nautobot.ipam.models import IPAddress, Prefix, RIR, RouteTarget, Service, VLAN, VLANGroup, VRF
3398
- <a id="__codelineno-25-31" name="__codelineno-25-31" href="#__codelineno-25-31"></a>from nautobot.tenancy.models import Tenant, TenantGroup
3399
- <a id="__codelineno-25-32" name="__codelineno-25-32" href="#__codelineno-25-32"></a>from nautobot.users.models import AdminGroup, ObjectPermission, Token, User
3400
- <a id="__codelineno-25-33" name="__codelineno-25-33" href="#__codelineno-25-33"></a>from nautobot.virtualization.models import Cluster, ClusterGroup, ClusterType, VMInterface, VirtualMachine
3401
- <a id="__codelineno-25-34" name="__codelineno-25-34" href="#__codelineno-25-34"></a>from social_django.models import Association, Code, Nonce, Partial, UserSocialAuth
3402
- <a id="__codelineno-25-35" name="__codelineno-25-35" href="#__codelineno-25-35"></a># Shell Plus Django Imports
3403
- <a id="__codelineno-25-36" name="__codelineno-25-36" href="#__codelineno-25-36"></a>from django.core.cache import cache
3404
- <a id="__codelineno-25-37" name="__codelineno-25-37" href="#__codelineno-25-37"></a>from django.conf import settings
3405
- <a id="__codelineno-25-38" name="__codelineno-25-38" href="#__codelineno-25-38"></a>from django.contrib.auth import get_user_model
3406
- <a id="__codelineno-25-39" name="__codelineno-25-39" href="#__codelineno-25-39"></a>from django.db import transaction
3407
- <a id="__codelineno-25-40" name="__codelineno-25-40" href="#__codelineno-25-40"></a>from django.db.models import Avg, Case, Count, F, Max, Min, Prefetch, Q, Sum, When
3408
- <a id="__codelineno-25-41" name="__codelineno-25-41" href="#__codelineno-25-41"></a>from django.utils import timezone
3409
- <a id="__codelineno-25-42" name="__codelineno-25-42" href="#__codelineno-25-42"></a>from django.urls import reverse
3410
- <a id="__codelineno-25-43" name="__codelineno-25-43" href="#__codelineno-25-43"></a>from django.db.models import Exists, OuterRef, Subquery
3411
- <a id="__codelineno-25-44" name="__codelineno-25-44" href="#__codelineno-25-44"></a># Django version 3.2.16
3412
- <a id="__codelineno-25-45" name="__codelineno-25-45" href="#__codelineno-25-45"></a># Nautobot version 2.0.0a0
3413
- <a id="__codelineno-25-46" name="__codelineno-25-46" href="#__codelineno-25-46"></a># Example Nautobot App version 1.0.0
3414
- <a id="__codelineno-25-47" name="__codelineno-25-47" href="#__codelineno-25-47"></a>Python 3.7.13 (default, May 11 2022, 08:57:12)
3415
- <a id="__codelineno-25-48" name="__codelineno-25-48" href="#__codelineno-25-48"></a>[GCC 10.2.1 20210110] on linux
3416
- <a id="__codelineno-25-49" name="__codelineno-25-49" href="#__codelineno-25-49"></a>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
3417
- <a id="__codelineno-25-50" name="__codelineno-25-50" href="#__codelineno-25-50"></a>(InteractiveConsole)
3418
- <a id="__codelineno-25-51" name="__codelineno-25-51" href="#__codelineno-25-51"></a>&gt;&gt;&gt;
4570
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a># Shell Plus Model Imports
4571
+ <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>from constance.backends.database.models import Constance
4572
+ <a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a>from django.contrib.admin.models import LogEntry
4573
+ <a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a>from django.contrib.auth.models import Group, Permission
4574
+ <a id="__codelineno-24-5" name="__codelineno-24-5" href="#__codelineno-24-5"></a>from django.contrib.contenttypes.models import ContentType
4575
+ <a id="__codelineno-24-6" name="__codelineno-24-6" href="#__codelineno-24-6"></a>from django.contrib.sessions.models import Session
4576
+ <a id="__codelineno-24-7" name="__codelineno-24-7" href="#__codelineno-24-7"></a>from django_celery_beat.models import ClockedSchedule, CrontabSchedule, IntervalSchedule, PeriodicTask, PeriodicTasks, SolarSchedule
4577
+ <a id="__codelineno-24-8" name="__codelineno-24-8" href="#__codelineno-24-8"></a>from django_celery_results.models import ChordCounter, GroupResult, TaskResult
4578
+ <a id="__codelineno-24-9" name="__codelineno-24-9" href="#__codelineno-24-9"></a>from example_plugin.models import AnotherExampleModel, ExampleModel
4579
+ <a id="__codelineno-24-10" name="__codelineno-24-10" href="#__codelineno-24-10"></a>from nautobot.circuits.models import Circuit, CircuitTermination, CircuitType, Provider, ProviderNetwork
4580
+ <a id="__codelineno-24-11" name="__codelineno-24-11" href="#__codelineno-24-11"></a>from nautobot.dcim.models.cables import Cable, CablePath
4581
+ <a id="__codelineno-24-12" name="__codelineno-24-12" href="#__codelineno-24-12"></a>from nautobot.dcim.models.device_component_templates import ConsolePortTemplate, ConsoleServerPortTemplate, DeviceBayTemplate, FrontPortTemplate, InterfaceTemplate, PowerOutletTemplate, PowerPortTemplate, RearPortTemplate
4582
+ <a id="__codelineno-24-13" name="__codelineno-24-13" href="#__codelineno-24-13"></a>from nautobot.dcim.models.device_components import ConsolePort, ConsoleServerPort, DeviceBay, FrontPort, Interface, InventoryItem, PowerOutlet, PowerPort, RearPort
4583
+ <a id="__codelineno-24-14" name="__codelineno-24-14" href="#__codelineno-24-14"></a>from nautobot.dcim.models.devices import Device, DeviceRedundancyGroup, DeviceType, Manufacturer, Platform, VirtualChassis
4584
+ <a id="__codelineno-24-15" name="__codelineno-24-15" href="#__codelineno-24-15"></a>from nautobot.dcim.models.locations import Location, LocationType
4585
+ <a id="__codelineno-24-16" name="__codelineno-24-16" href="#__codelineno-24-16"></a>from nautobot.dcim.models.power import PowerFeed, PowerPanel
4586
+ <a id="__codelineno-24-17" name="__codelineno-24-17" href="#__codelineno-24-17"></a>from nautobot.dcim.models.racks import Rack, RackGroup, RackReservation
4587
+ <a id="__codelineno-24-18" name="__codelineno-24-18" href="#__codelineno-24-18"></a>from nautobot.dcim.models.sites import Region, Site
4588
+ <a id="__codelineno-24-19" name="__codelineno-24-19" href="#__codelineno-24-19"></a>from nautobot.extras.models.change_logging import ObjectChange
4589
+ <a id="__codelineno-24-20" name="__codelineno-24-20" href="#__codelineno-24-20"></a>from nautobot.extras.models.customfields import ComputedField, CustomField, CustomFieldChoice
4590
+ <a id="__codelineno-24-21" name="__codelineno-24-21" href="#__codelineno-24-21"></a>from nautobot.extras.models.datasources import GitRepository
4591
+ <a id="__codelineno-24-22" name="__codelineno-24-22" href="#__codelineno-24-22"></a>from nautobot.extras.models.groups import DynamicGroup, DynamicGroupMembership
4592
+ <a id="__codelineno-24-23" name="__codelineno-24-23" href="#__codelineno-24-23"></a>from nautobot.extras.models.jobs import Job, JobHook, JobLogEntry, JobResult, ScheduledJob, ScheduledJobs
4593
+ <a id="__codelineno-24-24" name="__codelineno-24-24" href="#__codelineno-24-24"></a>from nautobot.extras.models.models import ConfigContext, ConfigContextSchema, CustomLink, ExportTemplate, FileAttachment, FileProxy, GraphQLQuery, HealthCheckTestModel, ImageAttachment, Note, Webhook
4594
+ <a id="__codelineno-24-25" name="__codelineno-24-25" href="#__codelineno-24-25"></a>from nautobot.extras.models.relationships import Relationship, RelationshipAssociation
4595
+ <a id="__codelineno-24-26" name="__codelineno-24-26" href="#__codelineno-24-26"></a>from nautobot.extras.models.roles import Role
4596
+ <a id="__codelineno-24-27" name="__codelineno-24-27" href="#__codelineno-24-27"></a>from nautobot.extras.models.secrets import Secret, SecretsGroup, SecretsGroupAssociation
4597
+ <a id="__codelineno-24-28" name="__codelineno-24-28" href="#__codelineno-24-28"></a>from nautobot.extras.models.statuses import Status
4598
+ <a id="__codelineno-24-29" name="__codelineno-24-29" href="#__codelineno-24-29"></a>from nautobot.extras.models.tags import Tag, TaggedItem
4599
+ <a id="__codelineno-24-30" name="__codelineno-24-30" href="#__codelineno-24-30"></a>from nautobot.ipam.models import IPAddress, Prefix, RIR, RouteTarget, Service, VLAN, VLANGroup, VRF
4600
+ <a id="__codelineno-24-31" name="__codelineno-24-31" href="#__codelineno-24-31"></a>from nautobot.tenancy.models import Tenant, TenantGroup
4601
+ <a id="__codelineno-24-32" name="__codelineno-24-32" href="#__codelineno-24-32"></a>from nautobot.users.models import AdminGroup, ObjectPermission, Token, User
4602
+ <a id="__codelineno-24-33" name="__codelineno-24-33" href="#__codelineno-24-33"></a>from nautobot.virtualization.models import Cluster, ClusterGroup, ClusterType, VMInterface, VirtualMachine
4603
+ <a id="__codelineno-24-34" name="__codelineno-24-34" href="#__codelineno-24-34"></a>from social_django.models import Association, Code, Nonce, Partial, UserSocialAuth
4604
+ <a id="__codelineno-24-35" name="__codelineno-24-35" href="#__codelineno-24-35"></a># Shell Plus Django Imports
4605
+ <a id="__codelineno-24-36" name="__codelineno-24-36" href="#__codelineno-24-36"></a>from django.core.cache import cache
4606
+ <a id="__codelineno-24-37" name="__codelineno-24-37" href="#__codelineno-24-37"></a>from django.conf import settings
4607
+ <a id="__codelineno-24-38" name="__codelineno-24-38" href="#__codelineno-24-38"></a>from django.contrib.auth import get_user_model
4608
+ <a id="__codelineno-24-39" name="__codelineno-24-39" href="#__codelineno-24-39"></a>from django.db import transaction
4609
+ <a id="__codelineno-24-40" name="__codelineno-24-40" href="#__codelineno-24-40"></a>from django.db.models import Avg, Case, Count, F, Max, Min, Prefetch, Q, Sum, When
4610
+ <a id="__codelineno-24-41" name="__codelineno-24-41" href="#__codelineno-24-41"></a>from django.utils import timezone
4611
+ <a id="__codelineno-24-42" name="__codelineno-24-42" href="#__codelineno-24-42"></a>from django.urls import reverse
4612
+ <a id="__codelineno-24-43" name="__codelineno-24-43" href="#__codelineno-24-43"></a>from django.db.models import Exists, OuterRef, Subquery
4613
+ <a id="__codelineno-24-44" name="__codelineno-24-44" href="#__codelineno-24-44"></a># Django version 3.2.18
4614
+ <a id="__codelineno-24-45" name="__codelineno-24-45" href="#__codelineno-24-45"></a># Nautobot version 2.0.0a2
4615
+ <a id="__codelineno-24-46" name="__codelineno-24-46" href="#__codelineno-24-46"></a># Example Nautobot App version 1.0.0
4616
+ <a id="__codelineno-24-47" name="__codelineno-24-47" href="#__codelineno-24-47"></a>Python 3.8.16 (default, Mar 23 2023, 04:48:11)
4617
+ <a id="__codelineno-24-48" name="__codelineno-24-48" href="#__codelineno-24-48"></a>[GCC 10.2.1 20210110] on linux
4618
+ <a id="__codelineno-24-49" name="__codelineno-24-49" href="#__codelineno-24-49"></a>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
4619
+ <a id="__codelineno-24-50" name="__codelineno-24-50" href="#__codelineno-24-50"></a>(InteractiveConsole)
4620
+ <a id="__codelineno-24-51" name="__codelineno-24-51" href="#__codelineno-24-51"></a>&gt;&gt;&gt;
3419
4621
  </code></pre></div>
3420
4622
  <p>Please see the dedicated guide on the <a href="nautobot-shell.html">Nautobot Shell</a> for more information.</p>
3421
4623
  <h3 id="post_upgrade"><code>post_upgrade</code><a class="headerlink" href="#post_upgrade" title="Permanent link">&para;</a></h3>
@@ -3428,52 +4630,55 @@ String to use as a random generator seed for reproducible results.</p>
3428
4630
  <li><code>collectstatic</code></li>
3429
4631
  <li><code>remove_stale_contenttypes</code></li>
3430
4632
  <li><code>clearsessions</code></li>
3431
- <li><code>invalidate all</code></li>
3432
4633
  </ul>
3433
4634
  <div class="admonition note">
3434
4635
  <p class="admonition-title">Note</p>
3435
4636
  <p>Commands listed here that are not covered in this document here are Django built-in commands.</p>
3436
4637
  </div>
4638
+ <div class="admonition version-removed">
4639
+ <p class="admonition-title">Removed in version 2.0.0</p>
4640
+ <p>With the removal of <code>django-cacheops</code> from Nautobot, this command no longer runs <code>invalidate all</code>.</p>
4641
+ </div>
3437
4642
  <p><code>--no-clearsessions</code><br />
3438
4643
  Do not automatically clean out expired sessions.</p>
3439
4644
  <p><code>--no-collectstatic</code><br />
3440
4645
  Do not automatically collect static files into a single location.</p>
3441
- <p><code>--no-invalidate-all</code><br />
3442
- Do not automatically invalidate cache for entire application.</p>
3443
4646
  <p><code>--no-migrate</code><br />
3444
4647
  Do not automatically perform any database migrations.</p>
3445
4648
  <p><code>--no-remove-stale-contenttypes</code><br />
3446
4649
  Do not automatically remove stale content types.</p>
3447
4650
  <p><code>--no-trace-paths</code><br />
3448
4651
  Do not automatically generate missing cable paths.</p>
3449
- <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>nautobot-server post_upgrade
4652
+ <div class="admonition version-removed">
4653
+ <p class="admonition-title">Removed in version 2.0.0</p>
4654
+ <p>With the removal of <code>django-cacheops</code> from Nautobot, the <code>--no-invalidate-all</code> flag was removed from this command.</p>
4655
+ </div>
4656
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>nautobot-server post_upgrade
3450
4657
  </code></pre></div>
3451
4658
  <p>Example Output:</p>
3452
- <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>Performing database migrations...
3453
- <a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a>Operations to perform:
3454
- <a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
3455
- <a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a>Running migrations:
3456
- <a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a> No migrations to apply.
3457
- <a id="__codelineno-27-6" name="__codelineno-27-6" href="#__codelineno-27-6"></a>
3458
- <a id="__codelineno-27-7" name="__codelineno-27-7" href="#__codelineno-27-7"></a>Generating cable paths...
3459
- <a id="__codelineno-27-8" name="__codelineno-27-8" href="#__codelineno-27-8"></a>Found no missing circuit termination paths; skipping
3460
- <a id="__codelineno-27-9" name="__codelineno-27-9" href="#__codelineno-27-9"></a>Found no missing console port paths; skipping
3461
- <a id="__codelineno-27-10" name="__codelineno-27-10" href="#__codelineno-27-10"></a>Found no missing console server port paths; skipping
3462
- <a id="__codelineno-27-11" name="__codelineno-27-11" href="#__codelineno-27-11"></a>Found no missing interface paths; skipping
3463
- <a id="__codelineno-27-12" name="__codelineno-27-12" href="#__codelineno-27-12"></a>Found no missing power feed paths; skipping
3464
- <a id="__codelineno-27-13" name="__codelineno-27-13" href="#__codelineno-27-13"></a>Found no missing power outlet paths; skipping
3465
- <a id="__codelineno-27-14" name="__codelineno-27-14" href="#__codelineno-27-14"></a>Found no missing power port paths; skipping
3466
- <a id="__codelineno-27-15" name="__codelineno-27-15" href="#__codelineno-27-15"></a>Finished.
3467
- <a id="__codelineno-27-16" name="__codelineno-27-16" href="#__codelineno-27-16"></a>
3468
- <a id="__codelineno-27-17" name="__codelineno-27-17" href="#__codelineno-27-17"></a>Collecting static files...
3469
- <a id="__codelineno-27-18" name="__codelineno-27-18" href="#__codelineno-27-18"></a>
3470
- <a id="__codelineno-27-19" name="__codelineno-27-19" href="#__codelineno-27-19"></a>0 static files copied to &#39;/opt/nautobot/static&#39;, 965 unmodified.
3471
- <a id="__codelineno-27-20" name="__codelineno-27-20" href="#__codelineno-27-20"></a>
3472
- <a id="__codelineno-27-21" name="__codelineno-27-21" href="#__codelineno-27-21"></a>Removing stale content types...
3473
- <a id="__codelineno-27-22" name="__codelineno-27-22" href="#__codelineno-27-22"></a>
3474
- <a id="__codelineno-27-23" name="__codelineno-27-23" href="#__codelineno-27-23"></a>Removing expired sessions...
3475
- <a id="__codelineno-27-24" name="__codelineno-27-24" href="#__codelineno-27-24"></a>
3476
- <a id="__codelineno-27-25" name="__codelineno-27-25" href="#__codelineno-27-25"></a>Invalidating cache...
4659
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Performing database migrations...
4660
+ <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a>Operations to perform:
4661
+ <a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
4662
+ <a id="__codelineno-26-4" name="__codelineno-26-4" href="#__codelineno-26-4"></a>Running migrations:
4663
+ <a id="__codelineno-26-5" name="__codelineno-26-5" href="#__codelineno-26-5"></a> No migrations to apply.
4664
+ <a id="__codelineno-26-6" name="__codelineno-26-6" href="#__codelineno-26-6"></a>
4665
+ <a id="__codelineno-26-7" name="__codelineno-26-7" href="#__codelineno-26-7"></a>Generating cable paths...
4666
+ <a id="__codelineno-26-8" name="__codelineno-26-8" href="#__codelineno-26-8"></a>Found no missing circuit termination paths; skipping
4667
+ <a id="__codelineno-26-9" name="__codelineno-26-9" href="#__codelineno-26-9"></a>Found no missing console port paths; skipping
4668
+ <a id="__codelineno-26-10" name="__codelineno-26-10" href="#__codelineno-26-10"></a>Found no missing console server port paths; skipping
4669
+ <a id="__codelineno-26-11" name="__codelineno-26-11" href="#__codelineno-26-11"></a>Found no missing interface paths; skipping
4670
+ <a id="__codelineno-26-12" name="__codelineno-26-12" href="#__codelineno-26-12"></a>Found no missing power feed paths; skipping
4671
+ <a id="__codelineno-26-13" name="__codelineno-26-13" href="#__codelineno-26-13"></a>Found no missing power outlet paths; skipping
4672
+ <a id="__codelineno-26-14" name="__codelineno-26-14" href="#__codelineno-26-14"></a>Found no missing power port paths; skipping
4673
+ <a id="__codelineno-26-15" name="__codelineno-26-15" href="#__codelineno-26-15"></a>Finished.
4674
+ <a id="__codelineno-26-16" name="__codelineno-26-16" href="#__codelineno-26-16"></a>
4675
+ <a id="__codelineno-26-17" name="__codelineno-26-17" href="#__codelineno-26-17"></a>Collecting static files...
4676
+ <a id="__codelineno-26-18" name="__codelineno-26-18" href="#__codelineno-26-18"></a>
4677
+ <a id="__codelineno-26-19" name="__codelineno-26-19" href="#__codelineno-26-19"></a>0 static files copied to &#39;/opt/nautobot/static&#39;, 965 unmodified.
4678
+ <a id="__codelineno-26-20" name="__codelineno-26-20" href="#__codelineno-26-20"></a>
4679
+ <a id="__codelineno-26-21" name="__codelineno-26-21" href="#__codelineno-26-21"></a>Removing stale content types...
4680
+ <a id="__codelineno-26-22" name="__codelineno-26-22" href="#__codelineno-26-22"></a>
4681
+ <a id="__codelineno-26-23" name="__codelineno-26-23" href="#__codelineno-26-23"></a>Removing expired sessions...
3477
4682
  </code></pre></div>
3478
4683
  <h3 id="remove_stale_scheduled_jobs"><code>remove_stale_scheduled_jobs</code><a class="headerlink" href="#remove_stale_scheduled_jobs" title="Permanent link">&para;</a></h3>
3479
4684
  <div class="admonition version-added">
@@ -3485,40 +4690,40 @@ Do not automatically generate missing cable paths.</p>
3485
4690
  <p><code>nautobot-server renaturalize [app_label.ModelName [app_label.ModelName ...]]</code></p>
3486
4691
  <p>Recalculate natural ordering values for the specified models.</p>
3487
4692
  <p>This defaults to recalculating natural ordering on all models which have one or more fields of type <code>NaturalOrderingField</code>:</p>
3488
- <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>nautobot-server renaturalize
4693
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>nautobot-server renaturalize
3489
4694
  </code></pre></div>
3490
4695
  <p>Example output:</p>
3491
- <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>Renaturalizing 21 models.
3492
- <a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a>dcim.ConsolePort.name (_name)... 196
3493
- <a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a>dcim.ConsoleServerPort.name (_name)... 0
3494
- <a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a>dcim.PowerPort.name (_name)... 392
3495
- <a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>dcim.PowerOutlet.name (_name)... 0
3496
- <a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a>dcim.Interface.name (_name)... 7161
3497
- <a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a>dcim.FrontPort.name (_name)... 0
3498
- <a id="__codelineno-29-8" name="__codelineno-29-8" href="#__codelineno-29-8"></a>dcim.RearPort.name (_name)... 0
3499
- <a id="__codelineno-29-9" name="__codelineno-29-9" href="#__codelineno-29-9"></a>dcim.DeviceBay.name (_name)... 0
3500
- <a id="__codelineno-29-10" name="__codelineno-29-10" href="#__codelineno-29-10"></a>dcim.InventoryItem.name (_name)... 1
3501
- <a id="__codelineno-29-11" name="__codelineno-29-11" href="#__codelineno-29-11"></a>dcim.Device.name (_name)... 208
3502
- <a id="__codelineno-29-12" name="__codelineno-29-12" href="#__codelineno-29-12"></a>dcim.ConsolePortTemplate.name (_name)... 2
3503
- <a id="__codelineno-29-13" name="__codelineno-29-13" href="#__codelineno-29-13"></a>dcim.ConsoleServerPortTemplate.name (_name)... 0
3504
- <a id="__codelineno-29-14" name="__codelineno-29-14" href="#__codelineno-29-14"></a>dcim.PowerPortTemplate.name (_name)... 4
3505
- <a id="__codelineno-29-15" name="__codelineno-29-15" href="#__codelineno-29-15"></a>dcim.PowerOutletTemplate.name (_name)... 0
3506
- <a id="__codelineno-29-16" name="__codelineno-29-16" href="#__codelineno-29-16"></a>dcim.InterfaceTemplate.name (_name)... 221
3507
- <a id="__codelineno-29-17" name="__codelineno-29-17" href="#__codelineno-29-17"></a>dcim.FrontPortTemplate.name (_name)... 0
3508
- <a id="__codelineno-29-18" name="__codelineno-29-18" href="#__codelineno-29-18"></a>dcim.RearPortTemplate.name (_name)... 0
3509
- <a id="__codelineno-29-19" name="__codelineno-29-19" href="#__codelineno-29-19"></a>dcim.DeviceBayTemplate.name (_name)... 0
3510
- <a id="__codelineno-29-20" name="__codelineno-29-20" href="#__codelineno-29-20"></a>dcim.Rack.name (_name)... 156
3511
- <a id="__codelineno-29-21" name="__codelineno-29-21" href="#__codelineno-29-21"></a>dcim.Site.name (_name)... 22
3512
- <a id="__codelineno-29-22" name="__codelineno-29-22" href="#__codelineno-29-22"></a>virtualization.VMInterface.name (_name)... 0
3513
- <a id="__codelineno-29-23" name="__codelineno-29-23" href="#__codelineno-29-23"></a>Done.
4696
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>Renaturalizing 21 models.
4697
+ <a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a>dcim.ConsolePort.name (_name)... 196
4698
+ <a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a>dcim.ConsoleServerPort.name (_name)... 0
4699
+ <a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a>dcim.PowerPort.name (_name)... 392
4700
+ <a id="__codelineno-28-5" name="__codelineno-28-5" href="#__codelineno-28-5"></a>dcim.PowerOutlet.name (_name)... 0
4701
+ <a id="__codelineno-28-6" name="__codelineno-28-6" href="#__codelineno-28-6"></a>dcim.Interface.name (_name)... 7161
4702
+ <a id="__codelineno-28-7" name="__codelineno-28-7" href="#__codelineno-28-7"></a>dcim.FrontPort.name (_name)... 0
4703
+ <a id="__codelineno-28-8" name="__codelineno-28-8" href="#__codelineno-28-8"></a>dcim.RearPort.name (_name)... 0
4704
+ <a id="__codelineno-28-9" name="__codelineno-28-9" href="#__codelineno-28-9"></a>dcim.DeviceBay.name (_name)... 0
4705
+ <a id="__codelineno-28-10" name="__codelineno-28-10" href="#__codelineno-28-10"></a>dcim.InventoryItem.name (_name)... 1
4706
+ <a id="__codelineno-28-11" name="__codelineno-28-11" href="#__codelineno-28-11"></a>dcim.Device.name (_name)... 208
4707
+ <a id="__codelineno-28-12" name="__codelineno-28-12" href="#__codelineno-28-12"></a>dcim.ConsolePortTemplate.name (_name)... 2
4708
+ <a id="__codelineno-28-13" name="__codelineno-28-13" href="#__codelineno-28-13"></a>dcim.ConsoleServerPortTemplate.name (_name)... 0
4709
+ <a id="__codelineno-28-14" name="__codelineno-28-14" href="#__codelineno-28-14"></a>dcim.PowerPortTemplate.name (_name)... 4
4710
+ <a id="__codelineno-28-15" name="__codelineno-28-15" href="#__codelineno-28-15"></a>dcim.PowerOutletTemplate.name (_name)... 0
4711
+ <a id="__codelineno-28-16" name="__codelineno-28-16" href="#__codelineno-28-16"></a>dcim.InterfaceTemplate.name (_name)... 221
4712
+ <a id="__codelineno-28-17" name="__codelineno-28-17" href="#__codelineno-28-17"></a>dcim.FrontPortTemplate.name (_name)... 0
4713
+ <a id="__codelineno-28-18" name="__codelineno-28-18" href="#__codelineno-28-18"></a>dcim.RearPortTemplate.name (_name)... 0
4714
+ <a id="__codelineno-28-19" name="__codelineno-28-19" href="#__codelineno-28-19"></a>dcim.DeviceBayTemplate.name (_name)... 0
4715
+ <a id="__codelineno-28-20" name="__codelineno-28-20" href="#__codelineno-28-20"></a>dcim.Rack.name (_name)... 156
4716
+ <a id="__codelineno-28-21" name="__codelineno-28-21" href="#__codelineno-28-21"></a>dcim.Site.name (_name)... 22
4717
+ <a id="__codelineno-28-22" name="__codelineno-28-22" href="#__codelineno-28-22"></a>virtualization.VMInterface.name (_name)... 0
4718
+ <a id="__codelineno-28-23" name="__codelineno-28-23" href="#__codelineno-28-23"></a>Done.
3514
4719
  </code></pre></div>
3515
4720
  <p>You may optionally specify or more specific models (each prefixed with its app_label) to renaturalize:</p>
3516
- <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>nautobot-server renaturalize dcim.Device
4721
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>nautobot-server renaturalize dcim.Device
3517
4722
  </code></pre></div>
3518
4723
  <p>Example output:</p>
3519
- <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>Renaturalizing 1 models.
3520
- <a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a>dcim.Device.name (_name)... 208
3521
- <a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a>Done.
4724
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>Renaturalizing 1 models.
4725
+ <a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a>dcim.Device.name (_name)... 208
4726
+ <a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a>Done.
3522
4727
  </code></pre></div>
3523
4728
  <h3 id="runjob"><code>runjob</code><a class="headerlink" href="#runjob" title="Permanent link">&para;</a></h3>
3524
4729
  <p><code>nautobot-server runjob [job]</code></p>
@@ -3527,7 +4732,7 @@ Do not automatically generate missing cable paths.</p>
3527
4732
  Commit changes to DB (defaults to dry-run if unset). <code>--username</code> is mandatory if using this argument.</p>
3528
4733
  <p><code>--username &lt;username&gt;</code><br />
3529
4734
  User account to impersonate as the requester of this job.</p>
3530
- <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server runjob --commit --username someuser local/example/MyJobWithNoVars
4735
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>nautobot-server runjob --commit --username someuser local/example/MyJobWithNoVars
3531
4736
  </code></pre></div>
3532
4737
  <p>Note that there is presently no option to provide input parameters (<code>data</code>) for jobs via the CLI.</p>
3533
4738
  <p>Please see the <a href="../additional-features/jobs.html">guide on Jobs</a> for more information on working with and running jobs.</p>
@@ -3538,43 +4743,43 @@ User account to impersonate as the requester of this job.</p>
3538
4743
  <p class="admonition-title">Note</p>
3539
4744
  <p>uWSGI offers an overwhelming amount of command-line arguments that could not possibly be covered here. Please see the <a href="https://uwsgi-docs.readthedocs.io/en/latest/Options.html">official uWSGI Options guide</a> for more information.</p>
3540
4745
  </div>
3541
- <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>nautobot-server start --ini ./uwsgi.ini
4746
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server start --ini ./uwsgi.ini
3542
4747
  </code></pre></div>
3543
4748
  <p>Example output:</p>
3544
- <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>[uWSGI] getting INI configuration from ./uwsgi.ini
3545
- <a id="__codelineno-34-2" name="__codelineno-34-2" href="#__codelineno-34-2"></a>[uwsgi-static] added mapping for /static =&gt; /opt/nautobot/static
3546
- <a id="__codelineno-34-3" name="__codelineno-34-3" href="#__codelineno-34-3"></a>*** Starting uWSGI 2.0.19.1 (64bit) on [Thu Mar 11 21:13:22 2021] ***
3547
- <a id="__codelineno-34-4" name="__codelineno-34-4" href="#__codelineno-34-4"></a>compiled with version: 8.3.1 20190311 (Red Hat 8.3.1-3) on 23 September 2020 02:39:40
3548
- <a id="__codelineno-34-5" name="__codelineno-34-5" href="#__codelineno-34-5"></a>os: Linux-5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020
3549
- <a id="__codelineno-34-6" name="__codelineno-34-6" href="#__codelineno-34-6"></a>nodename: jathan-nautobot-testing
3550
- <a id="__codelineno-34-7" name="__codelineno-34-7" href="#__codelineno-34-7"></a>machine: x86_64
3551
- <a id="__codelineno-34-8" name="__codelineno-34-8" href="#__codelineno-34-8"></a>clock source: unix
3552
- <a id="__codelineno-34-9" name="__codelineno-34-9" href="#__codelineno-34-9"></a>pcre jit disabled
3553
- <a id="__codelineno-34-10" name="__codelineno-34-10" href="#__codelineno-34-10"></a>detected number of CPU cores: 48
3554
- <a id="__codelineno-34-11" name="__codelineno-34-11" href="#__codelineno-34-11"></a>current working directory: /opt/nautobot
3555
- <a id="__codelineno-34-12" name="__codelineno-34-12" href="#__codelineno-34-12"></a>detected binary path: /usr/bin/python3.8
3556
- <a id="__codelineno-34-13" name="__codelineno-34-13" href="#__codelineno-34-13"></a>your processes number limit is 256070
3557
- <a id="__codelineno-34-14" name="__codelineno-34-14" href="#__codelineno-34-14"></a>your memory page size is 4096 bytes
3558
- <a id="__codelineno-34-15" name="__codelineno-34-15" href="#__codelineno-34-15"></a>detected max file descriptor number: 1024
3559
- <a id="__codelineno-34-16" name="__codelineno-34-16" href="#__codelineno-34-16"></a>building mime-types dictionary from file /etc/mime.types...567 entry found
3560
- <a id="__codelineno-34-17" name="__codelineno-34-17" href="#__codelineno-34-17"></a>lock engine: pthread robust mutexes
3561
- <a id="__codelineno-34-18" name="__codelineno-34-18" href="#__codelineno-34-18"></a>thunder lock: disabled (you can enable it with --thunder-lock)
3562
- <a id="__codelineno-34-19" name="__codelineno-34-19" href="#__codelineno-34-19"></a>uwsgi socket 0 bound to TCP address 0.0.0.0:9191 fd 7
3563
- <a id="__codelineno-34-20" name="__codelineno-34-20" href="#__codelineno-34-20"></a>Python version: 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
3564
- <a id="__codelineno-34-21" name="__codelineno-34-21" href="#__codelineno-34-21"></a>--- Python VM already initialized ---
3565
- <a id="__codelineno-34-22" name="__codelineno-34-22" href="#__codelineno-34-22"></a>Python main interpreter initialized at 0x2573e30
3566
- <a id="__codelineno-34-23" name="__codelineno-34-23" href="#__codelineno-34-23"></a>python threads support enabled
3567
- <a id="__codelineno-34-24" name="__codelineno-34-24" href="#__codelineno-34-24"></a>your server socket listen backlog is limited to 1024 connections
3568
- <a id="__codelineno-34-25" name="__codelineno-34-25" href="#__codelineno-34-25"></a>your mercy for graceful operations on workers is 60 seconds
3569
- <a id="__codelineno-34-26" name="__codelineno-34-26" href="#__codelineno-34-26"></a>mapped 636432 bytes (621 KB) for 15 cores
3570
- <a id="__codelineno-34-27" name="__codelineno-34-27" href="#__codelineno-34-27"></a>*** Operational MODE: preforking+threaded ***
3571
- <a id="__codelineno-34-28" name="__codelineno-34-28" href="#__codelineno-34-28"></a>WSGI app 0 (mountpoint=&#39;&#39;) ready in 0 seconds on interpreter 0x2573e30 pid: 112153 (default app)
3572
- <a id="__codelineno-34-29" name="__codelineno-34-29" href="#__codelineno-34-29"></a>spawned uWSGI master process (pid: 112153)
3573
- <a id="__codelineno-34-30" name="__codelineno-34-30" href="#__codelineno-34-30"></a>spawned uWSGI worker 1 (pid: 112159, cores: 3)
3574
- <a id="__codelineno-34-31" name="__codelineno-34-31" href="#__codelineno-34-31"></a>spawned uWSGI worker 2 (pid: 112162, cores: 3)
3575
- <a id="__codelineno-34-32" name="__codelineno-34-32" href="#__codelineno-34-32"></a>spawned uWSGI worker 3 (pid: 112165, cores: 3)
3576
- <a id="__codelineno-34-33" name="__codelineno-34-33" href="#__codelineno-34-33"></a>spawned uWSGI worker 4 (pid: 112168, cores: 3)
3577
- <a id="__codelineno-34-34" name="__codelineno-34-34" href="#__codelineno-34-34"></a>spawned uWSGI worker 5 (pid: 112171, cores: 3)
4749
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>[uWSGI] getting INI configuration from ./uwsgi.ini
4750
+ <a id="__codelineno-33-2" name="__codelineno-33-2" href="#__codelineno-33-2"></a>[uwsgi-static] added mapping for /static =&gt; /opt/nautobot/static
4751
+ <a id="__codelineno-33-3" name="__codelineno-33-3" href="#__codelineno-33-3"></a>*** Starting uWSGI 2.0.19.1 (64bit) on [Thu Mar 11 21:13:22 2021] ***
4752
+ <a id="__codelineno-33-4" name="__codelineno-33-4" href="#__codelineno-33-4"></a>compiled with version: 8.3.1 20190311 (Red Hat 8.3.1-3) on 23 September 2020 02:39:40
4753
+ <a id="__codelineno-33-5" name="__codelineno-33-5" href="#__codelineno-33-5"></a>os: Linux-5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020
4754
+ <a id="__codelineno-33-6" name="__codelineno-33-6" href="#__codelineno-33-6"></a>nodename: jathan-nautobot-testing
4755
+ <a id="__codelineno-33-7" name="__codelineno-33-7" href="#__codelineno-33-7"></a>machine: x86_64
4756
+ <a id="__codelineno-33-8" name="__codelineno-33-8" href="#__codelineno-33-8"></a>clock source: unix
4757
+ <a id="__codelineno-33-9" name="__codelineno-33-9" href="#__codelineno-33-9"></a>pcre jit disabled
4758
+ <a id="__codelineno-33-10" name="__codelineno-33-10" href="#__codelineno-33-10"></a>detected number of CPU cores: 48
4759
+ <a id="__codelineno-33-11" name="__codelineno-33-11" href="#__codelineno-33-11"></a>current working directory: /opt/nautobot
4760
+ <a id="__codelineno-33-12" name="__codelineno-33-12" href="#__codelineno-33-12"></a>detected binary path: /usr/bin/python3.8
4761
+ <a id="__codelineno-33-13" name="__codelineno-33-13" href="#__codelineno-33-13"></a>your processes number limit is 256070
4762
+ <a id="__codelineno-33-14" name="__codelineno-33-14" href="#__codelineno-33-14"></a>your memory page size is 4096 bytes
4763
+ <a id="__codelineno-33-15" name="__codelineno-33-15" href="#__codelineno-33-15"></a>detected max file descriptor number: 1024
4764
+ <a id="__codelineno-33-16" name="__codelineno-33-16" href="#__codelineno-33-16"></a>building mime-types dictionary from file /etc/mime.types...567 entry found
4765
+ <a id="__codelineno-33-17" name="__codelineno-33-17" href="#__codelineno-33-17"></a>lock engine: pthread robust mutexes
4766
+ <a id="__codelineno-33-18" name="__codelineno-33-18" href="#__codelineno-33-18"></a>thunder lock: disabled (you can enable it with --thunder-lock)
4767
+ <a id="__codelineno-33-19" name="__codelineno-33-19" href="#__codelineno-33-19"></a>uwsgi socket 0 bound to TCP address 0.0.0.0:9191 fd 7
4768
+ <a id="__codelineno-33-20" name="__codelineno-33-20" href="#__codelineno-33-20"></a>Python version: 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
4769
+ <a id="__codelineno-33-21" name="__codelineno-33-21" href="#__codelineno-33-21"></a>--- Python VM already initialized ---
4770
+ <a id="__codelineno-33-22" name="__codelineno-33-22" href="#__codelineno-33-22"></a>Python main interpreter initialized at 0x2573e30
4771
+ <a id="__codelineno-33-23" name="__codelineno-33-23" href="#__codelineno-33-23"></a>python threads support enabled
4772
+ <a id="__codelineno-33-24" name="__codelineno-33-24" href="#__codelineno-33-24"></a>your server socket listen backlog is limited to 1024 connections
4773
+ <a id="__codelineno-33-25" name="__codelineno-33-25" href="#__codelineno-33-25"></a>your mercy for graceful operations on workers is 60 seconds
4774
+ <a id="__codelineno-33-26" name="__codelineno-33-26" href="#__codelineno-33-26"></a>mapped 636432 bytes (621 KB) for 15 cores
4775
+ <a id="__codelineno-33-27" name="__codelineno-33-27" href="#__codelineno-33-27"></a>*** Operational MODE: preforking+threaded ***
4776
+ <a id="__codelineno-33-28" name="__codelineno-33-28" href="#__codelineno-33-28"></a>WSGI app 0 (mountpoint=&#39;&#39;) ready in 0 seconds on interpreter 0x2573e30 pid: 112153 (default app)
4777
+ <a id="__codelineno-33-29" name="__codelineno-33-29" href="#__codelineno-33-29"></a>spawned uWSGI master process (pid: 112153)
4778
+ <a id="__codelineno-33-30" name="__codelineno-33-30" href="#__codelineno-33-30"></a>spawned uWSGI worker 1 (pid: 112159, cores: 3)
4779
+ <a id="__codelineno-33-31" name="__codelineno-33-31" href="#__codelineno-33-31"></a>spawned uWSGI worker 2 (pid: 112162, cores: 3)
4780
+ <a id="__codelineno-33-32" name="__codelineno-33-32" href="#__codelineno-33-32"></a>spawned uWSGI worker 3 (pid: 112165, cores: 3)
4781
+ <a id="__codelineno-33-33" name="__codelineno-33-33" href="#__codelineno-33-33"></a>spawned uWSGI worker 4 (pid: 112168, cores: 3)
4782
+ <a id="__codelineno-33-34" name="__codelineno-33-34" href="#__codelineno-33-34"></a>spawned uWSGI worker 5 (pid: 112171, cores: 3)
3578
4783
  </code></pre></div>
3579
4784
  <p>Please see the guide on <a href="../installation/services.html">Deploying Nautobot Services</a> for our recommended configuration for use with uWSGI.</p>
3580
4785
  <h3 id="startplugin"><code>startplugin</code><a class="headerlink" href="#startplugin" title="Permanent link">&para;</a></h3>
@@ -3582,8 +4787,8 @@ User account to impersonate as the requester of this job.</p>
3582
4787
  <p>Create a new plugin with <code>name</code>.</p>
3583
4788
  <p>This command is similar to the django-admin <a href="https://docs.djangoproject.com/en/stable/ref/django-admin/#startapp">startapp</a> command, but with a default template directory (<code>--template</code>) of <code>nautobot/core/templates/plugin_template</code>. This command assists with creating a basic file structure for beginning development of a new Nautobot plugin.</p>
3584
4789
  <p>Without passing in the destination directory, <code>nautobot-server startplugin</code> will use your current directory and the <code>name</code> argument provided to create a new directory. We recommend providing a directory so that the plugin can be installed or published easily. Here is an example:</p>
3585
- <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>mkdir -p ~/myplugin/myplugin
3586
- <a id="__codelineno-35-2" name="__codelineno-35-2" href="#__codelineno-35-2"></a>nautobot-server startplugin myplugin ~/myplugin/myplugin
4790
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>mkdir -p ~/myplugin/myplugin
4791
+ <a id="__codelineno-34-2" name="__codelineno-34-2" href="#__codelineno-34-2"></a>nautobot-server startplugin myplugin ~/myplugin/myplugin
3587
4792
  </code></pre></div>
3588
4793
  <p>Additional options such as <code>--name</code> or <code>--extension</code> can be found in the Django <a href="https://docs.djangoproject.com/en/stable/ref/django-admin/#startapp">documentation</a>.</p>
3589
4794
  <h3 id="trace_paths"><code>trace_paths</code><a class="headerlink" href="#trace_paths" title="Permanent link">&para;</a></h3>
@@ -3594,17 +4799,17 @@ User account to impersonate as the requester of this job.</p>
3594
4799
  Force recalculation of all existing cable paths.</p>
3595
4800
  <p><code>--no-input</code><br />
3596
4801
  Do not prompt user for any input/confirmation.</p>
3597
- <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>nautobot-server trace_paths
4802
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>nautobot-server trace_paths
3598
4803
  </code></pre></div>
3599
4804
  <p>Example output:</p>
3600
- <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>Found no missing circuit termination paths; skipping
3601
- <a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a>Found no missing console port paths; skipping
3602
- <a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a>Found no missing console server port paths; skipping
3603
- <a id="__codelineno-37-4" name="__codelineno-37-4" href="#__codelineno-37-4"></a>Found no missing interface paths; skipping
3604
- <a id="__codelineno-37-5" name="__codelineno-37-5" href="#__codelineno-37-5"></a>Found no missing power feed paths; skipping
3605
- <a id="__codelineno-37-6" name="__codelineno-37-6" href="#__codelineno-37-6"></a>Found no missing power outlet paths; skipping
3606
- <a id="__codelineno-37-7" name="__codelineno-37-7" href="#__codelineno-37-7"></a>Found no missing power port paths; skipping
3607
- <a id="__codelineno-37-8" name="__codelineno-37-8" href="#__codelineno-37-8"></a>Finished.
4805
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>Found no missing circuit termination paths; skipping
4806
+ <a id="__codelineno-36-2" name="__codelineno-36-2" href="#__codelineno-36-2"></a>Found no missing console port paths; skipping
4807
+ <a id="__codelineno-36-3" name="__codelineno-36-3" href="#__codelineno-36-3"></a>Found no missing console server port paths; skipping
4808
+ <a id="__codelineno-36-4" name="__codelineno-36-4" href="#__codelineno-36-4"></a>Found no missing interface paths; skipping
4809
+ <a id="__codelineno-36-5" name="__codelineno-36-5" href="#__codelineno-36-5"></a>Found no missing power feed paths; skipping
4810
+ <a id="__codelineno-36-6" name="__codelineno-36-6" href="#__codelineno-36-6"></a>Found no missing power outlet paths; skipping
4811
+ <a id="__codelineno-36-7" name="__codelineno-36-7" href="#__codelineno-36-7"></a>Found no missing power port paths; skipping
4812
+ <a id="__codelineno-36-8" name="__codelineno-36-8" href="#__codelineno-36-8"></a>Finished.
3608
4813
  </code></pre></div>
3609
4814
  <div class="admonition note">
3610
4815
  <p class="admonition-title">Note</p>
@@ -3617,10 +4822,10 @@ Do not prompt user for any input/confirmation.</p>
3617
4822
  Optional port number (default: <code>9000</code>)</p>
3618
4823
  <p><code>--no-headers</code><br />
3619
4824
  Hide HTTP request headers.</p>
3620
- <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>nautobot-server webhook_receiver --port 9001 --no-headers
4825
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>nautobot-server webhook_receiver --port 9001 --no-headers
3621
4826
  </code></pre></div>
3622
4827
  <p>Example output:</p>
3623
- <div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a>Listening on port http://localhost:9000. Stop with CONTROL-C.
4828
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>Listening on port http://localhost:9000. Stop with CONTROL-C.
3624
4829
  </code></pre></div>
3625
4830
  <p>Please see the guide on <a href="../models/extras/webhook.html#troubleshooting">Troubleshooting Webhooks</a> for more information.</p>
3626
4831
 
@@ -3639,42 +4844,6 @@ Hide HTTP request headers.</p>
3639
4844
 
3640
4845
  <footer class="md-footer">
3641
4846
 
3642
-
3643
- <nav class="md-footer__inner md-grid" aria-label="Footer" >
3644
-
3645
-
3646
- <a href="../configuration/authentication/remote.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Remote Header" rel="prev">
3647
- <div class="md-footer__button md-icon">
3648
- <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>
3649
- </div>
3650
- <div class="md-footer__title">
3651
- <div class="md-ellipsis">
3652
- <span class="md-footer__direction">
3653
- Previous
3654
- </span>
3655
- Remote Header
3656
- </div>
3657
- </div>
3658
- </a>
3659
-
3660
-
3661
-
3662
- <a href="nautobot-shell.html" class="md-footer__link md-footer__link--next" aria-label="Next: Nautobot Shell" rel="next">
3663
- <div class="md-footer__title">
3664
- <div class="md-ellipsis">
3665
- <span class="md-footer__direction">
3666
- Next
3667
- </span>
3668
- Nautobot Shell
3669
- </div>
3670
- </div>
3671
- <div class="md-footer__button md-icon">
3672
- <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>
3673
- </div>
3674
- </a>
3675
-
3676
- </nav>
3677
-
3678
4847
  <div class="md-footer-meta md-typeset">
3679
4848
  <div class="md-footer-meta__inner md-grid">
3680
4849
  <div class="md-copyright">
@@ -3702,32 +4871,42 @@ Hide HTTP request headers.</p>
3702
4871
 
3703
4872
 
3704
4873
 
4874
+
4875
+
3705
4876
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
3706
- <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>
4877
+ <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>
3707
4878
  </a>
3708
4879
 
3709
4880
 
3710
4881
 
4882
+
4883
+
3711
4884
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
3712
- <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>
4885
+ <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>
3713
4886
  </a>
3714
4887
 
3715
4888
 
3716
4889
 
4890
+
4891
+
3717
4892
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
3718
- <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>
4893
+ <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>
3719
4894
  </a>
3720
4895
 
3721
4896
 
3722
4897
 
4898
+
4899
+
3723
4900
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
3724
- <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>
4901
+ <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>
3725
4902
  </a>
3726
4903
 
3727
4904
 
3728
4905
 
4906
+
4907
+
3729
4908
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
3730
- <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>
4909
+ <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>
3731
4910
  </a>
3732
4911
 
3733
4912
  </div>
@@ -3741,14 +4920,13 @@ Hide HTTP request headers.</p>
3741
4920
  <div class="md-dialog__inner md-typeset"></div>
3742
4921
  </div>
3743
4922
 
3744
- <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>
4923
+ <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>
3745
4924
 
3746
4925
 
3747
- <script src="../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
4926
+ <script src="../assets/javascripts/bundle.51198bba.min.js"></script>
3748
4927
 
3749
4928
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
3750
4929
 
3751
4930
 
3752
-
3753
4931
  </body>
3754
4932
  </html>