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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) hide show
  1. nautobot/apps/api.py +6 -8
  2. nautobot/apps/forms.py +0 -2
  3. nautobot/apps/ui.py +0 -8
  4. nautobot/circuits/api/serializers.py +9 -117
  5. nautobot/circuits/api/urls.py +1 -1
  6. nautobot/circuits/api/views.py +0 -1
  7. nautobot/circuits/forms.py +0 -65
  8. nautobot/circuits/migrations/0014_related_name_changes.py +1 -1
  9. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  10. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  11. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  12. nautobot/circuits/models.py +3 -87
  13. nautobot/circuits/navigation.py +14 -69
  14. nautobot/circuits/signals.py +0 -2
  15. nautobot/circuits/tables.py +39 -1
  16. nautobot/circuits/tests/integration/test_relationships.py +9 -9
  17. nautobot/circuits/tests/test_api.py +4 -8
  18. nautobot/circuits/tests/test_filters.py +10 -4
  19. nautobot/circuits/tests/test_models.py +5 -1
  20. nautobot/circuits/tests/test_views.py +27 -5
  21. nautobot/circuits/views.py +18 -10
  22. nautobot/core/api/__init__.py +8 -2
  23. nautobot/core/api/fields.py +15 -6
  24. nautobot/core/api/filter_backends.py +3 -2
  25. nautobot/core/api/metadata.py +237 -30
  26. nautobot/core/api/mixins.py +94 -0
  27. nautobot/core/api/pagination.py +4 -0
  28. nautobot/core/api/parsers.py +154 -0
  29. nautobot/core/api/renderers.py +153 -2
  30. nautobot/core/api/schema.py +46 -2
  31. nautobot/core/api/serializers.py +377 -35
  32. nautobot/core/api/urls.py +11 -3
  33. nautobot/core/api/utils.py +174 -2
  34. nautobot/core/api/versioning.py +32 -10
  35. nautobot/core/api/views.py +266 -72
  36. nautobot/core/apps/__init__.py +138 -220
  37. nautobot/core/celery/__init__.py +112 -41
  38. nautobot/core/celery/backends.py +19 -12
  39. nautobot/core/celery/control.py +46 -0
  40. nautobot/core/celery/encoders.py +53 -0
  41. nautobot/core/celery/log.py +38 -0
  42. nautobot/core/celery/schedulers.py +23 -4
  43. nautobot/core/celery/task.py +1 -16
  44. nautobot/core/checks.py +0 -27
  45. nautobot/core/choices.py +0 -113
  46. nautobot/core/{cli.py → cli/__init__.py} +1 -1
  47. nautobot/core/cli/__main__.py +3 -0
  48. nautobot/core/constants.py +0 -24
  49. nautobot/core/context_processors.py +12 -0
  50. nautobot/core/filters.py +2 -2
  51. nautobot/core/forms/__init__.py +0 -4
  52. nautobot/core/forms/fields.py +38 -65
  53. nautobot/core/forms/forms.py +4 -1
  54. nautobot/core/forms/utils.py +0 -52
  55. nautobot/core/graphql/schema.py +4 -27
  56. nautobot/core/jobs/__init__.py +75 -0
  57. nautobot/core/management/commands/build_ui.py +255 -0
  58. nautobot/core/management/commands/generate_test_data.py +3 -2
  59. nautobot/core/management/commands/post_upgrade.py +24 -24
  60. nautobot/core/models/__init__.py +26 -1
  61. nautobot/core/models/fields.py +24 -5
  62. nautobot/core/models/generics.py +2 -42
  63. nautobot/core/models/managers.py +5 -0
  64. nautobot/core/models/name_color_content_types.py +0 -14
  65. nautobot/core/models/tree_queries.py +14 -4
  66. nautobot/core/models/utils.py +5 -6
  67. nautobot/core/models/validators.py +17 -8
  68. nautobot/core/releases.py +8 -10
  69. nautobot/core/settings.py +80 -42
  70. nautobot/core/tables.py +5 -5
  71. nautobot/core/tasks.py +4 -7
  72. nautobot/core/templates/base.html +1 -49
  73. nautobot/core/templates/base_django.html +49 -0
  74. nautobot/core/templates/base_react.html +55 -0
  75. nautobot/core/templates/buttons/export.html +6 -4
  76. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  77. nautobot/core/templates/generic/object_list.html +3 -1
  78. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  79. nautobot/core/templates/inc/footer.html +1 -0
  80. nautobot/core/templates/inc/javascript.html +0 -14
  81. nautobot/core/templates/inc/nav_menu.html +28 -33
  82. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  83. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  84. nautobot/core/templates/nautobot_config.py.j2 +8 -20
  85. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  86. nautobot/core/templates/rest_framework/api.html +8 -0
  87. nautobot/core/templatetags/buttons.py +32 -28
  88. nautobot/core/testing/__init__.py +47 -44
  89. nautobot/core/testing/api.py +362 -47
  90. nautobot/core/testing/filters.py +1 -1
  91. nautobot/core/testing/migrations.py +2 -0
  92. nautobot/core/testing/mixins.py +22 -9
  93. nautobot/core/testing/schema.py +2 -1
  94. nautobot/core/testing/views.py +21 -46
  95. nautobot/core/tests/integration/test_filters.py +17 -8
  96. nautobot/core/tests/integration/test_navbar.py +11 -34
  97. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  98. nautobot/core/tests/nautobot_config.py +2 -3
  99. nautobot/core/tests/test_api.py +290 -21
  100. nautobot/core/tests/test_checks.py +0 -7
  101. nautobot/core/tests/test_filters.py +107 -59
  102. nautobot/core/tests/test_forms.py +26 -92
  103. nautobot/core/tests/test_graphql.py +110 -77
  104. nautobot/core/tests/test_logging.py +4 -0
  105. nautobot/core/tests/test_managers.py +3 -1
  106. nautobot/core/tests/test_models.py +2 -0
  107. nautobot/core/tests/test_paginator.py +3 -1
  108. nautobot/core/tests/test_releases.py +12 -12
  109. nautobot/core/tests/test_templatetags_helpers.py +4 -4
  110. nautobot/core/tests/test_utils.py +32 -68
  111. nautobot/core/tests/test_views.py +12 -15
  112. nautobot/core/utils/data.py +17 -0
  113. nautobot/core/utils/deprecation.py +9 -6
  114. nautobot/core/utils/filtering.py +8 -3
  115. nautobot/core/utils/git.py +12 -4
  116. nautobot/core/utils/lookup.py +3 -1
  117. nautobot/core/utils/requests.py +1 -104
  118. nautobot/core/views/__init__.py +1 -0
  119. nautobot/core/views/generic.py +75 -110
  120. nautobot/core/views/mixins.py +52 -61
  121. nautobot/core/views/renderers.py +6 -7
  122. nautobot/core/views/utils.py +80 -0
  123. nautobot/dcim/api/serializers.py +160 -667
  124. nautobot/dcim/api/urls.py +1 -1
  125. nautobot/dcim/api/views.py +7 -44
  126. nautobot/dcim/choices.py +2 -0
  127. nautobot/dcim/filters/__init__.py +21 -0
  128. nautobot/dcim/form_mixins.py +1 -27
  129. nautobot/dcim/forms.py +19 -765
  130. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -1
  131. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -13
  132. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -1
  133. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -1
  134. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  135. nautobot/dcim/migrations/0035_related_name_changes.py +1 -1
  136. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -1
  137. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  138. nautobot/dcim/migrations/{0040_ipam__namespaces.py → 0041_ipam__namespaces.py} +1 -1
  139. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  140. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  141. nautobot/dcim/models/cables.py +3 -33
  142. nautobot/dcim/models/device_component_templates.py +6 -0
  143. nautobot/dcim/models/device_components.py +12 -198
  144. nautobot/dcim/models/devices.py +30 -143
  145. nautobot/dcim/models/locations.py +3 -64
  146. nautobot/dcim/models/power.py +3 -50
  147. nautobot/dcim/models/racks.py +7 -84
  148. nautobot/dcim/navigation.py +141 -467
  149. nautobot/dcim/signals.py +0 -2
  150. nautobot/dcim/tables/locations.py +2 -2
  151. nautobot/dcim/tables/power.py +1 -2
  152. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  153. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  154. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  155. nautobot/dcim/templates/dcim/location.html +16 -1
  156. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  157. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  158. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  159. nautobot/dcim/tests/test_api.py +166 -81
  160. nautobot/dcim/tests/test_cablepaths.py +41 -35
  161. nautobot/dcim/tests/test_filters.py +67 -23
  162. nautobot/dcim/tests/test_forms.py +5 -205
  163. nautobot/dcim/tests/test_graphql.py +7 -2
  164. nautobot/dcim/tests/test_migrations.py +6 -11
  165. nautobot/dcim/tests/test_models.py +182 -110
  166. nautobot/dcim/tests/test_natural_ordering.py +11 -8
  167. nautobot/dcim/tests/test_signals.py +6 -3
  168. nautobot/dcim/tests/test_views.py +197 -175
  169. nautobot/dcim/urls.py +11 -16
  170. nautobot/dcim/views.py +7 -134
  171. nautobot/docs/additional-features/caching.md +6 -87
  172. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  173. nautobot/docs/additional-features/jobs.md +177 -195
  174. nautobot/docs/administration/nautobot-server.md +6 -21
  175. nautobot/docs/administration/replicating-nautobot.md +0 -10
  176. nautobot/docs/configuration/optional-settings.md +32 -41
  177. nautobot/docs/configuration/required-settings.md +11 -52
  178. nautobot/docs/development/application-registry.md +2 -13
  179. nautobot/docs/development/extending-models.md +15 -17
  180. nautobot/docs/development/generic-views.md +0 -2
  181. nautobot/docs/development/getting-started.md +55 -5
  182. nautobot/docs/development/navigation-menu.md +22 -93
  183. nautobot/docs/development/react-ui.md +105 -0
  184. nautobot/docs/development/role-internals.md +1 -3
  185. nautobot/docs/development/style-guide.md +6 -4
  186. nautobot/docs/index.md +3 -2
  187. nautobot/docs/installation/migrating-from-netbox.md +11 -42
  188. nautobot/docs/installation/nautobot.md +1 -1
  189. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  190. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  191. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  192. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  193. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  194. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  195. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  196. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  197. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  198. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  199. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  200. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  201. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  202. nautobot/docs/installation/upgrading-from-nautobot-v1.md +170 -747
  203. nautobot/docs/models/dcim/device.md +3 -0
  204. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  205. nautobot/docs/models/extras/computedfield.md +4 -4
  206. nautobot/docs/models/extras/gitrepository.md +3 -0
  207. nautobot/docs/models/extras/job.md +1 -0
  208. nautobot/docs/models/extras/jobbutton.md +18 -13
  209. nautobot/docs/models/extras/jobhook.md +7 -4
  210. nautobot/docs/models/extras/jobresult.md +6 -2
  211. nautobot/docs/models/extras/relationship.md +2 -2
  212. nautobot/docs/models/extras/status.md +6 -19
  213. nautobot/docs/models/ipam/ipaddress.md +3 -0
  214. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  215. nautobot/docs/plugins/development.md +83 -21
  216. nautobot/docs/release-notes/version-1.5.md +53 -0
  217. nautobot/docs/release-notes/version-2.0.md +180 -0
  218. nautobot/docs/requirements.txt +1 -0
  219. nautobot/docs/rest-api/overview.md +384 -215
  220. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  221. nautobot/extras/admin.py +3 -5
  222. nautobot/extras/api/customfields.py +15 -39
  223. nautobot/extras/api/fields.py +0 -11
  224. nautobot/extras/api/mixins.py +45 -0
  225. nautobot/extras/api/relationships.py +63 -158
  226. nautobot/extras/api/serializers.py +165 -700
  227. nautobot/extras/api/urls.py +1 -1
  228. nautobot/extras/api/views.py +294 -280
  229. nautobot/extras/apps.py +4 -7
  230. nautobot/extras/choices.py +11 -9
  231. nautobot/extras/constants.py +9 -3
  232. nautobot/extras/datasources/__init__.py +2 -0
  233. nautobot/extras/datasources/git.py +135 -186
  234. nautobot/extras/datasources/registry.py +25 -35
  235. nautobot/extras/filters/__init__.py +20 -19
  236. nautobot/extras/filters/mixins.py +4 -4
  237. nautobot/extras/forms/forms.py +63 -127
  238. nautobot/extras/forms/mixins.py +23 -51
  239. nautobot/extras/health_checks.py +0 -33
  240. nautobot/extras/jobs.py +387 -565
  241. nautobot/extras/management/commands/runjob.py +24 -62
  242. nautobot/extras/managers.py +30 -7
  243. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  244. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -1
  245. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -1
  246. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -7
  247. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -32
  248. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -1
  249. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -1
  250. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  251. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -1
  252. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -2
  253. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -1
  254. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -1
  255. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  256. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -1
  257. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  258. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -9
  259. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -1
  260. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  261. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  262. nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
  263. nautobot/extras/migrations/{0077_remove_slug.py → 0078_remove_slug.py} +1 -5
  264. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  265. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  266. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  267. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  268. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  269. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  270. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  271. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  272. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  273. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  274. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  275. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  276. nautobot/extras/models/__init__.py +2 -3
  277. nautobot/extras/models/change_logging.py +0 -36
  278. nautobot/extras/models/customfields.py +39 -33
  279. nautobot/extras/models/datasources.py +48 -50
  280. nautobot/extras/models/groups.py +5 -6
  281. nautobot/extras/models/jobs.py +189 -321
  282. nautobot/extras/models/mixins.py +0 -71
  283. nautobot/extras/models/models.py +0 -19
  284. nautobot/extras/models/relationships.py +19 -13
  285. nautobot/extras/models/roles.py +0 -34
  286. nautobot/extras/models/secrets.py +2 -26
  287. nautobot/extras/models/statuses.py +6 -5
  288. nautobot/extras/models/tags.py +2 -17
  289. nautobot/extras/navigation.py +89 -307
  290. nautobot/extras/plugins/__init__.py +3 -120
  291. nautobot/extras/plugins/utils.py +0 -3
  292. nautobot/extras/plugins/validators.py +5 -4
  293. nautobot/extras/plugins/views.py +16 -3
  294. nautobot/extras/querysets.py +1 -7
  295. nautobot/extras/registry.py +3 -0
  296. nautobot/extras/signals.py +26 -60
  297. nautobot/extras/tables.py +34 -40
  298. nautobot/extras/tasks.py +0 -12
  299. nautobot/extras/templates/extras/configcontext.html +1 -1
  300. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  301. nautobot/extras/templates/extras/customfield.html +0 -13
  302. nautobot/extras/templates/extras/gitrepository.html +3 -3
  303. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  304. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  305. nautobot/extras/templates/extras/job.html +35 -25
  306. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  307. nautobot/extras/templates/extras/job_detail.html +13 -31
  308. nautobot/extras/templates/extras/job_edit.html +15 -17
  309. nautobot/extras/templates/extras/jobresult.html +24 -6
  310. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  311. nautobot/extras/templates/extras/secret.html +28 -0
  312. nautobot/extras/templatetags/job_buttons.py +1 -0
  313. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  314. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  315. nautobot/extras/test_jobs/dry_run.py +29 -0
  316. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  317. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  318. nautobot/extras/test_jobs/fail.py +23 -0
  319. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  320. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  321. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  322. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  323. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  324. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  325. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  326. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  327. nautobot/extras/test_jobs/job_variables.py +88 -0
  328. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  329. nautobot/extras/test_jobs/log_redaction.py +20 -0
  330. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  331. nautobot/extras/test_jobs/modify_db.py +25 -0
  332. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  333. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  334. nautobot/extras/test_jobs/object_var_required.py +21 -0
  335. nautobot/extras/test_jobs/object_vars.py +26 -0
  336. nautobot/extras/test_jobs/pass.py +25 -0
  337. nautobot/extras/test_jobs/profiling.py +32 -0
  338. nautobot/extras/test_jobs/read_only_job.py +15 -0
  339. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  340. nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
  341. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  342. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  343. nautobot/extras/tests/integration/test_configcontextschema.py +5 -3
  344. nautobot/extras/tests/integration/test_customfields.py +4 -2
  345. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  346. nautobot/extras/tests/integration/test_jobs.py +25 -27
  347. nautobot/extras/tests/integration/test_notes.py +8 -4
  348. nautobot/extras/tests/integration/test_relationships.py +2 -2
  349. nautobot/extras/tests/test_api.py +649 -642
  350. nautobot/extras/tests/test_changelog.py +3 -3
  351. nautobot/extras/tests/test_context_managers.py +5 -3
  352. nautobot/extras/tests/test_customfields.py +92 -50
  353. nautobot/extras/tests/test_datasources.py +189 -112
  354. nautobot/extras/tests/test_dynamicgroups.py +7 -8
  355. nautobot/extras/tests/test_filters.py +137 -89
  356. nautobot/extras/tests/test_forms.py +73 -75
  357. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  358. nautobot/extras/tests/test_jobs.py +262 -263
  359. nautobot/extras/tests/test_migrations.py +4 -3
  360. nautobot/extras/tests/test_models.py +116 -161
  361. nautobot/extras/tests/test_plugins.py +38 -60
  362. nautobot/extras/tests/test_relationships.py +167 -120
  363. nautobot/extras/tests/test_tags.py +6 -11
  364. nautobot/extras/tests/test_utils.py +31 -1
  365. nautobot/extras/tests/test_views.py +201 -145
  366. nautobot/extras/tests/test_webhooks.py +6 -2
  367. nautobot/extras/urls.py +42 -42
  368. nautobot/extras/utils.py +137 -163
  369. nautobot/extras/views.py +78 -152
  370. nautobot/ipam/api/fields.py +17 -0
  371. nautobot/ipam/api/serializers.py +58 -164
  372. nautobot/ipam/api/urls.py +1 -1
  373. nautobot/ipam/api/views.py +3 -2
  374. nautobot/ipam/apps.py +1 -2
  375. nautobot/ipam/filters.py +1 -10
  376. nautobot/ipam/forms.py +4 -177
  377. nautobot/ipam/lookups.py +1 -0
  378. nautobot/ipam/management/commands/__init__.py +0 -0
  379. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  380. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -1
  381. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -38
  382. nautobot/ipam/migrations/0020_related_name_changes.py +1 -1
  383. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +2 -2
  384. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  385. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  386. nautobot/ipam/migrations/{0028_ipam__namespaces.py → 0030_ipam__namespaces.py} +77 -28
  387. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  388. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  389. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  390. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  391. nautobot/ipam/models.py +100 -236
  392. nautobot/ipam/navigation.py +36 -181
  393. nautobot/ipam/querysets.py +20 -25
  394. nautobot/ipam/signals.py +49 -6
  395. nautobot/ipam/tables.py +10 -3
  396. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  397. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  398. nautobot/ipam/templates/ipam/namespace_retrieve.html +17 -4
  399. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  400. nautobot/ipam/templates/ipam/prefix.html +1 -1
  401. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  402. nautobot/ipam/templates/ipam/vrf_edit.html +6 -0
  403. nautobot/ipam/tests/integration/test_prefixes.py +3 -26
  404. nautobot/ipam/tests/test_api.py +22 -19
  405. nautobot/ipam/tests/test_filters.py +59 -23
  406. nautobot/ipam/tests/test_migrations.py +6 -10
  407. nautobot/ipam/tests/test_models.py +323 -198
  408. nautobot/ipam/tests/test_ordering.py +2 -2
  409. nautobot/ipam/tests/test_querysets.py +44 -24
  410. nautobot/ipam/tests/test_views.py +73 -26
  411. nautobot/ipam/urls.py +16 -0
  412. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  413. nautobot/ipam/utils/migrations.py +713 -0
  414. nautobot/ipam/views.py +137 -20
  415. nautobot/project-static/docs/404.html +1178 -10
  416. nautobot/project-static/docs/additional-features/caching.html +1224 -159
  417. nautobot/project-static/docs/additional-features/change-logging.html +1180 -12
  418. nautobot/project-static/docs/additional-features/config-contexts.html +1180 -12
  419. nautobot/project-static/docs/additional-features/graphql.html +1179 -11
  420. nautobot/project-static/docs/additional-features/healthcheck.html +1180 -12
  421. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1184 -12
  422. nautobot/project-static/docs/additional-features/jobs.html +1514 -328
  423. nautobot/project-static/docs/additional-features/napalm.html +1180 -12
  424. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1180 -12
  425. nautobot/project-static/docs/additional-features/template-filters.html +1180 -12
  426. nautobot/project-static/docs/administration/celery-queues.html +1178 -10
  427. nautobot/project-static/docs/administration/nautobot-server.html +1451 -304
  428. nautobot/project-static/docs/administration/nautobot-shell.html +1178 -10
  429. nautobot/project-static/docs/administration/permissions.html +1178 -10
  430. nautobot/project-static/docs/administration/replicating-nautobot.html +1262 -113
  431. nautobot/project-static/docs/apps/index.html +1178 -10
  432. nautobot/project-static/docs/apps/nautobot-apps.html +1178 -10
  433. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1580 -426
  434. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1178 -10
  435. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3481 -1838
  436. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1178 -10
  437. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1178 -10
  438. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1185 -11
  439. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1719 -551
  440. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2062 -930
  441. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1946 -659
  442. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1180 -12
  443. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1189 -21
  444. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9283 -6218
  445. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2734 -2122
  446. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1178 -10
  447. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2337 -1300
  448. nautobot/project-static/docs/configuration/authentication/ldap.html +1178 -10
  449. nautobot/project-static/docs/configuration/authentication/remote.html +1178 -10
  450. nautobot/project-static/docs/configuration/authentication/sso.html +1178 -10
  451. nautobot/project-static/docs/configuration/index.html +1178 -10
  452. nautobot/project-static/docs/configuration/optional-settings.html +1311 -160
  453. nautobot/project-static/docs/configuration/required-settings.html +1312 -211
  454. nautobot/project-static/docs/core-functionality/circuits.html +1178 -10
  455. nautobot/project-static/docs/core-functionality/device-types.html +1178 -10
  456. nautobot/project-static/docs/core-functionality/devices.html +1182 -10
  457. nautobot/project-static/docs/core-functionality/ipam.html +1182 -10
  458. nautobot/project-static/docs/core-functionality/power.html +1178 -10
  459. nautobot/project-static/docs/core-functionality/secrets.html +1178 -10
  460. nautobot/project-static/docs/core-functionality/services.html +1178 -10
  461. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1178 -10
  462. nautobot/project-static/docs/core-functionality/tenancy.html +1178 -10
  463. nautobot/project-static/docs/core-functionality/virtualization.html +1182 -10
  464. nautobot/project-static/docs/core-functionality/vlans.html +1179 -11
  465. nautobot/project-static/docs/development/application-registry.html +1190 -42
  466. nautobot/project-static/docs/development/best-practices.html +1178 -10
  467. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1178 -10
  468. nautobot/project-static/docs/development/extending-models.html +1238 -83
  469. nautobot/project-static/docs/development/generic-views.html +1180 -14
  470. nautobot/project-static/docs/development/getting-started.html +1365 -90
  471. nautobot/project-static/docs/development/homepage.html +1178 -10
  472. nautobot/project-static/docs/development/index.html +1178 -10
  473. nautobot/project-static/docs/development/model-features.html +1178 -10
  474. nautobot/project-static/docs/development/natural-keys.html +1178 -10
  475. nautobot/project-static/docs/development/navigation-menu.html +1215 -125
  476. nautobot/project-static/docs/development/react-ui.html +4199 -0
  477. nautobot/project-static/docs/development/release-checklist.html +1178 -10
  478. nautobot/project-static/docs/development/role-internals.html +1179 -12
  479. nautobot/project-static/docs/development/style-guide.html +1188 -19
  480. nautobot/project-static/docs/development/templates.html +1178 -10
  481. nautobot/project-static/docs/development/testing.html +1178 -10
  482. nautobot/project-static/docs/development/user-preferences.html +1178 -10
  483. nautobot/project-static/docs/docker/index.html +1178 -10
  484. nautobot/project-static/docs/index.html +1183 -12
  485. nautobot/project-static/docs/installation/centos.html +1178 -10
  486. nautobot/project-static/docs/installation/external-authentication.html +1178 -10
  487. nautobot/project-static/docs/installation/http-server.html +1178 -10
  488. nautobot/project-static/docs/installation/index.html +1178 -10
  489. nautobot/project-static/docs/installation/migrating-from-netbox.html +1305 -189
  490. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1178 -10
  491. nautobot/project-static/docs/installation/nautobot.html +1179 -11
  492. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1178 -10
  493. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1178 -10
  494. nautobot/project-static/docs/installation/services.html +1178 -10
  495. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  496. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  497. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  498. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  499. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  500. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  501. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  502. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  503. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  504. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  505. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  506. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  507. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  508. nautobot/project-static/docs/installation/ubuntu.html +1178 -10
  509. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +3823 -2152
  510. nautobot/project-static/docs/installation/upgrading.html +1178 -10
  511. nautobot/project-static/docs/models/circuits/circuit.html +1293 -103
  512. nautobot/project-static/docs/models/circuits/circuittermination.html +1293 -103
  513. nautobot/project-static/docs/models/circuits/circuittype.html +1293 -103
  514. nautobot/project-static/docs/models/circuits/provider.html +1293 -103
  515. nautobot/project-static/docs/models/circuits/providernetwork.html +1293 -103
  516. nautobot/project-static/docs/models/dcim/cable.html +1324 -103
  517. nautobot/project-static/docs/models/dcim/consoleport.html +1293 -103
  518. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1293 -103
  519. nautobot/project-static/docs/models/dcim/consoleserverport.html +1293 -103
  520. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1293 -103
  521. nautobot/project-static/docs/models/dcim/device.html +1326 -132
  522. nautobot/project-static/docs/models/dcim/devicebay.html +1293 -103
  523. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1293 -103
  524. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1379 -97
  525. nautobot/project-static/docs/models/dcim/devicetype.html +1293 -103
  526. nautobot/project-static/docs/models/dcim/frontport.html +1293 -103
  527. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1293 -103
  528. nautobot/project-static/docs/models/dcim/interface.html +1293 -103
  529. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1293 -103
  530. nautobot/project-static/docs/models/dcim/inventoryitem.html +1293 -103
  531. nautobot/project-static/docs/models/dcim/location.html +1293 -103
  532. nautobot/project-static/docs/models/dcim/locationtype.html +1293 -103
  533. nautobot/project-static/docs/models/dcim/manufacturer.html +1292 -102
  534. nautobot/project-static/docs/models/dcim/platform.html +1272 -82
  535. nautobot/project-static/docs/models/dcim/powerfeed.html +1270 -80
  536. nautobot/project-static/docs/models/dcim/poweroutlet.html +1272 -82
  537. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1272 -82
  538. nautobot/project-static/docs/models/dcim/powerpanel.html +1270 -80
  539. nautobot/project-static/docs/models/dcim/powerport.html +1272 -82
  540. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1272 -82
  541. nautobot/project-static/docs/models/dcim/rack.html +1272 -82
  542. nautobot/project-static/docs/models/dcim/rackgroup.html +1272 -82
  543. nautobot/project-static/docs/models/dcim/rackreservation.html +1272 -82
  544. nautobot/project-static/docs/models/dcim/rearport.html +1286 -96
  545. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1286 -96
  546. nautobot/project-static/docs/models/dcim/region.html +1178 -10
  547. nautobot/project-static/docs/models/dcim/site.html +1178 -10
  548. nautobot/project-static/docs/models/dcim/virtualchassis.html +1284 -94
  549. nautobot/project-static/docs/models/extras/computedfield.html +1184 -16
  550. nautobot/project-static/docs/models/extras/configcontext.html +1314 -86
  551. nautobot/project-static/docs/models/extras/configcontextschema.html +1276 -86
  552. nautobot/project-static/docs/models/extras/customfield.html +1180 -12
  553. nautobot/project-static/docs/models/extras/customlink.html +1180 -12
  554. nautobot/project-static/docs/models/extras/dynamicgroup.html +1180 -12
  555. nautobot/project-static/docs/models/extras/exporttemplate.html +1180 -12
  556. nautobot/project-static/docs/models/extras/gitrepository.html +1184 -12
  557. nautobot/project-static/docs/models/extras/graphqlquery.html +1321 -86
  558. nautobot/project-static/docs/models/extras/imageattachment.html +1276 -86
  559. nautobot/project-static/docs/models/extras/job.html +1277 -86
  560. nautobot/project-static/docs/models/extras/jobbutton.html +1201 -29
  561. nautobot/project-static/docs/models/extras/jobhook.html +1188 -16
  562. nautobot/project-static/docs/models/extras/joblogentry.html +1274 -84
  563. nautobot/project-static/docs/models/extras/jobresult.html +1364 -169
  564. nautobot/project-static/docs/models/extras/note.html +1180 -12
  565. nautobot/project-static/docs/models/extras/relationship.html +1182 -14
  566. nautobot/project-static/docs/models/extras/role.html +1320 -86
  567. nautobot/project-static/docs/models/extras/secret.html +1314 -86
  568. nautobot/project-static/docs/models/extras/secretsgroup.html +1276 -86
  569. nautobot/project-static/docs/models/extras/status.html +1188 -59
  570. nautobot/project-static/docs/models/extras/tag.html +1180 -12
  571. nautobot/project-static/docs/models/extras/webhook.html +1180 -12
  572. nautobot/project-static/docs/models/ipam/ipaddress.html +1327 -102
  573. nautobot/project-static/docs/models/ipam/prefix.html +1276 -86
  574. nautobot/project-static/docs/models/ipam/rir.html +1276 -86
  575. nautobot/project-static/docs/models/ipam/routetarget.html +1276 -86
  576. nautobot/project-static/docs/models/ipam/service.html +1276 -86
  577. nautobot/project-static/docs/models/ipam/vlan.html +1276 -86
  578. nautobot/project-static/docs/models/ipam/vlangroup.html +1276 -86
  579. nautobot/project-static/docs/models/ipam/vrf.html +1276 -86
  580. nautobot/project-static/docs/models/tenancy/tenant.html +1276 -86
  581. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1276 -86
  582. nautobot/project-static/docs/models/users/objectpermission.html +1314 -86
  583. nautobot/project-static/docs/models/users/token.html +1276 -86
  584. nautobot/project-static/docs/models/virtualization/cluster.html +1276 -86
  585. nautobot/project-static/docs/models/virtualization/clustergroup.html +1276 -86
  586. nautobot/project-static/docs/models/virtualization/clustertype.html +1276 -86
  587. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1321 -127
  588. nautobot/project-static/docs/models/virtualization/vminterface.html +1276 -86
  589. nautobot/project-static/docs/objects.inv +0 -0
  590. nautobot/project-static/docs/plugins/development.html +1726 -495
  591. nautobot/project-static/docs/plugins/index.html +1178 -10
  592. nautobot/project-static/docs/plugins/porting-from-netbox.html +1178 -10
  593. nautobot/project-static/docs/release-notes/index.html +1178 -10
  594. nautobot/project-static/docs/release-notes/version-1.0.html +1178 -10
  595. nautobot/project-static/docs/release-notes/version-1.1.html +1178 -10
  596. nautobot/project-static/docs/release-notes/version-1.2.html +1178 -10
  597. nautobot/project-static/docs/release-notes/version-1.3.html +1178 -10
  598. nautobot/project-static/docs/release-notes/version-1.4.html +1178 -10
  599. nautobot/project-static/docs/release-notes/version-1.5.html +1608 -225
  600. nautobot/project-static/docs/release-notes/version-2.0.html +1547 -47
  601. nautobot/project-static/docs/requirements.txt +1 -0
  602. nautobot/project-static/docs/rest-api/authentication.html +1179 -11
  603. nautobot/project-static/docs/rest-api/filtering.html +1178 -10
  604. nautobot/project-static/docs/rest-api/overview.html +1841 -446
  605. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  606. nautobot/project-static/docs/search/search_index.json +1 -1
  607. nautobot/project-static/docs/sitemap.xml +197 -187
  608. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  609. nautobot/project-static/docs/user-guides/custom-fields.html +1178 -10
  610. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1178 -10
  611. nautobot/project-static/docs/user-guides/getting-started/index.html +1178 -10
  612. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1178 -10
  613. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1178 -10
  614. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1178 -10
  615. nautobot/project-static/docs/user-guides/getting-started/regions.html +1178 -10
  616. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1178 -10
  617. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1178 -10
  618. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1178 -10
  619. nautobot/project-static/docs/user-guides/git-data-source.html +1178 -10
  620. nautobot/project-static/docs/user-guides/graphql.html +1178 -10
  621. nautobot/project-static/docs/user-guides/relationships.html +1178 -10
  622. nautobot/project-static/docs/user-guides/s3-django-storage.html +1178 -10
  623. nautobot/project-static/js/forms.js +16 -9
  624. nautobot/project-static/js/theme.js +5 -0
  625. nautobot/tenancy/api/serializers.py +4 -32
  626. nautobot/tenancy/api/urls.py +1 -1
  627. nautobot/tenancy/forms.py +0 -28
  628. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  629. nautobot/tenancy/models.py +0 -25
  630. nautobot/tenancy/navigation.py +6 -39
  631. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  632. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  633. nautobot/tenancy/tests/test_api.py +1 -3
  634. nautobot/tenancy/tests/test_filters.py +10 -5
  635. nautobot/tenancy/views.py +0 -2
  636. nautobot/ui/.eslintignore +6 -0
  637. nautobot/ui/.gitignore +10 -0
  638. nautobot/ui/.prettierignore +9 -0
  639. nautobot/ui/.prettierrc +4 -0
  640. nautobot/ui/README.md +33 -0
  641. nautobot/ui/app_imports.js.j2 +7 -0
  642. nautobot/ui/craco.config.js +46 -0
  643. nautobot/ui/jsconfig-base.json +11 -0
  644. nautobot/ui/jsconfig.json +5 -0
  645. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  646. nautobot/ui/package-lock.json +21451 -0
  647. nautobot/ui/package.json +70 -0
  648. nautobot/ui/public/index.html +47 -0
  649. nautobot/ui/public/logo192.png +0 -0
  650. nautobot/ui/public/logo512.png +0 -0
  651. nautobot/ui/public/manifest.json +25 -0
  652. nautobot/ui/public/nautobot_logo.svg +131 -0
  653. nautobot/ui/public/robots.txt +3 -0
  654. nautobot/ui/src/App.js +71 -0
  655. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  656. nautobot/ui/src/components/AppTab.js +40 -0
  657. nautobot/ui/src/components/Apps.js +60 -0
  658. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  659. nautobot/ui/src/components/HomePanel.js +58 -0
  660. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  661. nautobot/ui/src/components/Layout.js +53 -0
  662. nautobot/ui/src/components/LoadingWidget.js +25 -0
  663. nautobot/ui/src/components/Navbar.js +116 -0
  664. nautobot/ui/src/components/NotificationPopover.js +27 -0
  665. nautobot/ui/src/components/ObjectListTable.js +209 -0
  666. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  667. nautobot/ui/src/components/RouterButton.js +10 -0
  668. nautobot/ui/src/components/RouterLink.js +10 -0
  669. nautobot/ui/src/components/SidebarNav.js +147 -0
  670. nautobot/ui/src/components/Table.js +48 -0
  671. nautobot/ui/src/components/TableItem.js +71 -0
  672. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  673. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  674. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  675. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  676. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  677. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  678. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  679. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  680. nautobot/ui/src/components/pagination.js +93 -0
  681. nautobot/ui/src/components/paginator.js +79 -0
  682. nautobot/ui/src/components/paginator_form.js +43 -0
  683. nautobot/ui/src/components/usePagination.js +57 -0
  684. nautobot/ui/src/constants/apiPath.js +10 -0
  685. nautobot/ui/src/constants/icons.js +15 -0
  686. nautobot/ui/src/constants/size.js +15 -0
  687. nautobot/ui/src/index.js +65 -0
  688. nautobot/ui/src/reportWebVitals.js +15 -0
  689. nautobot/ui/src/router.js +77 -0
  690. nautobot/ui/src/utils/api.js +131 -0
  691. nautobot/ui/src/utils/app-import.js +15 -0
  692. nautobot/ui/src/utils/color.js +15 -0
  693. nautobot/ui/src/utils/date.js +14 -0
  694. nautobot/ui/src/utils/index.js +15 -0
  695. nautobot/ui/src/utils/navigation.js +32 -0
  696. nautobot/ui/src/utils/session.js +64 -0
  697. nautobot/ui/src/utils/store.js +242 -0
  698. nautobot/ui/src/utils/string.js +6 -0
  699. nautobot/ui/src/utils/url.js +4 -0
  700. nautobot/ui/src/views/Home.js +138 -0
  701. nautobot/ui/src/views/InstalledApps.js +80 -0
  702. nautobot/ui/src/views/Login.js +48 -0
  703. nautobot/ui/src/views/Logout.js +20 -0
  704. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  705. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  706. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  707. nautobot/ui/src/views/generic/GenericView.js +142 -0
  708. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  709. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  710. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  711. nautobot/users/admin.py +1 -1
  712. nautobot/users/api/serializers.py +51 -61
  713. nautobot/users/api/urls.py +1 -1
  714. nautobot/users/api/views.py +53 -2
  715. nautobot/users/tests/test_api.py +110 -25
  716. nautobot/virtualization/api/serializers.py +18 -130
  717. nautobot/virtualization/api/urls.py +1 -1
  718. nautobot/virtualization/api/views.py +1 -22
  719. nautobot/virtualization/forms.py +13 -99
  720. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -1
  721. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -11
  722. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -1
  723. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -1
  724. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  725. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  726. nautobot/virtualization/migrations/{0021_ipam__namespaces.py → 0023_ipam__namespaces.py} +2 -2
  727. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  728. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  729. nautobot/virtualization/models.py +31 -123
  730. nautobot/virtualization/navigation.py +18 -99
  731. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -1
  732. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  733. nautobot/virtualization/tests/test_api.py +25 -26
  734. nautobot/virtualization/tests/test_filters.py +41 -15
  735. nautobot/virtualization/tests/test_models.py +31 -7
  736. nautobot/virtualization/tests/test_views.py +42 -25
  737. nautobot/virtualization/views.py +7 -6
  738. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +3 -7
  739. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +744 -602
  740. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  741. nautobot/circuits/api/nested_serializers.py +0 -69
  742. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  743. nautobot/dcim/api/nested_serializers.py +0 -356
  744. nautobot/dcim/templates/dcim/device_import.html +0 -5
  745. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  746. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  747. nautobot/extras/api/nested_serializers.py +0 -353
  748. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -41
  749. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -46
  750. nautobot/extras/reports.py +0 -60
  751. nautobot/extras/scripts.py +0 -72
  752. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  753. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  754. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  755. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  756. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  757. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  758. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  759. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  760. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  761. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -18
  762. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  763. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  764. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  765. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  766. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  767. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  768. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  769. nautobot/ipam/api/nested_serializers.py +0 -159
  770. nautobot/ipam/migrations/0029_ipam__prefix__add_parent.py +0 -31
  771. nautobot/ipam/migrations/0030_ipam__prefix__data_migration.py +0 -13
  772. nautobot/ipam/migrations/0031_ipam__ipaddress__add_parent.py +0 -41
  773. nautobot/ipam/migrations/0032_ipam__ipaddress__data_migration.py +0 -11
  774. nautobot/tenancy/api/nested_serializers.py +0 -31
  775. nautobot/users/api/nested_serializers.py +0 -67
  776. nautobot/virtualization/api/nested_serializers.py +0 -65
  777. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  778. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  779. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  780. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -11,13 +11,17 @@
11
11
  <link rel="canonical" href="https://docs.nautobot.com/projects/core/en/stable/models/dcim/deviceredundancygroup.html">
12
12
 
13
13
 
14
+ <link rel="prev" href="devicebaytemplate.html">
15
+
16
+
17
+ <link rel="next" href="devicetype.html">
14
18
 
15
19
  <link rel="icon" href="../../assets/favicon.ico">
16
20
  <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.1.6">
17
21
 
18
22
 
19
23
 
20
- <title>Device Redundancy Groups - Nautobot Documentation</title>
24
+ <title>Device Redundancy Group - Nautobot Documentation</title>
21
25
 
22
26
 
23
27
 
@@ -107,7 +111,7 @@
107
111
  <div class="md-header__topic" data-md-component="header-topic">
108
112
  <span class="md-ellipsis">
109
113
 
110
- Device Redundancy Groups
114
+ Device Redundancy Group
111
115
 
112
116
  </span>
113
117
  </div>
@@ -211,6 +215,8 @@
211
215
 
212
216
 
213
217
 
218
+
219
+
214
220
 
215
221
 
216
222
 
@@ -222,7 +228,7 @@
222
228
 
223
229
 
224
230
  <li class="md-tabs__item">
225
- <a href="../../installation/index.html" class="md-tabs__link">
231
+ <a href="../../installation/index.html" class="md-tabs__link md-tabs__link--active">
226
232
  Documentation
227
233
  </a>
228
234
  </li>
@@ -377,14 +383,16 @@
377
383
 
378
384
 
379
385
 
386
+
387
+
380
388
 
381
389
 
382
- <li class="md-nav__item md-nav__item--nested">
390
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
383
391
 
384
392
 
385
393
 
386
394
 
387
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
395
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
388
396
 
389
397
 
390
398
 
@@ -393,7 +401,7 @@
393
401
  <span class="md-nav__icon md-icon"></span>
394
402
  </label>
395
403
 
396
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
404
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
397
405
  <label class="md-nav__title" for="__nav_2">
398
406
  <span class="md-nav__icon md-icon"></span>
399
407
  Documentation
@@ -1328,26 +1336,55 @@
1328
1336
 
1329
1337
 
1330
1338
 
1339
+
1340
+
1331
1341
 
1332
1342
 
1333
- <li class="md-nav__item md-nav__item--nested">
1343
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1334
1344
 
1335
1345
 
1336
1346
 
1337
1347
 
1338
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1348
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" checked>
1339
1349
 
1340
1350
 
1341
1351
 
1342
1352
  <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1343
- Additional Features
1353
+ Model Details
1344
1354
  <span class="md-nav__icon md-icon"></span>
1345
1355
  </label>
1346
1356
 
1347
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1357
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="true">
1348
1358
  <label class="md-nav__title" for="__nav_2_8">
1349
1359
  <span class="md-nav__icon md-icon"></span>
1350
- Additional Features
1360
+ Model Details
1361
+ </label>
1362
+ <ul class="md-nav__list" data-md-scrollfix>
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+ <li class="md-nav__item md-nav__item--nested">
1371
+
1372
+
1373
+
1374
+
1375
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1376
+
1377
+
1378
+
1379
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1380
+ Circuits
1381
+ <span class="md-nav__icon md-icon"></span>
1382
+ </label>
1383
+
1384
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1385
+ <label class="md-nav__title" for="__nav_2_8_1">
1386
+ <span class="md-nav__icon md-icon"></span>
1387
+ Circuits
1351
1388
  </label>
1352
1389
  <ul class="md-nav__list" data-md-scrollfix>
1353
1390
 
@@ -1357,8 +1394,8 @@
1357
1394
 
1358
1395
 
1359
1396
  <li class="md-nav__item">
1360
- <a href="../../additional-features/caching.html" class="md-nav__link">
1361
- Caching
1397
+ <a href="../circuits/circuit.html" class="md-nav__link">
1398
+ Circuit
1362
1399
  </a>
1363
1400
  </li>
1364
1401
 
@@ -1371,8 +1408,8 @@
1371
1408
 
1372
1409
 
1373
1410
  <li class="md-nav__item">
1374
- <a href="../../additional-features/change-logging.html" class="md-nav__link">
1375
- Change Logging
1411
+ <a href="../circuits/circuittermination.html" class="md-nav__link">
1412
+ Circuit Termination
1376
1413
  </a>
1377
1414
  </li>
1378
1415
 
@@ -1385,8 +1422,8 @@
1385
1422
 
1386
1423
 
1387
1424
  <li class="md-nav__item">
1388
- <a href="../extras/computedfield.html" class="md-nav__link">
1389
- Computed Fields
1425
+ <a href="../circuits/circuittype.html" class="md-nav__link">
1426
+ Circuit Type
1390
1427
  </a>
1391
1428
  </li>
1392
1429
 
@@ -1399,8 +1436,8 @@
1399
1436
 
1400
1437
 
1401
1438
  <li class="md-nav__item">
1402
- <a href="../../additional-features/config-contexts.html" class="md-nav__link">
1403
- Context Data
1439
+ <a href="../circuits/provider.html" class="md-nav__link">
1440
+ Circuit Provider
1404
1441
  </a>
1405
1442
  </li>
1406
1443
 
@@ -1413,27 +1450,49 @@
1413
1450
 
1414
1451
 
1415
1452
  <li class="md-nav__item">
1416
- <a href="../extras/customfield.html" class="md-nav__link">
1417
- Custom Fields
1453
+ <a href="../circuits/providernetwork.html" class="md-nav__link">
1454
+ Circuit Provider Network
1418
1455
  </a>
1419
1456
  </li>
1420
1457
 
1421
1458
 
1422
1459
 
1423
1460
 
1461
+ </ul>
1462
+ </nav>
1463
+ </li>
1464
+
1465
+
1466
+
1467
+
1424
1468
 
1425
1469
 
1426
1470
 
1427
1471
 
1472
+
1428
1473
 
1429
- <li class="md-nav__item">
1430
- <a href="../extras/customlink.html" class="md-nav__link">
1431
- Custom Links
1432
- </a>
1433
- </li>
1434
1474
 
1435
-
1436
-
1475
+
1476
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1477
+
1478
+
1479
+
1480
+
1481
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" checked>
1482
+
1483
+
1484
+
1485
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1486
+ DCIM
1487
+ <span class="md-nav__icon md-icon"></span>
1488
+ </label>
1489
+
1490
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="true">
1491
+ <label class="md-nav__title" for="__nav_2_8_2">
1492
+ <span class="md-nav__icon md-icon"></span>
1493
+ DCIM
1494
+ </label>
1495
+ <ul class="md-nav__list" data-md-scrollfix>
1437
1496
 
1438
1497
 
1439
1498
 
@@ -1441,8 +1500,8 @@
1441
1500
 
1442
1501
 
1443
1502
  <li class="md-nav__item">
1444
- <a href="../extras/dynamicgroup.html" class="md-nav__link">
1445
- Dynamic Groups
1503
+ <a href="cable.html" class="md-nav__link">
1504
+ Cable
1446
1505
  </a>
1447
1506
  </li>
1448
1507
 
@@ -1455,8 +1514,8 @@
1455
1514
 
1456
1515
 
1457
1516
  <li class="md-nav__item">
1458
- <a href="../extras/exporttemplate.html" class="md-nav__link">
1459
- Export Templates
1517
+ <a href="consoleport.html" class="md-nav__link">
1518
+ Console Port
1460
1519
  </a>
1461
1520
  </li>
1462
1521
 
@@ -1469,8 +1528,8 @@
1469
1528
 
1470
1529
 
1471
1530
  <li class="md-nav__item">
1472
- <a href="../extras/gitrepository.html" class="md-nav__link">
1473
- Git Repositories
1531
+ <a href="consoleporttemplate.html" class="md-nav__link">
1532
+ Console Port Template
1474
1533
  </a>
1475
1534
  </li>
1476
1535
 
@@ -1483,8 +1542,8 @@
1483
1542
 
1484
1543
 
1485
1544
  <li class="md-nav__item">
1486
- <a href="../../additional-features/healthcheck.html" class="md-nav__link">
1487
- Health Check
1545
+ <a href="consoleserverport.html" class="md-nav__link">
1546
+ Console Server Port
1488
1547
  </a>
1489
1548
  </li>
1490
1549
 
@@ -1497,8 +1556,8 @@
1497
1556
 
1498
1557
 
1499
1558
  <li class="md-nav__item">
1500
- <a href="../../additional-features/jobs.html" class="md-nav__link">
1501
- Jobs
1559
+ <a href="consoleserverporttemplate.html" class="md-nav__link">
1560
+ Console Server Port Template
1502
1561
  </a>
1503
1562
  </li>
1504
1563
 
@@ -1511,8 +1570,8 @@
1511
1570
 
1512
1571
 
1513
1572
  <li class="md-nav__item">
1514
- <a href="../extras/jobbutton.html" class="md-nav__link">
1515
- Job Buttons
1573
+ <a href="device.html" class="md-nav__link">
1574
+ Device
1516
1575
  </a>
1517
1576
  </li>
1518
1577
 
@@ -1525,8 +1584,8 @@
1525
1584
 
1526
1585
 
1527
1586
  <li class="md-nav__item">
1528
- <a href="../extras/jobhook.html" class="md-nav__link">
1529
- Job Hooks
1587
+ <a href="devicebay.html" class="md-nav__link">
1588
+ Device Bay
1530
1589
  </a>
1531
1590
  </li>
1532
1591
 
@@ -1539,8 +1598,8 @@
1539
1598
 
1540
1599
 
1541
1600
  <li class="md-nav__item">
1542
- <a href="../../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
1543
- Job Scheduling and Approvals
1601
+ <a href="devicebaytemplate.html" class="md-nav__link">
1602
+ Device Bay Template
1544
1603
  </a>
1545
1604
  </li>
1546
1605
 
@@ -1551,11 +1610,113 @@
1551
1610
 
1552
1611
 
1553
1612
 
1613
+
1554
1614
 
1555
- <li class="md-nav__item">
1556
- <a href="../../additional-features/napalm.html" class="md-nav__link">
1557
- NAPALM
1615
+
1616
+ <li class="md-nav__item md-nav__item--active">
1617
+
1618
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1625
+ Device Redundancy Group
1626
+ <span class="md-nav__icon md-icon"></span>
1627
+ </label>
1628
+
1629
+ <a href="deviceredundancygroup.html" class="md-nav__link md-nav__link--active">
1630
+ Device Redundancy Group
1558
1631
  </a>
1632
+
1633
+
1634
+
1635
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+ <label class="md-nav__title" for="__toc">
1643
+ <span class="md-nav__icon md-icon"></span>
1644
+ Table of contents
1645
+ </label>
1646
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1647
+
1648
+ <li class="md-nav__item">
1649
+ <a href="#example-use-of-device-redundancy-groups-cisco-asa-5500-series-activestandby-failover" class="md-nav__link">
1650
+ Example use of Device Redundancy Groups - Cisco ASA 5500 Series Active/Standby Failover
1651
+ </a>
1652
+
1653
+ <nav class="md-nav" aria-label="Example use of Device Redundancy Groups - Cisco ASA 5500 Series Active/Standby Failover">
1654
+ <ul class="md-nav__list">
1655
+
1656
+ <li class="md-nav__item">
1657
+ <a href="#querying-for-the-data" class="md-nav__link">
1658
+ Querying for the data
1659
+ </a>
1660
+
1661
+ </li>
1662
+
1663
+ <li class="md-nav__item">
1664
+ <a href="#retrieving-the-data-primary-failover-unit-nyc-fw-primary" class="md-nav__link">
1665
+ Retrieving the data - Primary Failover Unit ("nyc-fw-primary")
1666
+ </a>
1667
+
1668
+ </li>
1669
+
1670
+ <li class="md-nav__item">
1671
+ <a href="#creating-cisco-asa-configuration-template-common-for-primary-and-secondary-units" class="md-nav__link">
1672
+ Creating Cisco ASA Configuration Template - Common for Primary and Secondary Units
1673
+ </a>
1674
+
1675
+ </li>
1676
+
1677
+ <li class="md-nav__item">
1678
+ <a href="#rendering-cisco-asa-configuration-template-with-the-data-retrieved-from-graphql" class="md-nav__link">
1679
+ Rendering Cisco ASA Configuration Template with the data retrieved from GraphQL
1680
+ </a>
1681
+
1682
+ </li>
1683
+
1684
+ </ul>
1685
+ </nav>
1686
+
1687
+ </li>
1688
+
1689
+ <li class="md-nav__item">
1690
+ <a href="#example-use-of-device-redundancy-groups-spine-redundancy-in-a-leaf-and-spine-clos-topology" class="md-nav__link">
1691
+ Example use of Device Redundancy Groups - Spine Redundancy in a Leaf and Spine (Clos) Topology
1692
+ </a>
1693
+
1694
+ <nav class="md-nav" aria-label="Example use of Device Redundancy Groups - Spine Redundancy in a Leaf and Spine (Clos) Topology">
1695
+ <ul class="md-nav__list">
1696
+
1697
+ <li class="md-nav__item">
1698
+ <a href="#querying-for-the-data-spine-redundancy-in-a-leaf-and-spine-clos-topology" class="md-nav__link">
1699
+ Querying for the data - Spine Redundancy in a Leaf and Spine (Clos) Topology
1700
+ </a>
1701
+
1702
+ </li>
1703
+
1704
+ <li class="md-nav__item">
1705
+ <a href="#retrieving-the-data-spine-redundancy-in-a-leaf-and-spine-clos-topology" class="md-nav__link">
1706
+ Retrieving the data - Spine Redundancy in a Leaf and Spine (Clos) Topology
1707
+ </a>
1708
+
1709
+ </li>
1710
+
1711
+ </ul>
1712
+ </nav>
1713
+
1714
+ </li>
1715
+
1716
+ </ul>
1717
+
1718
+ </nav>
1719
+
1559
1720
  </li>
1560
1721
 
1561
1722
 
@@ -1567,8 +1728,8 @@
1567
1728
 
1568
1729
 
1569
1730
  <li class="md-nav__item">
1570
- <a href="../extras/note.html" class="md-nav__link">
1571
- Notes
1731
+ <a href="devicetype.html" class="md-nav__link">
1732
+ Device Type
1572
1733
  </a>
1573
1734
  </li>
1574
1735
 
@@ -1581,8 +1742,8 @@
1581
1742
 
1582
1743
 
1583
1744
  <li class="md-nav__item">
1584
- <a href="../../additional-features/prometheus-metrics.html" class="md-nav__link">
1585
- Prometheus Metrics
1745
+ <a href="frontport.html" class="md-nav__link">
1746
+ Front Port
1586
1747
  </a>
1587
1748
  </li>
1588
1749
 
@@ -1595,8 +1756,8 @@
1595
1756
 
1596
1757
 
1597
1758
  <li class="md-nav__item">
1598
- <a href="../extras/relationship.html" class="md-nav__link">
1599
- Relationships
1759
+ <a href="frontporttemplate.html" class="md-nav__link">
1760
+ Front Port Template
1600
1761
  </a>
1601
1762
  </li>
1602
1763
 
@@ -1609,8 +1770,8 @@
1609
1770
 
1610
1771
 
1611
1772
  <li class="md-nav__item">
1612
- <a href="../extras/status.html" class="md-nav__link">
1613
- Statuses
1773
+ <a href="interface.html" class="md-nav__link">
1774
+ Interface
1614
1775
  </a>
1615
1776
  </li>
1616
1777
 
@@ -1623,8 +1784,8 @@
1623
1784
 
1624
1785
 
1625
1786
  <li class="md-nav__item">
1626
- <a href="../extras/tag.html" class="md-nav__link">
1627
- Tags
1787
+ <a href="interfacetemplate.html" class="md-nav__link">
1788
+ Interface Template
1628
1789
  </a>
1629
1790
  </li>
1630
1791
 
@@ -1637,8 +1798,8 @@
1637
1798
 
1638
1799
 
1639
1800
  <li class="md-nav__item">
1640
- <a href="../../additional-features/template-filters.html" class="md-nav__link">
1641
- Template Filters
1801
+ <a href="inventoryitem.html" class="md-nav__link">
1802
+ Inventory Item
1642
1803
  </a>
1643
1804
  </li>
1644
1805
 
@@ -1651,16 +1812,23 @@
1651
1812
 
1652
1813
 
1653
1814
  <li class="md-nav__item">
1654
- <a href="../extras/webhook.html" class="md-nav__link">
1655
- Webhooks
1815
+ <a href="location.html" class="md-nav__link">
1816
+ Location
1656
1817
  </a>
1657
1818
  </li>
1658
1819
 
1659
1820
 
1660
1821
 
1661
1822
 
1662
- </ul>
1663
- </nav>
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+ <li class="md-nav__item">
1829
+ <a href="locationtype.html" class="md-nav__link">
1830
+ Location Type
1831
+ </a>
1664
1832
  </li>
1665
1833
 
1666
1834
 
@@ -1671,27 +1839,14 @@
1671
1839
 
1672
1840
 
1673
1841
 
1674
-
1675
- <li class="md-nav__item md-nav__item--nested">
1676
-
1677
-
1678
-
1679
-
1680
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1681
-
1682
-
1683
-
1684
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1685
- REST API
1686
- <span class="md-nav__icon md-icon"></span>
1687
- </label>
1688
-
1689
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
1690
- <label class="md-nav__title" for="__nav_2_9">
1691
- <span class="md-nav__icon md-icon"></span>
1692
- REST API
1693
- </label>
1694
- <ul class="md-nav__list" data-md-scrollfix>
1842
+ <li class="md-nav__item">
1843
+ <a href="manufacturer.html" class="md-nav__link">
1844
+ Manufacturer
1845
+ </a>
1846
+ </li>
1847
+
1848
+
1849
+
1695
1850
 
1696
1851
 
1697
1852
 
@@ -1699,8 +1854,8 @@
1699
1854
 
1700
1855
 
1701
1856
  <li class="md-nav__item">
1702
- <a href="../../rest-api/overview.html" class="md-nav__link">
1703
- Overview
1857
+ <a href="platform.html" class="md-nav__link">
1858
+ Platform
1704
1859
  </a>
1705
1860
  </li>
1706
1861
 
@@ -1713,8 +1868,8 @@
1713
1868
 
1714
1869
 
1715
1870
  <li class="md-nav__item">
1716
- <a href="../../rest-api/filtering.html" class="md-nav__link">
1717
- Filtering
1871
+ <a href="powerfeed.html" class="md-nav__link">
1872
+ Power Feed
1718
1873
  </a>
1719
1874
  </li>
1720
1875
 
@@ -1727,16 +1882,23 @@
1727
1882
 
1728
1883
 
1729
1884
  <li class="md-nav__item">
1730
- <a href="../../rest-api/authentication.html" class="md-nav__link">
1731
- Authentication
1885
+ <a href="poweroutlet.html" class="md-nav__link">
1886
+ Power Outlet
1732
1887
  </a>
1733
1888
  </li>
1734
1889
 
1735
1890
 
1736
1891
 
1737
1892
 
1738
- </ul>
1739
- </nav>
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+ <li class="md-nav__item">
1899
+ <a href="poweroutlettemplate.html" class="md-nav__link">
1900
+ Power Outlet Template
1901
+ </a>
1740
1902
  </li>
1741
1903
 
1742
1904
 
@@ -1747,7 +1909,1037 @@
1747
1909
 
1748
1910
 
1749
1911
 
1750
-
1912
+ <li class="md-nav__item">
1913
+ <a href="powerpanel.html" class="md-nav__link">
1914
+ Power Panel
1915
+ </a>
1916
+ </li>
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+ <li class="md-nav__item">
1927
+ <a href="powerport.html" class="md-nav__link">
1928
+ Power Port
1929
+ </a>
1930
+ </li>
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+ <li class="md-nav__item">
1941
+ <a href="powerporttemplate.html" class="md-nav__link">
1942
+ Power Port Template
1943
+ </a>
1944
+ </li>
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+ <li class="md-nav__item">
1955
+ <a href="rack.html" class="md-nav__link">
1956
+ Rack
1957
+ </a>
1958
+ </li>
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+
1966
+
1967
+
1968
+ <li class="md-nav__item">
1969
+ <a href="rackgroup.html" class="md-nav__link">
1970
+ Rack Group
1971
+ </a>
1972
+ </li>
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+ <li class="md-nav__item">
1983
+ <a href="rackreservation.html" class="md-nav__link">
1984
+ Rack Reservation
1985
+ </a>
1986
+ </li>
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+ <li class="md-nav__item">
1997
+ <a href="rearport.html" class="md-nav__link">
1998
+ Rear Port
1999
+ </a>
2000
+ </li>
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+ <li class="md-nav__item">
2011
+ <a href="rearporttemplate.html" class="md-nav__link">
2012
+ Rear Port Template
2013
+ </a>
2014
+ </li>
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+ <li class="md-nav__item">
2025
+ <a href="virtualchassis.html" class="md-nav__link">
2026
+ Virtual Chassis
2027
+ </a>
2028
+ </li>
2029
+
2030
+
2031
+
2032
+
2033
+ </ul>
2034
+ </nav>
2035
+ </li>
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+ <li class="md-nav__item md-nav__item--nested">
2047
+
2048
+
2049
+
2050
+
2051
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
2052
+
2053
+
2054
+
2055
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2056
+ Extras
2057
+ <span class="md-nav__icon md-icon"></span>
2058
+ </label>
2059
+
2060
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2061
+ <label class="md-nav__title" for="__nav_2_8_3">
2062
+ <span class="md-nav__icon md-icon"></span>
2063
+ Extras
2064
+ </label>
2065
+ <ul class="md-nav__list" data-md-scrollfix>
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+ <li class="md-nav__item">
2073
+ <a href="../extras/configcontext.html" class="md-nav__link">
2074
+ Config Context
2075
+ </a>
2076
+ </li>
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+ <li class="md-nav__item">
2087
+ <a href="../extras/configcontextschema.html" class="md-nav__link">
2088
+ Config Context Schema
2089
+ </a>
2090
+ </li>
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+ <li class="md-nav__item">
2101
+ <a href="../extras/graphqlquery.html" class="md-nav__link">
2102
+ GraphQL Query
2103
+ </a>
2104
+ </li>
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+ <li class="md-nav__item">
2115
+ <a href="../extras/imageattachment.html" class="md-nav__link">
2116
+ Image Attachment
2117
+ </a>
2118
+ </li>
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+ <li class="md-nav__item">
2129
+ <a href="../extras/job.html" class="md-nav__link">
2130
+ Job
2131
+ </a>
2132
+ </li>
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+ <li class="md-nav__item">
2143
+ <a href="../extras/joblogentry.html" class="md-nav__link">
2144
+ Job Log Entry
2145
+ </a>
2146
+ </li>
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+ <li class="md-nav__item">
2157
+ <a href="../extras/jobresult.html" class="md-nav__link">
2158
+ Job Result
2159
+ </a>
2160
+ </li>
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+ <li class="md-nav__item">
2171
+ <a href="../extras/role.html" class="md-nav__link">
2172
+ Role
2173
+ </a>
2174
+ </li>
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+ <li class="md-nav__item">
2185
+ <a href="../extras/secret.html" class="md-nav__link">
2186
+ Secret
2187
+ </a>
2188
+ </li>
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+ <li class="md-nav__item">
2199
+ <a href="../extras/secretsgroup.html" class="md-nav__link">
2200
+ Secrets group
2201
+ </a>
2202
+ </li>
2203
+
2204
+
2205
+
2206
+
2207
+ </ul>
2208
+ </nav>
2209
+ </li>
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+ <li class="md-nav__item md-nav__item--nested">
2221
+
2222
+
2223
+
2224
+
2225
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2226
+
2227
+
2228
+
2229
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2230
+ IPAM
2231
+ <span class="md-nav__icon md-icon"></span>
2232
+ </label>
2233
+
2234
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2235
+ <label class="md-nav__title" for="__nav_2_8_4">
2236
+ <span class="md-nav__icon md-icon"></span>
2237
+ IPAM
2238
+ </label>
2239
+ <ul class="md-nav__list" data-md-scrollfix>
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+ <li class="md-nav__item">
2247
+ <a href="../ipam/ipaddress.html" class="md-nav__link">
2248
+ IP Address
2249
+ </a>
2250
+ </li>
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+ <li class="md-nav__item">
2261
+ <a href="../ipam/prefix.html" class="md-nav__link">
2262
+ Prefix
2263
+ </a>
2264
+ </li>
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+ <li class="md-nav__item">
2275
+ <a href="../ipam/rir.html" class="md-nav__link">
2276
+ Rir
2277
+ </a>
2278
+ </li>
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+ <li class="md-nav__item">
2289
+ <a href="../ipam/routetarget.html" class="md-nav__link">
2290
+ Route Target
2291
+ </a>
2292
+ </li>
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+ <li class="md-nav__item">
2303
+ <a href="../ipam/service.html" class="md-nav__link">
2304
+ Service
2305
+ </a>
2306
+ </li>
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+ <li class="md-nav__item">
2317
+ <a href="../ipam/vlan.html" class="md-nav__link">
2318
+ VLAN
2319
+ </a>
2320
+ </li>
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+ <li class="md-nav__item">
2331
+ <a href="../ipam/vlangroup.html" class="md-nav__link">
2332
+ VLAN Group
2333
+ </a>
2334
+ </li>
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+ <li class="md-nav__item">
2345
+ <a href="../ipam/vrf.html" class="md-nav__link">
2346
+ VRF
2347
+ </a>
2348
+ </li>
2349
+
2350
+
2351
+
2352
+
2353
+ </ul>
2354
+ </nav>
2355
+ </li>
2356
+
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+ <li class="md-nav__item md-nav__item--nested">
2367
+
2368
+
2369
+
2370
+
2371
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
2372
+
2373
+
2374
+
2375
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2376
+ Tenancy
2377
+ <span class="md-nav__icon md-icon"></span>
2378
+ </label>
2379
+
2380
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2381
+ <label class="md-nav__title" for="__nav_2_8_5">
2382
+ <span class="md-nav__icon md-icon"></span>
2383
+ Tenancy
2384
+ </label>
2385
+ <ul class="md-nav__list" data-md-scrollfix>
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+ <li class="md-nav__item">
2393
+ <a href="../tenancy/tenant.html" class="md-nav__link">
2394
+ Tenant
2395
+ </a>
2396
+ </li>
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+
2404
+
2405
+
2406
+ <li class="md-nav__item">
2407
+ <a href="../tenancy/tenantgroup.html" class="md-nav__link">
2408
+ Tenant Group
2409
+ </a>
2410
+ </li>
2411
+
2412
+
2413
+
2414
+
2415
+ </ul>
2416
+ </nav>
2417
+ </li>
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+ <li class="md-nav__item md-nav__item--nested">
2429
+
2430
+
2431
+
2432
+
2433
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2434
+
2435
+
2436
+
2437
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2438
+ Users
2439
+ <span class="md-nav__icon md-icon"></span>
2440
+ </label>
2441
+
2442
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2443
+ <label class="md-nav__title" for="__nav_2_8_6">
2444
+ <span class="md-nav__icon md-icon"></span>
2445
+ Users
2446
+ </label>
2447
+ <ul class="md-nav__list" data-md-scrollfix>
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+ <li class="md-nav__item">
2455
+ <a href="../users/objectpermission.html" class="md-nav__link">
2456
+ Object Permission
2457
+ </a>
2458
+ </li>
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+ <li class="md-nav__item">
2469
+ <a href="../users/token.html" class="md-nav__link">
2470
+ Token
2471
+ </a>
2472
+ </li>
2473
+
2474
+
2475
+
2476
+
2477
+ </ul>
2478
+ </nav>
2479
+ </li>
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+ <li class="md-nav__item md-nav__item--nested">
2491
+
2492
+
2493
+
2494
+
2495
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2496
+
2497
+
2498
+
2499
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2500
+ Virtualization
2501
+ <span class="md-nav__icon md-icon"></span>
2502
+ </label>
2503
+
2504
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2505
+ <label class="md-nav__title" for="__nav_2_8_7">
2506
+ <span class="md-nav__icon md-icon"></span>
2507
+ Virtualization
2508
+ </label>
2509
+ <ul class="md-nav__list" data-md-scrollfix>
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+ <li class="md-nav__item">
2517
+ <a href="../virtualization/cluster.html" class="md-nav__link">
2518
+ Cluster
2519
+ </a>
2520
+ </li>
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+ <li class="md-nav__item">
2531
+ <a href="../virtualization/clustergroup.html" class="md-nav__link">
2532
+ Cluster Group
2533
+ </a>
2534
+ </li>
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+ <li class="md-nav__item">
2545
+ <a href="../virtualization/clustertype.html" class="md-nav__link">
2546
+ Cluster Type
2547
+ </a>
2548
+ </li>
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+ <li class="md-nav__item">
2559
+ <a href="../virtualization/virtualmachine.html" class="md-nav__link">
2560
+ Virtual Machine
2561
+ </a>
2562
+ </li>
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+ <li class="md-nav__item">
2573
+ <a href="../virtualization/vminterface.html" class="md-nav__link">
2574
+ VM Interface
2575
+ </a>
2576
+ </li>
2577
+
2578
+
2579
+
2580
+
2581
+ </ul>
2582
+ </nav>
2583
+ </li>
2584
+
2585
+
2586
+
2587
+
2588
+ </ul>
2589
+ </nav>
2590
+ </li>
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+ <li class="md-nav__item md-nav__item--nested">
2602
+
2603
+
2604
+
2605
+
2606
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2607
+
2608
+
2609
+
2610
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2611
+ Additional Features
2612
+ <span class="md-nav__icon md-icon"></span>
2613
+ </label>
2614
+
2615
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2616
+ <label class="md-nav__title" for="__nav_2_9">
2617
+ <span class="md-nav__icon md-icon"></span>
2618
+ Additional Features
2619
+ </label>
2620
+ <ul class="md-nav__list" data-md-scrollfix>
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+ <li class="md-nav__item">
2628
+ <a href="../../additional-features/caching.html" class="md-nav__link">
2629
+ Caching
2630
+ </a>
2631
+ </li>
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+ <li class="md-nav__item">
2642
+ <a href="../../additional-features/change-logging.html" class="md-nav__link">
2643
+ Change Logging
2644
+ </a>
2645
+ </li>
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+ <li class="md-nav__item">
2656
+ <a href="../extras/computedfield.html" class="md-nav__link">
2657
+ Computed Fields
2658
+ </a>
2659
+ </li>
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+ <li class="md-nav__item">
2670
+ <a href="../../additional-features/config-contexts.html" class="md-nav__link">
2671
+ Context Data
2672
+ </a>
2673
+ </li>
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+ <li class="md-nav__item">
2684
+ <a href="../extras/customfield.html" class="md-nav__link">
2685
+ Custom Fields
2686
+ </a>
2687
+ </li>
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+ <li class="md-nav__item">
2698
+ <a href="../extras/customlink.html" class="md-nav__link">
2699
+ Custom Links
2700
+ </a>
2701
+ </li>
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+ <li class="md-nav__item">
2712
+ <a href="../extras/dynamicgroup.html" class="md-nav__link">
2713
+ Dynamic Groups
2714
+ </a>
2715
+ </li>
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+ <li class="md-nav__item">
2726
+ <a href="../extras/exporttemplate.html" class="md-nav__link">
2727
+ Export Templates
2728
+ </a>
2729
+ </li>
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+ <li class="md-nav__item">
2740
+ <a href="../extras/gitrepository.html" class="md-nav__link">
2741
+ Git Repositories
2742
+ </a>
2743
+ </li>
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+ <li class="md-nav__item">
2754
+ <a href="../../additional-features/healthcheck.html" class="md-nav__link">
2755
+ Health Check
2756
+ </a>
2757
+ </li>
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+ <li class="md-nav__item">
2768
+ <a href="../../additional-features/jobs.html" class="md-nav__link">
2769
+ Jobs
2770
+ </a>
2771
+ </li>
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+ <li class="md-nav__item">
2782
+ <a href="../extras/jobbutton.html" class="md-nav__link">
2783
+ Job Buttons
2784
+ </a>
2785
+ </li>
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+ <li class="md-nav__item">
2796
+ <a href="../extras/jobhook.html" class="md-nav__link">
2797
+ Job Hooks
2798
+ </a>
2799
+ </li>
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+ <li class="md-nav__item">
2810
+ <a href="../../additional-features/job-scheduling-and-approvals.html" class="md-nav__link">
2811
+ Job Scheduling and Approvals
2812
+ </a>
2813
+ </li>
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+ <li class="md-nav__item">
2824
+ <a href="../../additional-features/napalm.html" class="md-nav__link">
2825
+ NAPALM
2826
+ </a>
2827
+ </li>
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+ <li class="md-nav__item">
2838
+ <a href="../extras/note.html" class="md-nav__link">
2839
+ Notes
2840
+ </a>
2841
+ </li>
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+ <li class="md-nav__item">
2852
+ <a href="../../additional-features/prometheus-metrics.html" class="md-nav__link">
2853
+ Prometheus Metrics
2854
+ </a>
2855
+ </li>
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+ <li class="md-nav__item">
2866
+ <a href="../extras/relationship.html" class="md-nav__link">
2867
+ Relationships
2868
+ </a>
2869
+ </li>
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+ <li class="md-nav__item">
2880
+ <a href="../extras/status.html" class="md-nav__link">
2881
+ Statuses
2882
+ </a>
2883
+ </li>
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+ <li class="md-nav__item">
2894
+ <a href="../extras/tag.html" class="md-nav__link">
2895
+ Tags
2896
+ </a>
2897
+ </li>
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+ <li class="md-nav__item">
2908
+ <a href="../../additional-features/template-filters.html" class="md-nav__link">
2909
+ Template Filters
2910
+ </a>
2911
+ </li>
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+ <li class="md-nav__item">
2922
+ <a href="../extras/webhook.html" class="md-nav__link">
2923
+ Webhooks
2924
+ </a>
2925
+ </li>
2926
+
2927
+
2928
+
2929
+
2930
+ </ul>
2931
+ </nav>
2932
+ </li>
2933
+
2934
+
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+
2941
+
2942
+
1751
2943
  <li class="md-nav__item md-nav__item--nested">
1752
2944
 
1753
2945
 
@@ -1758,12 +2950,102 @@
1758
2950
 
1759
2951
 
1760
2952
  <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1761
- GraphQL API
2953
+ REST API
1762
2954
  <span class="md-nav__icon md-icon"></span>
1763
2955
  </label>
1764
2956
 
1765
2957
  <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
1766
2958
  <label class="md-nav__title" for="__nav_2_10">
2959
+ <span class="md-nav__icon md-icon"></span>
2960
+ REST API
2961
+ </label>
2962
+ <ul class="md-nav__list" data-md-scrollfix>
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+ <li class="md-nav__item">
2970
+ <a href="../../rest-api/overview.html" class="md-nav__link">
2971
+ Overview
2972
+ </a>
2973
+ </li>
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+ <li class="md-nav__item">
2984
+ <a href="../../rest-api/filtering.html" class="md-nav__link">
2985
+ Filtering
2986
+ </a>
2987
+ </li>
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+ <li class="md-nav__item">
2998
+ <a href="../../rest-api/authentication.html" class="md-nav__link">
2999
+ Authentication
3000
+ </a>
3001
+ </li>
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+ <li class="md-nav__item">
3012
+ <a href="../../rest-api/ui-related-endpoints.html" class="md-nav__link">
3013
+ UI Endpoints
3014
+ </a>
3015
+ </li>
3016
+
3017
+
3018
+
3019
+
3020
+ </ul>
3021
+ </nav>
3022
+ </li>
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+ <li class="md-nav__item md-nav__item--nested">
3034
+
3035
+
3036
+
3037
+
3038
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
3039
+
3040
+
3041
+
3042
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
3043
+ GraphQL API
3044
+ <span class="md-nav__icon md-icon"></span>
3045
+ </label>
3046
+
3047
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3048
+ <label class="md-nav__title" for="__nav_2_11">
1767
3049
  <span class="md-nav__icon md-icon"></span>
1768
3050
  GraphQL API
1769
3051
  </label>
@@ -2874,7 +4156,7 @@ This method takes a <code>device_name</code> as an argument.</p>
2874
4156
  <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="s2"> name</span>
2875
4157
  <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="s2"> ip_addresses {</span>
2876
4158
  <a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a><span class="s2"> host</span>
2877
- <a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class="s2"> prefix_length</span>
4159
+ <a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class="s2"> mask_length</span>
2878
4160
  <a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a><span class="s2"> }</span>
2879
4161
  <a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class="s2"> parent_interface {</span>
2880
4162
  <a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a><span class="s2"> name</span>
@@ -2918,7 +4200,7 @@ This method takes a <code>device_name</code> as an argument.</p>
2918
4200
  <a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="w"> </span><span class="nt">&quot;ip_addresses&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
2919
4201
  <a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="w"> </span><span class="p">{</span>
2920
4202
  <a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="nt">&quot;host&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;172.27.48.0&quot;</span><span class="p">,</span>
2921
- <a id="__codelineno-2-19" name="__codelineno-2-19" href="#__codelineno-2-19"></a><span class="w"> </span><span class="nt">&quot;prefix_length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">31</span>
4203
+ <a id="__codelineno-2-19" name="__codelineno-2-19" href="#__codelineno-2-19"></a><span class="w"> </span><span class="nt">&quot;mask_length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">31</span>
2922
4204
  <a id="__codelineno-2-20" name="__codelineno-2-20" href="#__codelineno-2-20"></a><span class="w"> </span><span class="p">}</span>
2923
4205
  <a id="__codelineno-2-21" name="__codelineno-2-21" href="#__codelineno-2-21"></a><span class="w"> </span><span class="p">],</span>
2924
4206
  <a id="__codelineno-2-22" name="__codelineno-2-22" href="#__codelineno-2-22"></a><span class="w"> </span><span class="nt">&quot;parent_interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
@@ -2938,7 +4220,7 @@ This method takes a <code>device_name</code> as an argument.</p>
2938
4220
  <a id="__codelineno-2-36" name="__codelineno-2-36" href="#__codelineno-2-36"></a><span class="w"> </span><span class="nt">&quot;ip_addresses&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
2939
4221
  <a id="__codelineno-2-37" name="__codelineno-2-37" href="#__codelineno-2-37"></a><span class="w"> </span><span class="p">{</span>
2940
4222
  <a id="__codelineno-2-38" name="__codelineno-2-38" href="#__codelineno-2-38"></a><span class="w"> </span><span class="nt">&quot;host&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;172.27.48.1&quot;</span><span class="p">,</span>
2941
- <a id="__codelineno-2-39" name="__codelineno-2-39" href="#__codelineno-2-39"></a><span class="w"> </span><span class="nt">&quot;prefix_length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">31</span>
4223
+ <a id="__codelineno-2-39" name="__codelineno-2-39" href="#__codelineno-2-39"></a><span class="w"> </span><span class="nt">&quot;mask_length&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">31</span>
2942
4224
  <a id="__codelineno-2-40" name="__codelineno-2-40" href="#__codelineno-2-40"></a><span class="w"> </span><span class="p">}</span>
2943
4225
  <a id="__codelineno-2-41" name="__codelineno-2-41" href="#__codelineno-2-41"></a><span class="w"> </span><span class="p">],</span>
2944
4226
  <a id="__codelineno-2-42" name="__codelineno-2-42" href="#__codelineno-2-42"></a><span class="w"> </span><span class="nt">&quot;parent_interface&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>