nautobot 2.0.4__py3-none-any.whl → 2.1.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.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (812) hide show
  1. nautobot/circuits/navigation.py +0 -25
  2. nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -9
  3. nautobot/circuits/templates/circuits/providernetwork_retrieve.html +0 -2
  4. nautobot/circuits/tests/test_api.py +79 -2
  5. nautobot/circuits/tests/test_filters.py +1 -0
  6. nautobot/core/api/serializers.py +15 -5
  7. nautobot/core/api/views.py +18 -19
  8. nautobot/core/choices.py +1 -1
  9. nautobot/core/filters.py +12 -4
  10. nautobot/core/jobs/__init__.py +125 -3
  11. nautobot/core/management/commands/generate_test_data.py +6 -1
  12. nautobot/core/middleware.py +12 -4
  13. nautobot/core/models/fields.py +12 -2
  14. nautobot/core/settings.py +9 -8
  15. nautobot/core/tables.py +26 -31
  16. nautobot/core/templates/base_django.html +2 -2
  17. nautobot/core/templates/buttons/export.html +57 -30
  18. nautobot/core/templates/generic/object_list.html +2 -2
  19. nautobot/core/templates/generic/object_retrieve.html +8 -1
  20. nautobot/core/templates/home.html +5 -5
  21. nautobot/core/templates/inc/created_updated.html +2 -2
  22. nautobot/core/templates/inc/footer.html +2 -2
  23. nautobot/core/templates/inc/javascript.html +0 -10
  24. nautobot/core/templates/inc/media.html +2 -0
  25. nautobot/core/templates/inc/nav_menu.html +66 -68
  26. nautobot/core/templates/inc/object_details_advanced_panel.html +19 -0
  27. nautobot/core/templates/nautobot_config.py.j2 +10 -4
  28. nautobot/core/templates/panel_table.html +1 -1
  29. nautobot/core/templates/template.css +89 -0
  30. nautobot/core/templates/utilities/templatetags/table_config_form.html +1 -0
  31. nautobot/core/templatetags/buttons.py +7 -2
  32. nautobot/core/templatetags/helpers.py +9 -9
  33. nautobot/core/testing/views.py +34 -4
  34. nautobot/core/tests/integration/test_home.py +1 -43
  35. nautobot/core/tests/integration/test_navbar.py +10 -64
  36. nautobot/core/tests/integration/test_plugin_home.py +4 -5
  37. nautobot/core/tests/integration/test_plugin_navbar.py +20 -16
  38. nautobot/core/tests/integration/test_theme.py +4 -0
  39. nautobot/core/tests/test_api.py +14 -66
  40. nautobot/core/tests/test_filters.py +127 -0
  41. nautobot/core/tests/test_forms.py +4 -4
  42. nautobot/core/tests/test_graphql.py +165 -2
  43. nautobot/core/tests/test_jobs.py +112 -0
  44. nautobot/core/tests/test_openapi.py +6 -0
  45. nautobot/core/tests/test_utils.py +23 -20
  46. nautobot/core/tests/test_views.py +11 -85
  47. nautobot/core/urls.py +6 -1
  48. nautobot/core/utils/data.py +5 -1
  49. nautobot/core/utils/filtering.py +6 -4
  50. nautobot/core/utils/lookup.py +28 -0
  51. nautobot/core/utils/requests.py +2 -3
  52. nautobot/core/views/__init__.py +3 -4
  53. nautobot/core/views/generic.py +15 -11
  54. nautobot/core/views/mixins.py +9 -8
  55. nautobot/core/views/renderers.py +5 -0
  56. nautobot/core/views/utils.py +23 -24
  57. nautobot/dcim/api/serializers.py +8 -4
  58. nautobot/dcim/models/device_components.py +1 -0
  59. nautobot/dcim/models/devices.py +7 -6
  60. nautobot/dcim/navigation.py +10 -165
  61. nautobot/dcim/templates/dcim/location.html +1 -1
  62. nautobot/dcim/tests/features/locations.feature +143 -0
  63. nautobot/dcim/tests/test_api.py +8 -1
  64. nautobot/dcim/tests/test_filters.py +11 -3
  65. nautobot/dcim/views.py +5 -6
  66. nautobot/extras/admin.py +1 -1
  67. nautobot/extras/api/serializers.py +33 -0
  68. nautobot/extras/api/urls.py +6 -0
  69. nautobot/extras/api/views.py +45 -6
  70. nautobot/extras/context_managers.py +34 -8
  71. nautobot/extras/factory.py +28 -2
  72. nautobot/extras/filters/__init__.py +52 -0
  73. nautobot/extras/filters/mixins.py +4 -29
  74. nautobot/extras/forms/forms.py +43 -0
  75. nautobot/extras/jobs.py +39 -17
  76. nautobot/extras/migrations/0100_fileproxy_job_result.py +32 -0
  77. nautobot/extras/migrations/0101_externalintegration.py +61 -0
  78. nautobot/extras/migrations/0102_set_null_objectchange_contenttype.py +32 -0
  79. nautobot/extras/models/__init__.py +2 -0
  80. nautobot/extras/models/change_logging.py +2 -2
  81. nautobot/extras/models/customfields.py +2 -2
  82. nautobot/extras/models/models.py +101 -18
  83. nautobot/extras/models/relationships.py +13 -8
  84. nautobot/extras/navigation.py +17 -29
  85. nautobot/extras/signals.py +80 -59
  86. nautobot/extras/tables.py +28 -2
  87. nautobot/extras/templates/extras/externalintegration_retrieve.html +37 -0
  88. nautobot/extras/templates/extras/inc/jobresult.html +24 -0
  89. nautobot/extras/templates/extras/jobresult.html +24 -0
  90. nautobot/extras/templatetags/computed_fields.py +6 -13
  91. nautobot/extras/templatetags/custom_links.py +19 -12
  92. nautobot/extras/templatetags/job_buttons.py +34 -19
  93. nautobot/extras/templatetags/plugins.py +1 -1
  94. nautobot/extras/test_jobs/file_output.py +16 -0
  95. nautobot/extras/tests/test_api.py +92 -0
  96. nautobot/extras/tests/test_context_managers.py +94 -4
  97. nautobot/extras/tests/test_customfields.py +1 -1
  98. nautobot/extras/tests/test_filters.py +64 -2
  99. nautobot/extras/tests/test_jobs.py +75 -22
  100. nautobot/extras/tests/test_models.py +34 -0
  101. nautobot/extras/tests/test_relationships.py +2 -2
  102. nautobot/extras/tests/test_views.py +204 -4
  103. nautobot/extras/tests/test_webhooks.py +61 -25
  104. nautobot/extras/urls.py +1 -0
  105. nautobot/extras/views.py +27 -13
  106. nautobot/extras/webhooks.py +16 -25
  107. nautobot/ipam/fields.py +5 -0
  108. nautobot/ipam/forms.py +16 -0
  109. nautobot/ipam/models.py +13 -2
  110. nautobot/ipam/navigation.py +2 -59
  111. nautobot/ipam/tables.py +1 -1
  112. nautobot/ipam/templates/ipam/ipaddress.html +0 -9
  113. nautobot/ipam/templates/ipam/prefix.html +0 -9
  114. nautobot/ipam/tests/features/prefixes.feature +134 -0
  115. nautobot/ipam/tests/test_filters.py +5 -10
  116. nautobot/ipam/tests/test_models.py +7 -0
  117. nautobot/ipam/tests/test_views.py +8 -1
  118. nautobot/ipam/views.py +99 -58
  119. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css +191 -191
  120. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  121. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css +1 -1
  122. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  123. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +874 -881
  124. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  125. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  126. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  127. nautobot/project-static/css/base.css +138 -99
  128. nautobot/project-static/css/dark.css +65 -6
  129. nautobot/project-static/docs/404.html +45 -17
  130. nautobot/project-static/docs/apps/index.html +45 -17
  131. nautobot/project-static/docs/apps/nautobot-apps.html +45 -17
  132. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +45 -17
  133. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +45 -17
  134. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1598 -1458
  135. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +229 -152
  136. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +46 -18
  137. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +45 -17
  138. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +45 -17
  139. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +45 -17
  140. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +45 -17
  141. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +354 -433
  142. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +67 -39
  143. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +45 -17
  144. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +2083 -2234
  145. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1389 -1247
  146. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +45 -17
  147. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +45 -17
  148. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +129 -111
  149. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +3601 -3457
  150. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +45 -17
  151. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +45 -17
  152. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +320 -284
  153. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +3863 -3801
  154. nautobot/project-static/docs/development/apps/api/configuration-view.html +45 -17
  155. nautobot/project-static/docs/development/apps/api/database-backend-config.html +45 -17
  156. nautobot/project-static/docs/development/apps/api/models/django-admin.html +45 -17
  157. nautobot/project-static/docs/development/apps/api/models/global-search.html +45 -17
  158. nautobot/project-static/docs/development/apps/api/models/graphql.html +45 -17
  159. nautobot/project-static/docs/development/apps/api/models/index.html +45 -17
  160. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +45 -17
  161. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +45 -17
  162. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +45 -17
  163. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +45 -17
  164. nautobot/project-static/docs/development/apps/api/platform-features/index.html +45 -17
  165. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +45 -17
  166. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +45 -17
  167. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +45 -17
  168. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +45 -17
  169. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +45 -17
  170. nautobot/project-static/docs/development/apps/api/prometheus.html +45 -17
  171. nautobot/project-static/docs/development/apps/api/setup.html +45 -17
  172. nautobot/project-static/docs/development/apps/api/testing.html +45 -17
  173. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +45 -17
  174. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +45 -17
  175. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +45 -17
  176. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +45 -17
  177. nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +45 -17
  178. nautobot/project-static/docs/development/apps/api/ui-extensions/tabs.html +45 -17
  179. nautobot/project-static/docs/development/apps/api/views/base-template.html +45 -17
  180. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +45 -17
  181. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +45 -17
  182. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +45 -17
  183. nautobot/project-static/docs/development/apps/api/views/index.html +45 -17
  184. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +45 -17
  185. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +45 -17
  186. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +45 -17
  187. nautobot/project-static/docs/development/apps/api/views/notes.html +45 -17
  188. nautobot/project-static/docs/development/apps/api/views/rest-api.html +45 -17
  189. nautobot/project-static/docs/development/apps/api/views/urls.html +45 -17
  190. nautobot/project-static/docs/development/apps/api/views/view-overrides.html +45 -17
  191. nautobot/project-static/docs/development/apps/index.html +45 -17
  192. nautobot/project-static/docs/development/apps/migration/code-updates.html +45 -17
  193. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +45 -17
  194. nautobot/project-static/docs/development/apps/migration/from-v1.html +45 -17
  195. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +45 -17
  196. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +45 -17
  197. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +45 -17
  198. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +45 -17
  199. nautobot/project-static/docs/development/apps/porting-from-netbox.html +45 -17
  200. nautobot/project-static/docs/development/core/application-registry.html +45 -17
  201. nautobot/project-static/docs/development/core/best-practices.html +45 -17
  202. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +45 -17
  203. nautobot/project-static/docs/development/core/extending-models.html +45 -17
  204. nautobot/project-static/docs/development/core/generic-views.html +45 -17
  205. nautobot/project-static/docs/development/core/getting-started.html +45 -17
  206. nautobot/project-static/docs/development/core/homepage.html +45 -17
  207. nautobot/project-static/docs/development/core/index.html +45 -17
  208. nautobot/project-static/docs/development/core/model-features.html +45 -17
  209. nautobot/project-static/docs/development/core/natural-keys.html +45 -17
  210. nautobot/project-static/docs/development/core/navigation-menu.html +45 -22
  211. nautobot/project-static/docs/development/core/react-ui.html +45 -17
  212. nautobot/project-static/docs/development/core/release-checklist.html +46 -18
  213. nautobot/project-static/docs/development/core/role-internals.html +45 -17
  214. nautobot/project-static/docs/development/core/style-guide.html +45 -17
  215. nautobot/project-static/docs/development/core/templates.html +45 -17
  216. nautobot/project-static/docs/development/core/testing.html +45 -17
  217. nautobot/project-static/docs/development/core/user-preferences.html +45 -17
  218. nautobot/project-static/docs/development/index.html +45 -17
  219. nautobot/project-static/docs/development/jobs/index.html +281 -235
  220. nautobot/project-static/docs/development/jobs/migration/from-v1.html +45 -17
  221. nautobot/project-static/docs/index.html +45 -17
  222. nautobot/project-static/docs/media/nautobot_application_stack_low_level.png +0 -0
  223. nautobot/project-static/docs/media/nautobot_application_stack_low_level.txt +1 -0
  224. nautobot/project-static/docs/objects.inv +0 -0
  225. nautobot/project-static/docs/release-notes/index.html +48 -20
  226. nautobot/project-static/docs/release-notes/version-1.0.html +45 -17
  227. nautobot/project-static/docs/release-notes/version-1.1.html +45 -17
  228. nautobot/project-static/docs/release-notes/version-1.2.html +45 -17
  229. nautobot/project-static/docs/release-notes/version-1.3.html +45 -17
  230. nautobot/project-static/docs/release-notes/version-1.4.html +45 -17
  231. nautobot/project-static/docs/release-notes/version-1.5.html +45 -17
  232. nautobot/project-static/docs/release-notes/version-1.6.html +46 -18
  233. nautobot/project-static/docs/release-notes/version-2.0.html +372 -199
  234. nautobot/project-static/docs/release-notes/version-2.1.html +5724 -0
  235. nautobot/project-static/docs/requirements.txt +1 -1
  236. nautobot/project-static/docs/search/search_index.json +1 -1
  237. nautobot/project-static/docs/sitemap.xml +247 -237
  238. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  239. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +45 -17
  240. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +45 -17
  241. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +45 -17
  242. nautobot/project-static/docs/user-guide/administration/configuration/index.html +45 -17
  243. nautobot/project-static/docs/user-guide/administration/configuration/node-configuration.html +45 -17
  244. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +110 -44
  245. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +45 -17
  246. nautobot/project-static/docs/user-guide/administration/guides/caching.html +48 -20
  247. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +45 -17
  248. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +45 -17
  249. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +45 -17
  250. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +45 -17
  251. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +45 -17
  252. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +49 -20
  253. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +45 -17
  254. nautobot/project-static/docs/user-guide/administration/installation/docker.html +45 -17
  255. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +45 -17
  256. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +45 -17
  257. nautobot/project-static/docs/user-guide/administration/installation/index.html +45 -17
  258. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +45 -17
  259. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +45 -17
  260. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +45 -17
  261. nautobot/project-static/docs/user-guide/administration/installation/services.html +45 -17
  262. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +45 -17
  263. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +45 -17
  264. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +45 -17
  265. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +45 -17
  266. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +45 -17
  267. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +45 -17
  268. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +45 -17
  269. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +45 -17
  270. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +45 -17
  271. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +45 -17
  272. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +45 -17
  273. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +45 -17
  274. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +45 -17
  275. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +45 -17
  276. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +45 -17
  277. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +45 -17
  278. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +45 -17
  279. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +45 -17
  280. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +45 -17
  281. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +45 -17
  282. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +45 -17
  283. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +45 -17
  284. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +45 -17
  285. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +45 -17
  286. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +45 -17
  287. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +45 -17
  288. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +45 -17
  289. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +45 -17
  290. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +45 -17
  291. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +45 -17
  292. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +45 -17
  293. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +45 -17
  294. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +45 -17
  295. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +45 -17
  296. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +45 -17
  297. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +45 -17
  298. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +45 -17
  299. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +45 -17
  300. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +45 -17
  301. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +45 -17
  302. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +45 -17
  303. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +45 -17
  304. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +45 -17
  305. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +45 -17
  306. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +45 -17
  307. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +45 -17
  308. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +45 -17
  309. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +45 -17
  310. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +45 -17
  311. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +45 -17
  312. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +45 -17
  313. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +45 -17
  314. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +45 -17
  315. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +45 -17
  316. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +45 -17
  317. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +45 -17
  318. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +45 -17
  319. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +45 -17
  320. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +45 -17
  321. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +45 -17
  322. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +45 -17
  323. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +45 -17
  324. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +45 -17
  325. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +45 -17
  326. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +45 -17
  327. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +45 -17
  328. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +45 -17
  329. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +45 -17
  330. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +45 -17
  331. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +45 -17
  332. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +45 -17
  333. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +45 -17
  334. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +45 -17
  335. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +45 -17
  336. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +45 -17
  337. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +45 -17
  338. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +45 -17
  339. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +45 -17
  340. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +45 -17
  341. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +45 -17
  342. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +45 -17
  343. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +45 -17
  344. nautobot/project-static/docs/user-guide/index.html +45 -17
  345. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +111 -17
  346. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +45 -17
  347. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +45 -17
  348. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +45 -17
  349. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +45 -17
  350. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +48 -20
  351. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +5359 -0
  352. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +48 -20
  353. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +45 -17
  354. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +45 -17
  355. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +45 -17
  356. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +45 -17
  357. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +45 -17
  358. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +45 -17
  359. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +45 -17
  360. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +45 -17
  361. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +45 -17
  362. nautobot/project-static/docs/user-guide/platform-functionality/note.html +45 -17
  363. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +45 -17
  364. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +45 -17
  365. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +114 -45
  366. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +45 -17
  367. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +45 -17
  368. nautobot/project-static/docs/user-guide/platform-functionality/role.html +45 -17
  369. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +45 -17
  370. nautobot/project-static/docs/user-guide/platform-functionality/status.html +45 -17
  371. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +45 -17
  372. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +45 -17
  373. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +45 -17
  374. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +45 -17
  375. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +45 -17
  376. nautobot/project-static/fonts/UFL.txt +96 -0
  377. nautobot/project-static/fonts/Ubuntu-Bold.woff2 +0 -0
  378. nautobot/project-static/fonts/Ubuntu-BoldItalic.woff2 +0 -0
  379. nautobot/project-static/fonts/Ubuntu-Italic.woff2 +0 -0
  380. nautobot/project-static/fonts/Ubuntu-Medium.woff2 +0 -0
  381. nautobot/project-static/fonts/Ubuntu-MediumItalic.woff2 +0 -0
  382. nautobot/project-static/fonts/Ubuntu-Regular.woff2 +0 -0
  383. nautobot/project-static/fonts/UbuntuMono-Bold.woff2 +0 -0
  384. nautobot/project-static/fonts/UbuntuMono-BoldItalic.woff2 +0 -0
  385. nautobot/project-static/fonts/UbuntuMono-Italic.woff2 +0 -0
  386. nautobot/project-static/fonts/UbuntuMono-Regular.woff2 +0 -0
  387. nautobot/project-static/img/dark-theme.png +0 -0
  388. nautobot/project-static/img/light-theme.png +0 -0
  389. nautobot/project-static/img/nautobot_chevron.svg +5 -0
  390. nautobot/project-static/img/nautobot_chevron_header.svg +5 -0
  391. nautobot/project-static/img/system-theme.png +0 -0
  392. nautobot/tenancy/navigation.py +0 -13
  393. nautobot/ui/package-lock.json +2 -2
  394. nautobot/ui/package.json +1 -1
  395. nautobot/users/admin.py +44 -0
  396. nautobot/users/migrations/0007_alter_objectpermission_object_types.py +33 -0
  397. nautobot/users/models.py +3 -2
  398. nautobot/virtualization/navigation.py +1 -33
  399. nautobot/virtualization/tests/test_api.py +1 -1
  400. nautobot/virtualization/tests/test_filters.py +1 -1
  401. {nautobot-2.0.4.dist-info → nautobot-2.1.0b1.dist-info}/METADATA +2 -2
  402. {nautobot-2.0.4.dist-info → nautobot-2.1.0b1.dist-info}/RECORD +405 -786
  403. CHANGELOG.md +0 -3
  404. CONTRIBUTING.md +0 -3
  405. NOTICE +0 -8
  406. nautobot/docs/apps/index.md +0 -22
  407. nautobot/docs/apps/nautobot-apps.md +0 -10
  408. nautobot/docs/assets/app-icons/icon-ChatOps.png +0 -0
  409. nautobot/docs/assets/app-icons/icon-DataValidationEngine.png +0 -0
  410. nautobot/docs/assets/app-icons/icon-DeviceLifecycle.png +0 -0
  411. nautobot/docs/assets/app-icons/icon-DeviceOnboarding.png +0 -0
  412. nautobot/docs/assets/app-icons/icon-FirewallModels.png +0 -0
  413. nautobot/docs/assets/app-icons/icon-GoldenConfiguration.png +0 -0
  414. nautobot/docs/assets/app-icons/icon-NautobotPluginNornir.png +0 -0
  415. nautobot/docs/assets/app-icons/icon-SSoT.png +0 -0
  416. nautobot/docs/assets/extra.css +0 -139
  417. nautobot/docs/assets/favicon.ico +0 -0
  418. nautobot/docs/assets/nautobot_logo.png +0 -0
  419. nautobot/docs/assets/nautobot_logo.svg +0 -131
  420. nautobot/docs/assets/networktocode_bw.png +0 -0
  421. nautobot/docs/assets/overrides/partials/copyright.html +0 -20
  422. nautobot/docs/development/apps/api/configuration-view.md +0 -35
  423. nautobot/docs/development/apps/api/database-backend-config.md +0 -26
  424. nautobot/docs/development/apps/api/models/django-admin.md +0 -20
  425. nautobot/docs/development/apps/api/models/global-search.md +0 -11
  426. nautobot/docs/development/apps/api/models/graphql.md +0 -97
  427. nautobot/docs/development/apps/api/models/index.md +0 -81
  428. nautobot/docs/development/apps/api/nautobot-app-config.md +0 -84
  429. nautobot/docs/development/apps/api/platform-features/custom-validators.md +0 -30
  430. nautobot/docs/development/apps/api/platform-features/filter-extensions.md +0 -49
  431. nautobot/docs/development/apps/api/platform-features/git-repository-content.md +0 -62
  432. nautobot/docs/development/apps/api/platform-features/index.md +0 -1
  433. nautobot/docs/development/apps/api/platform-features/jinja2-filters.md +0 -28
  434. nautobot/docs/development/apps/api/platform-features/jobs.md +0 -29
  435. nautobot/docs/development/apps/api/platform-features/populating-extensibility-features.md +0 -58
  436. nautobot/docs/development/apps/api/platform-features/secrets-providers.md +0 -64
  437. nautobot/docs/development/apps/api/platform-features/uniquely-identify-objects.md +0 -63
  438. nautobot/docs/development/apps/api/prometheus.md +0 -25
  439. nautobot/docs/development/apps/api/setup.md +0 -132
  440. nautobot/docs/development/apps/api/testing.md +0 -55
  441. nautobot/docs/development/apps/api/ui-extensions/banners.md +0 -26
  442. nautobot/docs/development/apps/api/ui-extensions/home-page.md +0 -9
  443. nautobot/docs/development/apps/api/ui-extensions/index.md +0 -1
  444. nautobot/docs/development/apps/api/ui-extensions/navigation.md +0 -15
  445. nautobot/docs/development/apps/api/ui-extensions/object-detail-views.md +0 -74
  446. nautobot/docs/development/apps/api/ui-extensions/tabs.md +0 -52
  447. nautobot/docs/development/apps/api/views/base-template.md +0 -38
  448. nautobot/docs/development/apps/api/views/core-view-overrides.md +0 -26
  449. nautobot/docs/development/apps/api/views/django-generic-views.md +0 -23
  450. nautobot/docs/development/apps/api/views/help-documentation.md +0 -16
  451. nautobot/docs/development/apps/api/views/index.md +0 -3
  452. nautobot/docs/development/apps/api/views/nautobot-generic-views.md +0 -35
  453. nautobot/docs/development/apps/api/views/nautobotuiviewset.md +0 -147
  454. nautobot/docs/development/apps/api/views/nautobotuiviewsetrouter.md +0 -41
  455. nautobot/docs/development/apps/api/views/notes.md +0 -25
  456. nautobot/docs/development/apps/api/views/rest-api.md +0 -64
  457. nautobot/docs/development/apps/api/views/urls.md +0 -26
  458. nautobot/docs/development/apps/api/views/view-overrides.md +0 -50
  459. nautobot/docs/development/apps/index.md +0 -75
  460. nautobot/docs/development/apps/migration/code-updates.md +0 -160
  461. nautobot/docs/development/apps/migration/dependency-updates.md +0 -13
  462. nautobot/docs/development/apps/migration/from-v1.md +0 -56
  463. nautobot/docs/development/apps/migration/model-updates/dcim.md +0 -285
  464. nautobot/docs/development/apps/migration/model-updates/extras.md +0 -30
  465. nautobot/docs/development/apps/migration/model-updates/global.md +0 -5
  466. nautobot/docs/development/apps/migration/model-updates/ipam.md +0 -22
  467. nautobot/docs/development/apps/porting-from-netbox.md +0 -23
  468. nautobot/docs/development/core/application-registry.md +0 -216
  469. nautobot/docs/development/core/best-practices.md +0 -469
  470. nautobot/docs/development/core/docker-compose-advanced-use-cases.md +0 -228
  471. nautobot/docs/development/core/extending-models.md +0 -93
  472. nautobot/docs/development/core/generic-views.md +0 -65
  473. nautobot/docs/development/core/getting-started.md +0 -859
  474. nautobot/docs/development/core/homepage.md +0 -63
  475. nautobot/docs/development/core/index.md +0 -334
  476. nautobot/docs/development/core/model-features.md +0 -44
  477. nautobot/docs/development/core/natural-keys.md +0 -121
  478. nautobot/docs/development/core/navigation-menu.md +0 -142
  479. nautobot/docs/development/core/react-ui.md +0 -137
  480. nautobot/docs/development/core/release-checklist.md +0 -312
  481. nautobot/docs/development/core/role-internals.md +0 -28
  482. nautobot/docs/development/core/style-guide.md +0 -200
  483. nautobot/docs/development/core/templates.md +0 -101
  484. nautobot/docs/development/core/testing.md +0 -238
  485. nautobot/docs/development/core/user-preferences.md +0 -11
  486. nautobot/docs/development/index.md +0 -1
  487. nautobot/docs/development/jobs/index.md +0 -835
  488. nautobot/docs/development/jobs/migration/from-v1.md +0 -160
  489. nautobot/docs/generate_code_reference_pages.py +0 -20
  490. nautobot/docs/img/edge_dev_circuit_relationship.png +0 -0
  491. nautobot/docs/img/leaf_dev_no_circuit_relationship.png +0 -0
  492. nautobot/docs/img/relationship_w_json_filter.png +0 -0
  493. nautobot/docs/index.md +0 -105
  494. nautobot/docs/media/admin_ui_run_permission.png +0 -0
  495. nautobot/docs/media/development/homepage_changelog_panel.png +0 -0
  496. nautobot/docs/media/development/homepage_dcim_panel.png +0 -0
  497. nautobot/docs/media/development/index_bug_wf.jpg +0 -0
  498. nautobot/docs/media/development/index_feature_request_wf.jpg +0 -0
  499. nautobot/docs/media/development/index_release_cadence.drawio +0 -90
  500. nautobot/docs/media/development/index_release_cadence.jpg +0 -0
  501. nautobot/docs/media/installation/nautobot_ui_admin.png +0 -0
  502. nautobot/docs/media/installation/nautobot_ui_guest.png +0 -0
  503. nautobot/docs/media/models/dcim_cable_trace.png +0 -0
  504. nautobot/docs/media/models/dcim_cable_trace_circuit.png +0 -0
  505. nautobot/docs/media/models/dynamicgroup_filtering_01.png +0 -0
  506. nautobot/docs/media/models/dynamicgroup_workflow_advanced_1_01.png +0 -0
  507. nautobot/docs/media/models/dynamicgroup_workflow_advanced_1_02.png +0 -0
  508. nautobot/docs/media/models/dynamicgroup_workflow_advanced_1_03.png +0 -0
  509. nautobot/docs/media/models/dynamicgroup_workflow_advanced_1_04.png +0 -0
  510. nautobot/docs/media/models/dynamicgroup_workflow_advanced_1_05.png +0 -0
  511. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_01.png +0 -0
  512. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_02.png +0 -0
  513. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_03.png +0 -0
  514. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_04.png +0 -0
  515. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_05.png +0 -0
  516. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_06.png +0 -0
  517. nautobot/docs/media/models/dynamicgroup_workflow_advanced_2_07.png +0 -0
  518. nautobot/docs/media/models/dynamicgroup_workflow_basic_01.png +0 -0
  519. nautobot/docs/media/models/dynamicgroup_workflow_basic_02.png +0 -0
  520. nautobot/docs/media/models/dynamicgroup_workflow_basic_03.png +0 -0
  521. nautobot/docs/media/models/jobbutton_form.png +0 -0
  522. nautobot/docs/media/models/site_jobbuttons.png +0 -0
  523. nautobot/docs/media/nautobot_application_stack_high_level.drawio +0 -1
  524. nautobot/docs/media/nautobot_application_stack_high_level.png +0 -0
  525. nautobot/docs/media/nautobot_application_stack_low_level.drawio +0 -1
  526. nautobot/docs/media/nautobot_application_stack_low_level.png +0 -0
  527. nautobot/docs/media/nautobot_chatops.gif +0 -0
  528. nautobot/docs/media/nautobot_config_context.gif +0 -0
  529. nautobot/docs/media/nautobot_golden_config.gif +0 -0
  530. nautobot/docs/media/nautobot_graphql.gif +0 -0
  531. nautobot/docs/media/nautobot_mainpage.gif +0 -0
  532. nautobot/docs/media/nautobot_prefix_hierarchy.gif +0 -0
  533. nautobot/docs/media/plugins/plugin_admin_config.png +0 -0
  534. nautobot/docs/media/plugins/plugin_admin_ui.png +0 -0
  535. nautobot/docs/media/plugins/plugin_rest_api_endpoint.png +0 -0
  536. nautobot/docs/media/power_distribution.png +0 -0
  537. nautobot/docs/media/ss_config_contexts.png +0 -0
  538. nautobot/docs/media/ss_graphiql.png +0 -0
  539. nautobot/docs/media/ss_main_page.png +0 -0
  540. nautobot/docs/media/ss_plugin_chatops.png +0 -0
  541. nautobot/docs/media/ss_plugin_golden_config.png +0 -0
  542. nautobot/docs/media/ss_prefix_hierarchy.png +0 -0
  543. nautobot/docs/media/user-guide/administration/guides/s3-django-storage/user-guide-s3-1.png +0 -0
  544. nautobot/docs/media/user-guide/administration/guides/s3-django-storage/user-guide-s3-2.png +0 -0
  545. nautobot/docs/media/user-guide/administration/upgrading/from-v1/ipam/tenant-affinity.png +0 -0
  546. nautobot/docs/nautobot_logo.png +0 -0
  547. nautobot/docs/nautobot_logo.svg +0 -131
  548. nautobot/docs/release-notes/index.md +0 -3
  549. nautobot/docs/release-notes/version-1.0.md +0 -530
  550. nautobot/docs/release-notes/version-1.1.md +0 -337
  551. nautobot/docs/release-notes/version-1.2.md +0 -509
  552. nautobot/docs/release-notes/version-1.3.md +0 -554
  553. nautobot/docs/release-notes/version-1.4.md +0 -677
  554. nautobot/docs/release-notes/version-1.5.md +0 -840
  555. nautobot/docs/release-notes/version-1.6.md +0 -290
  556. nautobot/docs/release-notes/version-2.0.md +0 -1359
  557. nautobot/docs/requirements.txt +0 -12
  558. nautobot/docs/user-guide/administration/configuration/authentication/ldap.md +0 -286
  559. nautobot/docs/user-guide/administration/configuration/authentication/remote.md +0 -46
  560. nautobot/docs/user-guide/administration/configuration/authentication/sso.md +0 -528
  561. nautobot/docs/user-guide/administration/configuration/index.md +0 -190
  562. nautobot/docs/user-guide/administration/configuration/node-configuration.md +0 -31
  563. nautobot/docs/user-guide/administration/configuration/optional-settings.md +0 -1302
  564. nautobot/docs/user-guide/administration/configuration/required-settings.md +0 -244
  565. nautobot/docs/user-guide/administration/guides/caching.md +0 -108
  566. nautobot/docs/user-guide/administration/guides/celery-queues.md +0 -42
  567. nautobot/docs/user-guide/administration/guides/healthcheck.md +0 -11
  568. nautobot/docs/user-guide/administration/guides/permissions.md +0 -98
  569. nautobot/docs/user-guide/administration/guides/prometheus-metrics.md +0 -55
  570. nautobot/docs/user-guide/administration/guides/replicating-nautobot.md +0 -70
  571. nautobot/docs/user-guide/administration/guides/s3-django-storage.md +0 -145
  572. nautobot/docs/user-guide/administration/installation/app-install.md +0 -94
  573. nautobot/docs/user-guide/administration/installation/docker.md +0 -286
  574. nautobot/docs/user-guide/administration/installation/external-authentication.md +0 -9
  575. nautobot/docs/user-guide/administration/installation/http-server.md +0 -279
  576. nautobot/docs/user-guide/administration/installation/index.md +0 -101
  577. nautobot/docs/user-guide/administration/installation/install_system.md +0 -493
  578. nautobot/docs/user-guide/administration/installation/nautobot.md +0 -367
  579. nautobot/docs/user-guide/administration/installation/selinux-troubleshooting.md +0 -194
  580. nautobot/docs/user-guide/administration/installation/services.md +0 -340
  581. nautobot/docs/user-guide/administration/migration/migrating-from-netbox.md +0 -336
  582. nautobot/docs/user-guide/administration/migration/migrating-from-postgresql.md +0 -122
  583. nautobot/docs/user-guide/administration/tools/nautobot-server.md +0 -858
  584. nautobot/docs/user-guide/administration/tools/nautobot-shell.md +0 -263
  585. nautobot/docs/user-guide/administration/upgrading/database-backup.md +0 -11
  586. nautobot/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.md +0 -55
  587. nautobot/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.md +0 -73
  588. nautobot/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.md +0 -211
  589. nautobot/docs/user-guide/administration/upgrading/from-v1/ipam/index.md +0 -16
  590. nautobot/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.md +0 -157
  591. nautobot/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.md +0 -153
  592. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-api-behavior-changes.yaml +0 -82
  593. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-api-removed-fields.yaml +0 -175
  594. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-api-renamed-fields.yaml +0 -124
  595. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-location-changes.yaml +0 -241
  596. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-removals.yaml +0 -57
  597. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-renames.yaml +0 -5
  598. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-database-behavior-changes.yaml +0 -76
  599. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-database-removed-fields.yaml +0 -202
  600. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-database-renamed-fields.yaml +0 -343
  601. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-filters-corrected-fields.yaml +0 -31
  602. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-filters-enhanced-fields.yaml +0 -244
  603. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-filters-removed-fields.yaml +0 -595
  604. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-filters-renamed-fields.yaml +0 -253
  605. nautobot/docs/user-guide/administration/upgrading/from-v1/tables/v2-logging-renamed-loggers.yaml +0 -23
  606. nautobot/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.md +0 -574
  607. nautobot/docs/user-guide/administration/upgrading/upgrading.md +0 -127
  608. nautobot/docs/user-guide/core-data-model/circuits/circuit.md +0 -19
  609. nautobot/docs/user-guide/core-data-model/circuits/circuittermination.md +0 -10
  610. nautobot/docs/user-guide/core-data-model/circuits/circuittype.md +0 -8
  611. nautobot/docs/user-guide/core-data-model/circuits/provider.md +0 -5
  612. nautobot/docs/user-guide/core-data-model/circuits/providernetwork.md +0 -7
  613. nautobot/docs/user-guide/core-data-model/dcim/cable.md +0 -43
  614. nautobot/docs/user-guide/core-data-model/dcim/consoleport.md +0 -8
  615. nautobot/docs/user-guide/core-data-model/dcim/consoleporttemplate.md +0 -6
  616. nautobot/docs/user-guide/core-data-model/dcim/consoleserverport.md +0 -8
  617. nautobot/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.md +0 -6
  618. nautobot/docs/user-guide/core-data-model/dcim/device.md +0 -29
  619. nautobot/docs/user-guide/core-data-model/dcim/devicebay.md +0 -11
  620. nautobot/docs/user-guide/core-data-model/dcim/devicebaytemplate.md +0 -6
  621. nautobot/docs/user-guide/core-data-model/dcim/deviceredundancygroup.md +0 -279
  622. nautobot/docs/user-guide/core-data-model/dcim/devicetype.md +0 -44
  623. nautobot/docs/user-guide/core-data-model/dcim/frontport.md +0 -6
  624. nautobot/docs/user-guide/core-data-model/dcim/frontporttemplate.md +0 -6
  625. nautobot/docs/user-guide/core-data-model/dcim/interface.md +0 -34
  626. nautobot/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.md +0 -24
  627. nautobot/docs/user-guide/core-data-model/dcim/interfacetemplate.md +0 -6
  628. nautobot/docs/user-guide/core-data-model/dcim/inventoryitem.md +0 -10
  629. nautobot/docs/user-guide/core-data-model/dcim/location.md +0 -15
  630. nautobot/docs/user-guide/core-data-model/dcim/locationtype.md +0 -43
  631. nautobot/docs/user-guide/core-data-model/dcim/manufacturer.md +0 -3
  632. nautobot/docs/user-guide/core-data-model/dcim/platform.md +0 -19
  633. nautobot/docs/user-guide/core-data-model/dcim/powerfeed.md +0 -25
  634. nautobot/docs/user-guide/core-data-model/dcim/poweroutlet.md +0 -14
  635. nautobot/docs/user-guide/core-data-model/dcim/poweroutlettemplate.md +0 -6
  636. nautobot/docs/user-guide/core-data-model/dcim/powerpanel.md +0 -12
  637. nautobot/docs/user-guide/core-data-model/dcim/powerport.md +0 -15
  638. nautobot/docs/user-guide/core-data-model/dcim/powerporttemplate.md +0 -6
  639. nautobot/docs/user-guide/core-data-model/dcim/rack.md +0 -41
  640. nautobot/docs/user-guide/core-data-model/dcim/rackgroup.md +0 -7
  641. nautobot/docs/user-guide/core-data-model/dcim/rackreservation.md +0 -3
  642. nautobot/docs/user-guide/core-data-model/dcim/rearport.md +0 -9
  643. nautobot/docs/user-guide/core-data-model/dcim/rearporttemplate.md +0 -6
  644. nautobot/docs/user-guide/core-data-model/dcim/virtualchassis.md +0 -8
  645. nautobot/docs/user-guide/core-data-model/extras/configcontext.md +0 -78
  646. nautobot/docs/user-guide/core-data-model/extras/configcontextschema.md +0 -73
  647. nautobot/docs/user-guide/core-data-model/ipam/ipaddress.md +0 -69
  648. nautobot/docs/user-guide/core-data-model/ipam/media/ipam_namespace_documentation.drawio +0 -1
  649. nautobot/docs/user-guide/core-data-model/ipam/media/ipam_namespace_documentation.drawio.svg +0 -4
  650. nautobot/docs/user-guide/core-data-model/ipam/namespace.md +0 -18
  651. nautobot/docs/user-guide/core-data-model/ipam/prefix.md +0 -65
  652. nautobot/docs/user-guide/core-data-model/ipam/rir.md +0 -10
  653. nautobot/docs/user-guide/core-data-model/ipam/routetarget.md +0 -5
  654. nautobot/docs/user-guide/core-data-model/ipam/service.md +0 -8
  655. nautobot/docs/user-guide/core-data-model/ipam/vlan.md +0 -17
  656. nautobot/docs/user-guide/core-data-model/ipam/vlangroup.md +0 -5
  657. nautobot/docs/user-guide/core-data-model/ipam/vrf.md +0 -15
  658. nautobot/docs/user-guide/core-data-model/tenancy/tenant.md +0 -20
  659. nautobot/docs/user-guide/core-data-model/tenancy/tenantgroup.md +0 -5
  660. nautobot/docs/user-guide/core-data-model/virtualization/cluster.md +0 -5
  661. nautobot/docs/user-guide/core-data-model/virtualization/clustergroup.md +0 -3
  662. nautobot/docs/user-guide/core-data-model/virtualization/clustertype.md +0 -3
  663. nautobot/docs/user-guide/core-data-model/virtualization/virtualmachine.md +0 -17
  664. nautobot/docs/user-guide/core-data-model/virtualization/vminterface.md +0 -19
  665. nautobot/docs/user-guide/feature-guides/custom-fields.md +0 -350
  666. nautobot/docs/user-guide/feature-guides/getting-started/creating-devices.md +0 -130
  667. nautobot/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.md +0 -113
  668. nautobot/docs/user-guide/feature-guides/getting-started/index.md +0 -29
  669. nautobot/docs/user-guide/feature-guides/getting-started/interfaces.md +0 -100
  670. nautobot/docs/user-guide/feature-guides/getting-started/ipam.md +0 -104
  671. nautobot/docs/user-guide/feature-guides/getting-started/platforms.md +0 -78
  672. nautobot/docs/user-guide/feature-guides/getting-started/search-bar.md +0 -40
  673. nautobot/docs/user-guide/feature-guides/getting-started/tenants.md +0 -40
  674. nautobot/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.md +0 -87
  675. nautobot/docs/user-guide/feature-guides/git-data-source.md +0 -307
  676. nautobot/docs/user-guide/feature-guides/graphql.md +0 -342
  677. nautobot/docs/user-guide/feature-guides/images/custom-fields/custom_field_choices.png +0 -0
  678. nautobot/docs/user-guide/feature-guides/images/custom-fields/custom_field_detail_grouped.png +0 -0
  679. nautobot/docs/user-guide/feature-guides/images/custom-fields/custom_field_detail_label.png +0 -0
  680. nautobot/docs/user-guide/feature-guides/images/custom-fields/custom_field_edit.png +0 -0
  681. nautobot/docs/user-guide/feature-guides/images/custom-fields/custom_field_select.png +0 -0
  682. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/1-create-location-type.png +0 -0
  683. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/10-add-platform.png +0 -0
  684. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/11-platforms-page.png +0 -0
  685. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/12-add-tenant.png +0 -0
  686. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/13-assign-tenant-to-device.png +0 -0
  687. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/14-assign-tenant-to-device-2.png +0 -0
  688. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/15-create-device-type.png +0 -0
  689. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/16-interface-templates.png +0 -0
  690. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/17-templated-interfaces.png +0 -0
  691. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/18-assign-device-type.png +0 -0
  692. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/19-edit-ints-for-lag.png +0 -0
  693. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/2-create-manufacturer.png +0 -0
  694. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/20-ints-int-lag.png +0 -0
  695. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/21-device-type.png +0 -0
  696. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/22-create-vlans.png +0 -0
  697. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/23-create-vlans-2.png +0 -0
  698. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/24-vlan-main-page.png +0 -0
  699. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/25-add-vlan-to-interface.png +0 -0
  700. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/26-add-vlan-to-interface-2.png +0 -0
  701. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/27-add-rir.png +0 -0
  702. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/3-create-role.png +0 -0
  703. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/30-add-prefix.png +0 -0
  704. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/32-add-ip-addr.png +0 -0
  705. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/33-assign-address.png +0 -0
  706. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/34-assign-address-2.png +0 -0
  707. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/35-assign-address-3.png +0 -0
  708. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/36-verify-address.png +0 -0
  709. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/37-verify-prefix.png +0 -0
  710. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/38-verify-prefix2.png +0 -0
  711. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/39-address-search.png +0 -0
  712. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/4-create-device-type.png +0 -0
  713. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/40-addr-main-page.png +0 -0
  714. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/41-device-search-results.png +0 -0
  715. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/42-address-search-v2.png +0 -0
  716. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/43-get-to-device-main-page.png +0 -0
  717. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/44-add-platform.png +0 -0
  718. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/5-create-device.png +0 -0
  719. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/6-create-location.png +0 -0
  720. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/7-location-type-page.png +0 -0
  721. nautobot/docs/user-guide/feature-guides/images/getting-started-nautobot-ui/8-location-page.png +0 -0
  722. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/01-git-data-source.png +0 -0
  723. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/02-git-data-source.png +0 -0
  724. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/03-git-data-source.png +0 -0
  725. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/04-git-data-source.png +0 -0
  726. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/05-git-data-source.png +0 -0
  727. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/06-git-data-source.png +0 -0
  728. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/07-git-data-source.png +0 -0
  729. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/08-git-data-source.png +0 -0
  730. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/09-git-data-source.png +0 -0
  731. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/10-git-data-source.png +0 -0
  732. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/11-git-data-source.png +0 -0
  733. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/12-git-data-source.png +0 -0
  734. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/13-git-data-source.png +0 -0
  735. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/14-git-data-source.png +0 -0
  736. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/15-git-data-source.png +0 -0
  737. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/16-git-data-source.png +0 -0
  738. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/17-git-data-source.png +0 -0
  739. nautobot/docs/user-guide/feature-guides/images/git-as-data-source/18-git-data-source.png +0 -0
  740. nautobot/docs/user-guide/feature-guides/images/graphql/00-graphiql.png +0 -0
  741. nautobot/docs/user-guide/feature-guides/images/graphql/01-graphiql-explorer.png +0 -0
  742. nautobot/docs/user-guide/feature-guides/images/graphql/02-graphiql-explorer-device-query.png +0 -0
  743. nautobot/docs/user-guide/feature-guides/images/graphql/03-graphiql-explorer-device-attributes.png +0 -0
  744. nautobot/docs/user-guide/feature-guides/images/graphql/04-graphql-query-01.png +0 -0
  745. nautobot/docs/user-guide/feature-guides/images/graphql/05-graphiql-autocomplete.png +0 -0
  746. nautobot/docs/user-guide/feature-guides/images/graphql/06-graphql-query-02.png +0 -0
  747. nautobot/docs/user-guide/feature-guides/images/graphql/07-graphql-query-03.png +0 -0
  748. nautobot/docs/user-guide/feature-guides/images/graphql/08-graphql-query-04.png +0 -0
  749. nautobot/docs/user-guide/feature-guides/images/graphql/09-graphql-query-05.png +0 -0
  750. nautobot/docs/user-guide/feature-guides/images/graphql/10-graphql-swagger.png +0 -0
  751. nautobot/docs/user-guide/feature-guides/images/graphql/11-graphql-query-06.png +0 -0
  752. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/ip_merge_button.png +0 -0
  753. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/merge_button.png +0 -0
  754. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/merge_view.png +0 -0
  755. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/no_more_dup_ips.png +0 -0
  756. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/skip_button.png +0 -0
  757. nautobot/docs/user-guide/feature-guides/images/ip-address-merge-tool/unselect_ips.png +0 -0
  758. nautobot/docs/user-guide/feature-guides/images/relationships/01-relationships.png +0 -0
  759. nautobot/docs/user-guide/feature-guides/images/relationships/02-relationships.png +0 -0
  760. nautobot/docs/user-guide/feature-guides/images/relationships/03-relationships.png +0 -0
  761. nautobot/docs/user-guide/feature-guides/images/relationships/04-relationships.png +0 -0
  762. nautobot/docs/user-guide/feature-guides/images/relationships/05-relationships.png +0 -0
  763. nautobot/docs/user-guide/feature-guides/images/relationships/06-relationships.png +0 -0
  764. nautobot/docs/user-guide/feature-guides/images/relationships/07-relationships.png +0 -0
  765. nautobot/docs/user-guide/feature-guides/images/relationships/08-relationships.png +0 -0
  766. nautobot/docs/user-guide/feature-guides/images/relationships/09-relationships.png +0 -0
  767. nautobot/docs/user-guide/feature-guides/images/relationships/10-relationships.png +0 -0
  768. nautobot/docs/user-guide/feature-guides/images/relationships/11-relationships.png +0 -0
  769. nautobot/docs/user-guide/feature-guides/ip-address-merge-tool.md +0 -63
  770. nautobot/docs/user-guide/feature-guides/relationships.md +0 -125
  771. nautobot/docs/user-guide/index.md +0 -1
  772. nautobot/docs/user-guide/platform-functionality/change-logging.md +0 -21
  773. nautobot/docs/user-guide/platform-functionality/computedfield.md +0 -89
  774. nautobot/docs/user-guide/platform-functionality/customfield.md +0 -123
  775. nautobot/docs/user-guide/platform-functionality/customlink.md +0 -59
  776. nautobot/docs/user-guide/platform-functionality/dynamicgroup.md +0 -660
  777. nautobot/docs/user-guide/platform-functionality/exporttemplate.md +0 -55
  778. nautobot/docs/user-guide/platform-functionality/gitrepository.md +0 -353
  779. nautobot/docs/user-guide/platform-functionality/graphql.md +0 -259
  780. nautobot/docs/user-guide/platform-functionality/graphqlquery.md +0 -28
  781. nautobot/docs/user-guide/platform-functionality/imageattachment.md +0 -10
  782. nautobot/docs/user-guide/platform-functionality/jobs/index.md +0 -193
  783. nautobot/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.md +0 -78
  784. nautobot/docs/user-guide/platform-functionality/jobs/jobbutton.md +0 -79
  785. nautobot/docs/user-guide/platform-functionality/jobs/jobhook.md +0 -15
  786. nautobot/docs/user-guide/platform-functionality/jobs/models.md +0 -65
  787. nautobot/docs/user-guide/platform-functionality/napalm.md +0 -85
  788. nautobot/docs/user-guide/platform-functionality/note.md +0 -7
  789. nautobot/docs/user-guide/platform-functionality/relationship.md +0 -158
  790. nautobot/docs/user-guide/platform-functionality/rest-api/authentication.md +0 -67
  791. nautobot/docs/user-guide/platform-functionality/rest-api/filtering.md +0 -142
  792. nautobot/docs/user-guide/platform-functionality/rest-api/overview.md +0 -1045
  793. nautobot/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.md +0 -9
  794. nautobot/docs/user-guide/platform-functionality/role.md +0 -17
  795. nautobot/docs/user-guide/platform-functionality/secret.md +0 -136
  796. nautobot/docs/user-guide/platform-functionality/status.md +0 -92
  797. nautobot/docs/user-guide/platform-functionality/tag.md +0 -62
  798. nautobot/docs/user-guide/platform-functionality/template-filters.md +0 -306
  799. nautobot/docs/user-guide/platform-functionality/users/objectpermission.md +0 -56
  800. nautobot/docs/user-guide/platform-functionality/users/token.md +0 -21
  801. nautobot/docs/user-guide/platform-functionality/webhook.md +0 -137
  802. nautobot/project-static/docs/media/nautobot_application_stack_low_level.drawio +0 -1
  803. nautobot/project-static/docs/media/nautobot_chatops.gif +0 -0
  804. nautobot/project-static/docs/media/nautobot_config_context.gif +0 -0
  805. nautobot/project-static/docs/media/nautobot_golden_config.gif +0 -0
  806. nautobot/project-static/docs/media/nautobot_graphql.gif +0 -0
  807. nautobot/project-static/docs/media/nautobot_mainpage.gif +0 -0
  808. nautobot/project-static/docs/media/nautobot_prefix_hierarchy.gif +0 -0
  809. nautobot-2.0.4.dist-info/LICENSE.txt +0 -177
  810. /LICENSE.txt → /nautobot-2.1.0b1.dist-info/LICENSE.txt +0 -0
  811. {nautobot-2.0.4.dist-info → nautobot-2.1.0b1.dist-info}/WHEEL +0 -0
  812. {nautobot-2.0.4.dist-info → nautobot-2.1.0b1.dist-info}/entry_points.txt +0 -0
@@ -1,1045 +0,0 @@
1
- # REST API Overview
2
-
3
- ## What is a REST API?
4
-
5
- REST stands for [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer). It's a particular type of API which employs HTTP requests and [JavaScript Object Notation (JSON)](https://www.json.org/) to facilitate create, retrieve, update, and delete (CRUD) operations on objects within an application. Each type of operation is associated with a particular HTTP verb:
6
-
7
- * `GET`: Retrieve an object or list of objects
8
- * `POST`: Create an object
9
- * `PUT` / `PATCH`: Modify an existing object. `PUT` requires all mandatory fields to be specified, while `PATCH` only expects the field that is being modified to be specified.
10
- * `DELETE`: Delete an existing object
11
-
12
- Additionally, the `OPTIONS` verb can be used to inspect a particular REST API endpoint and return all supported actions and their available parameters.
13
-
14
- One of the primary benefits of a REST API is its human-friendliness. Because it utilizes HTTP and JSON, it's very easy to interact with Nautobot data on the command line using common tools. For example, we can request an IP address from Nautobot and output the JSON using `curl` and `jq`. The following command makes an HTTP `GET` request for information about a particular IP address, identified by its primary key, and uses `jq` to present the raw JSON data returned in a more human-friendly format. (Piping the output through `jq` isn't strictly required but makes it much easier to read.)
15
-
16
- ```no-highlight
17
- curl -s http://nautobot/api/ipam/ip-addresses/83445aa3-bbd3-4ab4-86f5-36942ce9df60/ | jq '.'
18
- ```
19
-
20
- ```json
21
- {
22
- "id": "83445aa3-bbd3-4ab4-86f5-36942ce9df60",
23
- "url": "http://nautobot/api/ipam/ip-addresses/83445aa3-bbd3-4ab4-86f5-36942ce9df60/",
24
- "display": "10.0.60.39/32",
25
- "custom_fields": {},
26
- "notes_url": "http://nautobot/api/ipam/ip-addresses/83445aa3-bbd3-4ab4-86f5-36942ce9df60/notes/",
27
- "family": {
28
- "value": 4,
29
- "label": "IPv4"
30
- },
31
- "address": "10.0.60.39/32",
32
- "nat_outside_list": [
33
- {
34
- "id": "a7569104-ed58-4938-ab6f-cb6a9e584f14",
35
- "object_type": "ipam.ipaddress",
36
- "url": "http://nautobot/api/ipam/ip-addresses/a7569104-ed58-4938-ab6f-cb6a9e584f14/"
37
- }
38
- ],
39
- "created": "2023-04-25T12:46:09.152507Z",
40
- "last_updated": "2023-04-25T12:46:09.163545Z",
41
- "host": "10.0.60.39",
42
- "mask_length": 32,
43
- "dns_name": "desktop-08.cook.biz",
44
- "description": "This is an IP Address",
45
- "role": {
46
- "id": "e7a815b0-2c48-499a-84b8-f20350abe415",
47
- "object_type": "extras.role",
48
- "url": "http://nautobot/api/extras/roles/e7a815b0-2c48-499a-84b8-f20350abe415/",
49
- },
50
- "status": {
51
- "id": "b7f6a447-5616-4533-a6d5-a4ece50cd08c",
52
- "object_type": "extras.status",
53
- "url": "http://nautobot/api/extras/statuses/b7f6a447-5616-4533-a6d5-a4ece50cd08c/",
54
- },
55
- "vrf": null,
56
- "tenant": {
57
- "id": "501fffe7-5302-40ae-b9e4-27d5e3ff2108",
58
- "object_type": "tenancy.tenant",
59
- "url": "http://nautobot/api/tenancy/tenants/501fffe7-5302-40ae-b9e4-27d5e3ff2108/",
60
- },
61
- "nat_inside": null,
62
- "tags": []
63
- }
64
- ```
65
-
66
- Each attribute of the IP address is expressed as an attribute of the JSON object. Related objects are identified by their own URLs that may be accessed to retrieve more details of the related object, as in the case of the `role` and `status` fields above. Every object includes a primary key named `id` which uniquely identifies it in the database.
67
-
68
- ## Interactive Documentation
69
-
70
- Comprehensive, interactive documentation of all REST API endpoints is available on a running Nautobot instance at `/api/docs/`. This interface provides a convenient sandbox for researching and experimenting with specific endpoints and request types. The API itself can also be explored using a web browser by navigating to its root at `/api/`.
71
-
72
- +++ 1.3.0
73
- You can view or explore a specific REST API [version](#versioning) by adding the API version as a query parameter, for example `/api/docs/?api_version=2.0` or `/api/?api_version=2.0`
74
-
75
- ## Endpoint Hierarchy
76
-
77
- Nautobot's entire REST API is housed under the API root at `https://<hostname>/api/`. The URL structure is divided at the root level by application: circuits, DCIM, extras, IPAM, plugins, tenancy, users, and virtualization. Within each application exists a separate path for each model. For example, the provider and circuit objects are located under the "circuits" application:
78
-
79
- * `/api/circuits/providers/`
80
- * `/api/circuits/circuits/`
81
-
82
- Likewise, the location, rack, and device objects are located under the "DCIM" application:
83
-
84
- * `/api/dcim/locations/`
85
- * `/api/dcim/racks/`
86
- * `/api/dcim/devices/`
87
-
88
- The full hierarchy of available endpoints can be viewed by navigating to the API root in a web browser.
89
-
90
- Each model generally has two views associated with it: a list view and a detail view. The list view is used to retrieve a list of multiple objects and to create new objects. The detail view is used to retrieve, update, or delete an single existing object. All objects are referenced by their UUID primary key (`id`).
91
-
92
- * `/api/dcim/devices/` - List existing devices or create a new device
93
- * `/api/dcim/devices/6a522ebb-5739-4c5c-922f-ab4a2dc12eb0/` - Retrieve, update, or delete the device with ID 6a522ebb-5739-4c5c-922f-ab4a2dc12eb0
94
-
95
- Lists of objects can be filtered using a set of query parameters. For example, to find all interfaces belonging to the device with ID 6a522ebb-5739-4c5c-922f-ab4a2dc12eb0:
96
-
97
- ```no-highlight
98
- GET /api/dcim/interfaces/?device=6a522ebb-5739-4c5c-922f-ab4a2dc12eb0
99
- ```
100
-
101
- See the [filtering documentation](filtering.md) for more details.
102
-
103
- ## Versioning
104
-
105
- +++ 1.3.0
106
-
107
- As of Nautobot 1.3, the REST API supports multiple versions. A REST API client may request a given API version by including a `major.minor` Nautobot version number in its request in one of two ways:
108
-
109
- 1. A client may include a `version` in its HTTP Accept header, for example `Accept: application/json; version=2.0`
110
- 2. A client may include an `api_version` as a URL query parameter, for example `/api/extras/jobs/?api_version=2.0`
111
-
112
- Generally the former approach is recommended when writing automated API integrations, as it can be set as a general request header alongside the [authentication token](authentication.md) and re-used across a series of REST API interactions, while the latter approach may be more convenient when initially exploring the REST API via the interactive documentation as described above.
113
-
114
- ### Default Versions
115
-
116
- By default, a REST API request that does not specify an API version number will default to compatibility with the current Nautobot version.
117
-
118
- +++ 1.3.0
119
- For Nautobot 1.x, the default API behavior is to be compatible with the REST API of Nautobot version 1.2, in other words, for all Nautobot 1.x versions (beginning with Nautobot 1.2.0), `Accept: application/json` is functionally equivalent to `Accept: application/json; version=1.2`.
120
-
121
- +/- 2.0.0
122
- As of Nautobot 2.0, the default API behavior is changed to use the latest available REST API version. In other words, the default REST API version for Nautobot 2.0.y will be `2.0`, for Nautobot 2.1.y will be `2.1`, etc. This means that REST API clients that do not explicitly request a particular REST API version may encounter potentially [breaking changes](#breaking-changes) in the REST API when Nautobot is upgraded to a new minor or major version.
123
-
124
- !!! important
125
- As a best practice, it is recommended that a REST API client _should always_ request the exact Nautobot REST API version that it is compatible with, rather than relying on the default behavior to remain constant.
126
-
127
- !!! tip
128
- Any successful REST API response will include an `API-Version` header showing the API version that is in use for the specific API request being handled.
129
-
130
- ### Non-Breaking Changes
131
-
132
- Non-breaking (forward- and backward-compatible) REST API changes may be introduced in major or minor Nautobot releases. Since these changes are non-breaking, they will _not_ correspond to the introduction of a new API version, but will be added seamlessly to the existing API version, and so will immediately be available to existing REST API clients. Examples would include:
133
-
134
- * Addition of new fields in GET responses
135
- * Added support for new, _optional_ fields in POST/PUT/PATCH requests
136
- * Deprecation (but not removal) of existing fields
137
-
138
- !!! important
139
- There is no way to "opt out" of backwards-compatible enhancements to the REST API; because they are fully backwards-compatible there should never be a need to do so. Thus, for example, a client requesting API version `1.2` from a Nautobot 1.3 server may actually receive the (updated but still backwards-compatible) `1.3` API version as a response. For this reason, clients should always default to ignoring additional fields in an API response that they do not understand, rather than reporting an error.
140
-
141
- ### Breaking Changes
142
-
143
- Breaking (non-backward-compatible) REST API changes also may be introduced in major or minor Nautobot releases. Examples would include:
144
-
145
- * Removal of deprecated fields
146
- * Addition of new, _required_ fields in POST/PUT/PATCH requests or changing an existing field from optional to required
147
- * Changed field types (for example, changing a single value to a list of values)
148
- * Redesigned API (for example, listing and accessing Job instances by UUID primary-key instead of by class-path string)
149
-
150
- Per Nautobot's [feature-deprecation policy](../../../development/core/index.md#deprecation-policy), the previous REST API version(s) will continue to be supported until the next major release. Upon the next major release, previously deprecated API versions will be removed and the newest behavior will become the default. You will no longer be able to request API versions from the previous major version.
151
-
152
- !!! important
153
- Again, REST API clients are strongly encouraged to always specify the REST API version they are expecting, as otherwise unexpected breaking changes may be encountered when Nautobot is upgraded to a new major or minor release.
154
-
155
- ### Example of API Version Behavior
156
-
157
- As an example, let us say that Nautobot 2.1 introduced a new, _non-backwards-compatible_ REST API for the `/api/extras/jobs/` endpoint, and also introduced a new, _backwards-compatible_ set of additional fields on the `/api/dcim/locations/` endpoint. Depending on what API version a REST client interacting with Nautobot 2.1 specified (or didn't specify), it would see the following responses from the server:
158
-
159
- | API endpoint | Requested API version | Response |
160
- | ------------------- | --------------------- | ----------------------------------------------- |
161
- | `/api/extras/jobs/` | (unspecified) | Updated 2.1 REST API (not backwards compatible) |
162
- | `/api/extras/jobs/` | `2.0` | Deprecated 2.0-compatible REST API |
163
- | `/api/extras/jobs/` | `2.1` | New/updated 2.1-compatible REST API |
164
-
165
- +/- 2.0.0
166
- The [default behavior](#default-versions) when the API version is unspecified is changed from Nautobot 1.x.
167
-
168
- | API endpoint | Requested API version | Response |
169
- | ----------------------- | --------------------- | -------------------------------------------- |
170
- | `/api/dcim/locations/` | (unspecified) | 2.1-updated, 2.0-compatible REST API |
171
- | `/api/dcim/locations/` | `2.0` | 2.1-updated, 2.0-compatible REST API |
172
- | `/api/dcim/locations/` | `2.1` | 2.1-updated, 2.0-compatible REST API |
173
-
174
- | API endpoint | Requested API version | Response |
175
- | ------------------- | --------------------- | -------------------------------------------- |
176
- | `/api/dcim/racks/` | (unspecified) | 2.1-compatible REST API (unchanged from 2.0) |
177
- | `/api/dcim/racks/` | `2.0` | 2.1-compatible REST API (unchanged from 2.0) |
178
- | `/api/dcim/racks/` | `2.1` | 2.1-compatible REST API (unchanged from 2.0) |
179
-
180
- ### APISelect with versioning capability
181
-
182
- +++ 1.3.0
183
-
184
- The constructor for Nautobot's `APISelect`/`APISelectMultiple` UI widgets now includes an optional `api_version` argument which if set overrides the default API version of the request.
185
-
186
- ## Serialization
187
-
188
- The REST API employs "serializers" to represent model data. The representation produced by a serializer typically includes all relevant database table fields which comprise the model, and may also include additional metadata such as information about other relevant objects in the database. Much like the database model itself, a serializer typically will represent information about "parent" objects (those objects that needed to exist in order to define the current object, such as `DeviceType` and `Location` for a `DeviceSerializer`) but typically will not include information about "child" objects (those objects that depend on the current object in order to be defined, such as `Interface` objects for a `DeviceSerializer`).
189
-
190
- ### Related Objects
191
-
192
- Related objects (e.g. `ForeignKey` fields) are representable in several different ways. By default, when retrieving an object via the REST API, related objects are represented by URLs, or by a JSON `null` if no such related object exists. These URLs may be accessed in order to retrieve the full details of such related objects if needed/desired. For example, when retrieving an `IPAddress`, you might see:
193
-
194
- ```json
195
- {
196
- "id": "83445aa3-bbd3-4ab4-86f5-36942ce9df60",
197
- "url": "http://localhost:8080/api/ipam/ip-addresses/83445aa3-bbd3-4ab4-86f5-36942ce9df60/",
198
- "display": "10.0.60.39/32",
199
- "address": "10.0.60.39/32",
200
- ...
201
- "role": {
202
- "id": "e7a815b0-2c48-499a-84b8-f20350abe415",
203
- "object_type": "extras.role",
204
- "url": "http://localhost:8080/api/extras/roles/e7a815b0-2c48-499a-84b8-f20350abe415/",
205
- },
206
- "status": {
207
- "id": "b7f6a447-5616-4533-a6d5-a4ece50cd08c",
208
- "object_type": "extras.status",
209
- "url": "http://localhost:8080/api/extras/statuses/b7f6a447-5616-4533-a6d5-a4ece50cd08c/",
210
- },
211
- "vrf": null,
212
- "tenant": {
213
- "id": "501fffe7-5302-40ae-b9e4-27d5e3ff2108",
214
- "object_type": "tenancy.tenant",
215
- "url": "http://localhost:8080/api/tenancy/tenants/501fffe7-5302-40ae-b9e4-27d5e3ff2108/",
216
- },
217
- "nat_inside": null,
218
- "tags": []
219
- }
220
- ```
221
-
222
- Here, the `role`, `status`, `vrf`, `tenant`, and `nat_outside` fields represent objects related to this `IPAddress`, and the `tags` field is a list of such objects (no tags in this example).
223
-
224
- +/- 2.0.0
225
- The representation of related objects on retrieval has changed from Nautobot 1.x. The `brief` query parameter has been removed, and distinct "nested" serializers no longer exist. Instead, the `depth` parameter controls whether related objects are represented by URLs or as nested objects. Please see [Depth Query Parameter](#depth-query-parameter) for more details.
226
-
227
- When performing write API actions (`POST`, `PUT`, and `PATCH`), related objects may be specified by either UUID (primary key), or by a set of attributes sufficiently unique to return the desired object, or by their [natural key](../../../development/core/natural-keys.md).
228
-
229
- +++ 2.0.0
230
- Support for specifying a related object by composite-key was added.
231
-
232
- For example, when creating a new device, its rack can be specified by Nautobot ID (PK):
233
-
234
- ```json
235
- {
236
- "name": "MyNewDevice",
237
- "rack": "7f3ca431-8103-45cc-a9ce-b94c1f784a1d",
238
- ...
239
- }
240
- ```
241
-
242
- Or by a set of nested attributes which uniquely identify the rack:
243
-
244
- ```json
245
- {
246
- "name": "MyNewDevice",
247
- "rack": {
248
- "location": {
249
- "name": "Equinix DC6"
250
- },
251
- "name": "R204"
252
- },
253
- ...
254
- }
255
- ```
256
-
257
- Or by the [natural key](../../../development/core/natural-keys.md) of the rack (for the Rack model, this is just its name, but this will vary by object type - you can always find this information under the Advanced tab of an object's detail view):
258
-
259
- ```json
260
- {
261
- "name": "MyNewDevice",
262
- "rack": "R204",
263
- ...
264
- }
265
- ```
266
-
267
- Note that if the provided parameters do not match exactly one object, a validation error will be raised.
268
-
269
- ### Generic Relations
270
-
271
- Some objects within Nautobot have attributes which can reference an object of multiple types, known as _generic relations_. For example, a `Cable` can be terminated (connected) to an `Interface`, or a `FrontPort`, or a `RearPort`, etc. For such generic relations, when making this assignment via the REST API, we must specify two attributes, typically an `object_type` and an `object_id`, and by convention in Nautobot's API:
272
-
273
- * the `object_type` is the type of assigned object, typically represented as `<app_label>.<model_name>`
274
- * the `object_id` is the UUID (primary key) of the assigned object.
275
-
276
- For example, the two ends of a Cable are identified by `termination_a_type`/`termination_a_id` and `termination_b_type`/`termination_b_id`, and might be specified on creation as something like:
277
-
278
- ```no-highlight
279
- curl -X POST \
280
- -H "Authorization: Token $TOKEN" \
281
- -H "Content-Type: application/json" \
282
- -H "Accept: application/json; version=2.0; indent=4" \
283
- http://nautobot/api/dcim/cables/ \
284
- --data '{
285
- "termination_a_type": "dcim.interface",
286
- "termination_a_id": "96ee6c25-d689-46f4-b552-eb72977c27b8",
287
- "termination_b_type": "dcim.frontport",
288
- "termination_b_id": "ca54e2cc-d1b5-46e2-bb7d-85b1a9e3c1d0",
289
- ...
290
- }'
291
- ```
292
-
293
- On retrieval, the REST API will include the `object_type` and `object_id` fields, but will also typically for convenience include an `object` field containing the URL or nested details of the object identified by the type/id fields. For the above `Cable` example, the retrieval response might look something like:
294
-
295
- ```json
296
- {
297
- "id": "549dae0d-3345-4bd1-8626-085e46a36ded",
298
- "url": "http://localhost:8080/api/dcim/cables/549dae0d-3345-4bd1-8626-085e46a36ded/",
299
- ...
300
- "termination_a_type": "dcim.interface",
301
- "termination_b_type": "dcim.frontport",
302
- "termination_a_id": "96ee6c25-d689-46f4-b552-eb72977c27b8",
303
- "termination_b_id": "ca54e2cc-d1b5-46e2-bb7d-85b1a9e3c1d0",
304
- "termination_a": "http://localhost:8080/api/dcim/interfaces/96ee6c25-d689-46f4-b552-eb72977c27b8/",
305
- "termination_b": "http://localhost:8080/api/dcim/front-ports/ca54e2cc-d1b5-46e2-bb7d-85b1a9e3c1d0/",
306
- ...
307
- }
308
- ```
309
-
310
- ### Many-To-Many Relationships
311
-
312
- +++ 2.0.0
313
-
314
- Many-to-many relationships differ from one-to-many and one-to-one relationships because they utilize a separate database table called a "through table" to track the relationships instead of a single field in an existing table. In Nautobot 2.0, some relationships such as `IPAddress` to `Interface`/`VMInterface`, `Prefix` to `VRF`, and `VRF` to `Device`/`VirtualMachine` are represented as many-to-many relationships. The REST API represents these relationships as nested objects for retrieval, but in order to create, update or delete these relationships, the through table endpoint must be used. Currently, the only through table endpoint available is the [`IPAddress` to `Interface`/`VMInterface` at `/api/ipam/ip-address-to-interface/`](../../administration/upgrading/from-v1/upgrading-from-nautobot-v1.md#new-interface-to-ip-address-relationship-endpoint).
315
-
316
- ## Pagination
317
-
318
- API responses which contain a list of many objects will be paginated for efficiency. The root JSON object returned by a list endpoint contains the following attributes:
319
-
320
- * `count`: The total number of all objects matching the query
321
- * `next`: A hyperlink to the next page of results (if applicable)
322
- * `previous`: A hyperlink to the previous page of results (if applicable)
323
- * `results`: The list of objects on the current page
324
-
325
- Here is an example of a paginated response:
326
-
327
- ```json
328
- HTTP 200 OK
329
- Allow: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
330
- API-Version: 1.2
331
- Content-Type: application/json
332
- Vary: Accept
333
-
334
- {
335
- "count": 2861,
336
- "next": "http://nautobot/api/dcim/devices/?limit=50&offset=50",
337
- "previous": null,
338
- "results": [
339
- {
340
- "id": "fa069c4b-4f6e-4349-88ac-8b6baf9d70c5",
341
- "name": "Device1",
342
- ...
343
- },
344
- {
345
- "id": "a37df58c-8bf3-4b97-bad5-301ef3880bea",
346
- "name": "Device2",
347
- ...
348
- },
349
- ...
350
- ]
351
- }
352
- ```
353
-
354
- The default page is determined by the [`PAGINATE_COUNT`](../../administration/configuration/optional-settings.md#paginate_count) configuration parameter, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:
355
-
356
- ```no-highlight
357
- http://nautobot/api/dcim/devices/?limit=100
358
- ```
359
-
360
- The response will return devices 1 through 100. The URL provided in the `next` attribute of the response will return devices 101 through 200:
361
-
362
- ```json
363
- {
364
- "count": 2861,
365
- "next": "http://nautobot/api/dcim/devices/?limit=100&offset=100",
366
- "previous": null,
367
- "results": [...]
368
- }
369
- ```
370
-
371
- The maximum number of objects that can be returned is limited by the [`MAX_PAGE_SIZE`](../../administration/configuration/optional-settings.md#max_page_size) configuration parameter, which is 1000 by default. Setting this to `0` or `None` will remove the maximum limit. An API consumer can then pass `?limit=0` to retrieve _all_ matching objects with a single request.
372
-
373
- !!! warning
374
- Disabling the page size limit introduces a potential for very resource-intensive requests, since one API request can effectively retrieve an entire table from the database.
375
-
376
- ## Sorting
377
-
378
- By default, objects are sorted by their model-defined ordering property. However, this can be overridden by specifying the `?sort` query parameter. For example, to retrieve devices sorted by their rack position:
379
-
380
- ```no-highlight
381
- http://nautobot/api/dcim/devices/?sort=position
382
- ```
383
-
384
- To sort in descending order, prefix the field name with a minus sign (`-`):
385
-
386
- ```no-highlight
387
- http://nautobot/api/dcim/devices/?sort=-position
388
- ```
389
-
390
- Currently only direct model attributes are validated to be sorted as expected.
391
-
392
- ## Interacting with Objects
393
-
394
- ### Retrieving Multiple Objects
395
-
396
- To query Nautobot for a list of objects, make a `GET` request to the model's _list_ endpoint. Objects are listed under the response object's `results` parameter. Specifying the `Accept` header with the Nautobot API version is not required, but is strongly recommended.
397
-
398
- ```no-highlight
399
- curl -s -X GET \
400
- -H "Accept: application/json; version=2.0" \
401
- http://nautobot/api/ipam/ip-addresses/ | jq '.'
402
- ```
403
-
404
- ```json
405
- {
406
- "count": 42031,
407
- "next": "http://nautobot/api/ipam/ip-addresses/?limit=50&offset=50",
408
- "previous": null,
409
- "results": [
410
- {
411
- "id": "bd307eca-de34-4bda-9195-d69ca52206d6",
412
- "address": "192.0.2.1/24",
413
- ...
414
- },
415
- {
416
- "id": "6c52e918-4f0c-4c50-ae49-6bef22c97fd5",
417
- "address": "192.0.2.2/24",
418
- ...
419
- },
420
- {
421
- "id": "b8cde1ee-1b86-4ea4-a884-041c472d8999",
422
- "address": "192.0.2.3/24",
423
- ...
424
- },
425
- ...
426
- ]
427
- }
428
- ```
429
-
430
- ### Retrieving a Single Object
431
-
432
- To query Nautobot for a single object, make a `GET` request to the model's _detail_ endpoint specifying its UUID.
433
-
434
- !!! note
435
- Note that the trailing slash is required. Omitting this will return a 302 redirect.
436
-
437
- ```no-highlight
438
- curl -s -X GET \
439
- -H "Accept: application/json; version=2.0" \
440
- http://nautobot/api/ipam/ip-addresses/bd307eca-de34-4bda-9195-d69ca52206d6/ | jq '.'
441
- ```
442
-
443
- ```json
444
- {
445
- "id": "bd307eca-de34-4bda-9195-d69ca52206d6",
446
- "address": "192.0.2.1/24",
447
- ...
448
- }
449
- ```
450
-
451
- ### Depth Query Parameter
452
-
453
- +++ 2.0.0
454
-
455
- A `?depth` query parameter is introduced in Nautobot 2.0 to replace the `?brief` parameter. It enables [nested serialization](https://www.django-rest-framework.org/api-guide/serializers/#specifying-nested-serialization) functionality and offers a more dynamic and comprehensive browsable API. It is available for both retrieving a single object and a list of objects.
456
- This parameter is an positive integer value that can range from 0 to 10. In most use cases, you will only need a maximum `depth` of 2 to get all the information you need.
457
-
458
- !!! note
459
- The `?brief` query parameter is removed for Nautobot v2.x. Use `?depth=0` instead.
460
-
461
- !!! important
462
- The `?depth` query parameter should only be used for `GET` operations in the API. It should not be used in `POST`, `PATCH` and `DELETE` requests. For these requests, only `?depth=0` should be used.
463
-
464
- #### Default/?depth=0
465
-
466
- `?depth` parameter defaults to 0 and offers a very lightweight view of the API where all object-related fields are represented by a simple object, containing only the `id`, `object_type` and `url` attributes.
467
-
468
- ```no-highlight
469
- curl -s -X GET \
470
- -H "Accept: application/json; version=2.0" \
471
- http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/ | jq '.'
472
- ```
473
-
474
- ```json
475
- {
476
- "id": "0e19e475-89c9-4cf4-8b5f-a0589f0950cd",
477
- "display": "Campus-01",
478
- "url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/",
479
- "tree_depth": 0,
480
- "time_zone": "Asia/Baghdad",
481
- "circuit_count": 7,
482
- "device_count": 0,
483
- "prefix_count": 0,
484
- "rack_count": 0,
485
- "virtual_machine_count": 0,
486
- "vlan_count": 0,
487
- "created": "2023-04-12T19:29:06.884754Z",
488
- "last_updated": "2023-04-12T19:29:06.906503Z",
489
- "name": "Campus-01",
490
- "description": "Local take each compare court exactly.",
491
- "facility": "328",
492
- "asn": null,
493
- "physical_address": "",
494
- "shipping_address": "",
495
- "latitude": null,
496
- "longitude": "104.200000",
497
- "contact_name": "Frances Hernandez",
498
- "contact_phone": "",
499
- "contact_email": "",
500
- "comments": "Sort share road candidate.",
501
- "status": {
502
- "id": "28eb334b-4171-4da4-a03a-fa6d0c6a9442",
503
- "object_type": "extras.status",
504
- "url": "http://nautobot/api/extras/statuses/28eb334b-4171-4da4-a03a-fa6d0c6a9442/",
505
-
506
- },
507
- "parent": null,
508
- "location_type": {
509
- "id": "e3d4a9af-c6c1-4582-b483-a13301eb6e28",
510
- "object_type": "dcim.locationtype",
511
- "url": "http://nautobot/api/dcim/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/",
512
- },
513
- "tenant": {
514
- "id": "5b1feadb-fab0-4f81-a53f-5192d83b0216",
515
- "object_type": "tenancy.tenant",
516
- "url": "http://nautobot/api/tenancy/tenants/5b1feadb-fab0-4f81-a53f-5192d83b0216/",
517
- },
518
- "tags": [
519
- {
520
- "id": "a50d4568-27ae-4743-87ac-ffdc22b7f5d2",
521
- "object_type": "extras.tag",
522
- "url": "http://nautobot/api/extras/tags/a50d4568-27ae-4743-87ac-ffdc22b7f5d2/",
523
- }
524
- ],
525
- "notes_url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/notes/",
526
- "custom_fields": {
527
- "example_plugin_auto_custom_field": null
528
- }
529
- }
530
- ```
531
-
532
- #### ?depth=1
533
-
534
- When `?depth=1` is added to the query parameters, all object-related fields, instead of being represented as light-weight objects as they are when `?depth=0`, will be represented as fully-detailed nested objects, similar (**but not necessarily identical!**) to the objects that would be retrieved when querying the API directly for those related objects.
535
-
536
- !!! important
537
- Nested objects retrieved with a greater-than-zero `depth` parameter do not necessarily include all fields that would be included on the fully detailed object that can be retrieved by querying their `url` directly. In particular:
538
-
539
- - Nested objects *will not include* a field for `tags` or any other many-to-many relations on the object (such as a `Status` object's `content_types` relation).
540
- - Nested objects *will not include* the `relationships` or `computed_fields` keys, even if those are [opted-in](#retrieving-object-relationships-and-relationship-associations) on the request.
541
- - Nested objects *may omit* any derived (non-database) attributes, such as related object counts, tree-depth information, etc.
542
-
543
- For example, retrieving a `Location` with `?depth=1` would provide nested objects for the `status`, `parent`, `location_type`, `tenant`, and `tags` fields:
544
-
545
- ```no-highlight
546
- curl -s -X GET \
547
- -H "Accept: application/json; version=2.0" \
548
- http://nautobot/api/dcim/locations/ce69530e-6a4a-4d3c-9f95-fc326ec39abf/?depth=1 | jq '.'
549
- ```
550
-
551
- ```json
552
- {
553
- ...
554
- "status": {
555
- "id": "91a53d61-4180-4820-835d-533b34dbb5b4",
556
- "display": "Active",
557
- "url": "http://nautobot/api/extras/statuses/91a53d61-4180-4820-835d-533b34dbb5b4/",
558
- "custom_fields": {},
559
- "notes_url": "http://nautobot/api/extras/statuses/91a53d61-4180-4820-835d-533b34dbb5b4/notes/",
560
- "created": "2023-04-12T00:00:00Z",
561
- "last_updated": "2023-04-12T19:25:51.413824Z",
562
- "name": "Active",
563
- "color": "4caf50",
564
- "description": "Unit is active"
565
- },
566
- "parent": {
567
- "id": "0e19e475-89c9-4cf4-8b5f-a0589f0950cd",
568
- "display": "Campus-01",
569
- "url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/",
570
- "custom_fields": {
571
- "example_plugin_auto_custom_field": null
572
- },
573
- "notes_url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/notes/",
574
- "tree_depth": null,
575
- "time_zone": "Asia/Baghdad",
576
- "created": "2023-04-12T19:29:06.884754Z",
577
- "last_updated": "2023-04-12T19:29:06.906503Z",
578
- "name": "Campus-01",
579
- "description": "Local take each compare court exactly.",
580
- "facility": "328",
581
- "asn": null,
582
- "physical_address": "",
583
- "shipping_address": "",
584
- "latitude": null,
585
- "longitude": "104.200000",
586
- "contact_name": "Frances Hernandez",
587
- "contact_phone": "",
588
- "contact_email": "",
589
- "comments": "Sort share road candidate.",
590
- "status": "http://nautobot/api/extras/statuses/28eb334b-4171-4da4-a03a-fa6d0c6a9442/",
591
- "parent": null,
592
- "location_type": "http://nautobot/api/extras/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/",
593
- "tenant": "http://nautobot/api/tenancy/tenants/5b1feadb-fab0-4f81-a53f-5192d83b0216/",
594
- },
595
- "location_type": {
596
- "id": "4edcc111-e3f7-4309-ab0e-eb34c001874e",
597
- "display": "Campus → Building",
598
- "url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/",
599
- "custom_fields": {},
600
- "notes_url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/notes/",
601
- "tree_depth": null,
602
- "created": "2023-04-12T19:29:06.707759Z",
603
- "last_updated": "2023-04-12T19:29:06.716482Z",
604
- "name": "Building",
605
- "description": "Protect growth bill all hair along.",
606
- "nestable": false,
607
- "parent": "http://nautobot/api/dcim/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/"
608
- },
609
- "tenant": {
610
- "id": "d043b6bc-6892-45f9-b460-4b006eb68016",
611
- "display": "Page Inc",
612
- "url": "http://nautobot/api/tenancy/tenants/d043b6bc-6892-45f9-b460-4b006eb68016/",
613
- "custom_fields": {},
614
- "notes_url": "http://nautobot/api/tenancy/tenants/d043b6bc-6892-45f9-b460-4b006eb68016/notes/",
615
- "created": "2023-04-12T19:29:06.257345Z",
616
- "last_updated": "2023-04-12T19:29:06.262563Z",
617
- "name": "Page Inc",
618
- "description": "Citizen father policy door science light. Glass improve place understand against ground.\nLarge firm per sing. Item they side walk test open tend.",
619
- "comments": "",
620
- "tenant_group": null,
621
- },
622
- "tags": [
623
- {
624
- "id": "a50d4568-27ae-4743-87ac-ffdc22b7f5d2",
625
- "display": "Light blue",
626
- "url": "http://nautobot/api/extras/tags/a50d4568-27ae-4743-87ac-ffdc22b7f5d2/",
627
- "custom_fields": {},
628
- "notes_url": "http://nautobot/api/extras/tags/a50d4568-27ae-4743-87ac-ffdc22b7f5d2/notes/",
629
- "name": "Light blue",
630
- "created": "2023-04-12T19:29:05.753433Z",
631
- "last_updated": "2023-04-12T19:29:05.770752Z",
632
- "color": "03a9f4",
633
- "description": "Want task generation. Commercial candidate performance financial guess modern.\nEarly toward adult black. Join black land sit. It smile standard possible reach."
634
- }
635
- ]
636
- }
637
- ```
638
-
639
- !!! note
640
- As previously explained, note that the `status` nested object included in this response does not include the `content_types` many-to-many relation that exists on all Status objects. If this information is needed, you would need to directly query the URL of the status object itself (above, `http://nautobot/api/extras/statuses/91a53d61-4180-4820-835d-533b34dbb5b4/`) to get a fully detailed response. Similarly, the `parent` and `tenant` nested objects do not include their `tags` relations, the `parent` object does not include its derived `tree_depth` and related object counters, and the `tags` nested object list does not include the `content_types` for each `Tag`.
641
-
642
- #### ?depth=2 and beyond
643
-
644
- A higher `depth` parameter in the query presents you with more insight to the object and can be useful in situations that demand information of an indirectly related field of the object.
645
-
646
- !!! important
647
- Using higher `depth` values may substantially increase the amount of time it takes for the REST API to respond to your query when there are a large number of related objects. In some cases it may be more efficient to initially query with a lower `depth` and then follow the `url` values that the REST API response provides for specific related objects to query those objects directly as a more narrowly focused query approach.
648
-
649
- For example, if you need information on the `parent` of a `location` instance's `parent`.
650
-
651
- ```no-highlight
652
- curl -s -X GET \
653
- -H "Accept: application/json; version=2.0" \
654
- http://nautobot/api/dcim/locations/3b71a669-faa4-4f8d-a72a-8c94d121b793/?depth=2 | jq '.'
655
- ```
656
-
657
- ```json
658
- {
659
- ...
660
- "parent": {
661
- ...
662
- "status": {
663
- "id": "39ea1ea4-3028-4a81-81e0-24a5743d3657",
664
- "url": "http://nautobot/api/extras/statuses/39ea1ea4-3028-4a81-81e0-24a5743d3657/",
665
- "display": "Retired",
666
- "object_type": "extras.status",
667
- "notes_url": "http://nautobot/api/extras/statuses/39ea1ea4-3028-4a81-81e0-24a5743d3657/notes/",
668
- "created": "2023-04-12T00:00:00Z",
669
- "last_updated": "2023-04-12T19:26:16.982697Z",
670
- "name": "Retired",
671
- "color": "f44336",
672
- "description": "Location has been retired",
673
- "custom_fields": {}
674
- },
675
- "parent": {
676
- "id": "0e19e475-89c9-4cf4-8b5f-a0589f0950cd",
677
- "url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/",
678
- "display": "Campus-01",
679
- "object_type": "dcim.location",
680
- "time_zone": "Asia/Baghdad",
681
- "created": "2023-04-12T19:29:06.884754Z",
682
- "last_updated": "2023-04-12T19:29:06.906503Z",
683
- "name": "Campus-01",
684
- "description": "Local take each compare court exactly.",
685
- "facility": "328",
686
- "asn": null,
687
- "physical_address": "",
688
- "shipping_address": "",
689
- "latitude": null,
690
- "longitude": "104.200000",
691
- "contact_name": "Frances Hernandez",
692
- "contact_phone": "",
693
- "contact_email": "",
694
- "comments": "Sort share road candidate.",
695
- "status": "http://nautobot/api/extras/statuses/28eb334b-4171-4da4-a03a-fa6d0c6a9442/",
696
- "parent": null,
697
- "location_type": "http://nautobot/api/dcim/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/",
698
- "tenant": "http://nautobot/api/tenancy/tenants/5b1feadb-fab0-4f81-a53f-5192d83b0216/",
699
- "notes_url": "http://nautobot/api/dcim/locations/0e19e475-89c9-4cf4-8b5f-a0589f0950cd/notes/",
700
- "custom_fields": {
701
- "example_plugin_auto_custom_field": null
702
- }
703
- },
704
- "location_type": {
705
- "id": "4edcc111-e3f7-4309-ab0e-eb34c001874e",
706
- "display": "Campus → Building",
707
- "url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/",
708
- "created": "2023-04-12T19:29:06.707759Z",
709
- "last_updated": "2023-04-12T19:29:06.716482Z",
710
- "name": "Building",
711
- "description": "Protect growth bill all hair along.",
712
- "nestable": false,
713
- "parent": "http://nautobot/api/dcim/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/",
714
- "notes_url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/notes/",
715
- "custom_fields": {}
716
- },
717
- "tenant": null,
718
- },
719
- "location_type": {
720
- ...
721
- "parent": {
722
- "id": "4edcc111-e3f7-4309-ab0e-eb34c001874e",
723
- "display": "Campus → Building",
724
- "url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/",
725
- "created": "2023-04-12T19:29:06.707759Z",
726
- "last_updated": "2023-04-12T19:29:06.716482Z",
727
- "name": "Building",
728
- "description": "Protect growth bill all hair along.",
729
- "nestable": false,
730
- "parent": "http://nautobot/api/dcim/location-types/e3d4a9af-c6c1-4582-b483-a13301eb6e28/",
731
- "notes_url": "http://nautobot/api/dcim/location-types/4edcc111-e3f7-4309-ab0e-eb34c001874e/notes/",
732
- "custom_fields": {}
733
- }
734
- },
735
- ...
736
- }
737
- ```
738
-
739
- ### Retrieving Object Relationships and Relationship Associations
740
-
741
- +++ 1.4.0
742
-
743
- Objects that are associated with another object by a custom [Relationship](../relationship.md) are also retrievable and modifiable via the REST API. Due to the additional processing overhead involved in retrieving and representing these relationships, they are _not_ included in default REST API `GET` responses. To include relationships data, pass `include=relationships` as a query parameter; in this case an additional key, `"relationships"`, will be included in the API response, as seen below:
744
-
745
- ```no-highlight
746
- GET /api/dcim/locations/f472bb77-7f56-4e79-ac25-2dc73eb63924/?include=relationships
747
- ```
748
-
749
- ```json
750
- {
751
- "id": "f472bb77-7f56-4e79-ac25-2dc73eb63924",
752
- "display": "alpha",
753
- "url": "http://nautobot/api/dcim/locations/f472bb77-7f56-4e79-ac25-2dc73eb63924/",
754
- ...
755
- "relationships": {
756
- "site-to-vrf": {
757
- "id": "e74cb7f7-15b0-499d-9401-a0f01cb96a9a",
758
- "url": "/api/extras/relationships/e74cb7f7-15b0-499d-9401-a0f01cb96a9a/",
759
- "name": "Single Site to Single VRF",
760
- "type": "one-to-one",
761
- "destination": {
762
- "label": "VRF",
763
- "object_type": "ipam.vrf",
764
- "objects": [
765
- {
766
- "id": "36641ba0-50d6-43be-b9b5-86aa992402e0",
767
- "url": "http://nautobot/api/ipam/vrfs/36641ba0-50d6-43be-b9b5-86aa992402e0/",
768
- "name": "red",
769
- "rd": null,
770
- "display": "red"
771
- }
772
- ]
773
- }
774
- },
775
- "vrfs-to-locations": {
776
- "id": "e39c53e4-78cf-4572-b116-1d8830b81b2e",
777
- "url": "/api/extras/relationships/e39c53e4-78cf-4572-b116-1d8830b81b2e/",
778
- "name": "VRFs to Locations",
779
- "type": "many-to-many",
780
- "source": {
781
- "label": "VRFs",
782
- "object_type": "ipam.vrf",
783
- "objects": []
784
- }
785
- },
786
- }
787
- }
788
- ```
789
-
790
- * Under the `"relationships"` key, there will be one key per Relationship that applies to this model, corresponding to the `key` of that Relationship.
791
- * Under each key, there will be information about the Relationship itself, plus any of `"source"`, `"destination"`, or `"peer"` keys (depending on the type and directionality of the Relationship).
792
- * Under the `"source"`, `"destination"`, or `"peer"` keys, there are the following keys:
793
- * `"label"` - a human-readable description of the related objects
794
- * `"object_type"` - the content-type of the related objects
795
- * `"objects"` - a list of all related objects, each represented in nested-serializer form as described under [Related Objects](#related-objects) above.
796
-
797
- In the example above we can see that a single VRF, `green`, is a destination for the `site-to-vrf` Relationship from this Site, while there are currently no VRFs associated as sources for the `vrfs-to-locations` Relationship to this Site.
798
-
799
- ### Including Config Contexts
800
-
801
- When retrieving Devices and Virtual Machines via the REST API, it is possible to also retrive the rendered [configuration context data](../../core-data-model/extras/configcontext.md) for each such object if desired. Because rendering this data can be time consuming, it is _not_ included in the REST API responses by default. If you wish to include config context data in the response, you must opt in by specifying the query parameter `include=config_context` as a part of your request.
802
-
803
- +/- 2.0.0
804
- In Nautobot 1.x, the rendered configuration context was included by default in the REST API response unless specifically excluded with the query parameter `exclude=config_context`. This behavior has been reversed in Nautobot 2.0 and the `exclude` query parameter is no longer supported.
805
-
806
- ### Creating a New Object
807
-
808
- To create a new object, make a `POST` request to the model's _list_ endpoint with JSON data pertaining to the object being created. Note that a REST API token is required for all write operations; see the [authentication documentation](authentication.md) for more information. Also be sure to set the `Content-Type` HTTP header to `application/json`. As always, it's a good practice to also set the `Accept` HTTP header to include the requested REST API version.
809
-
810
- ```no-highlight
811
- curl -s -X POST \
812
- -H "Authorization: Token $TOKEN" \
813
- -H "Content-Type: application/json" \
814
- -H "Accept: application/json; version=2.0" \
815
- http://nautobot/api/ipam/prefixes/ \
816
- --data '{"prefix": "192.0.2.0/24", "status": "fc32b83f-2448-4602-9d43-fecc6735e4e5", "location": "8df9e629-4338-438b-8ea9-06114f7be08e", "namespace": "1fa6a1a9-84a3-4cf3-a9ad-7e4e7baa134a"}' | jq '.'
817
- ```
818
-
819
- ```json
820
- {
821
- "id": "48df6965-0fcb-4155-b5f8-00fe8b9b01af",
822
- "url": "http://nautobot/api/ipam/prefixes/48df6965-0fcb-4155-b5f8-00fe8b9b01af/",
823
- "family": {
824
- "value": 4,
825
- "label": "IPv4"
826
- },
827
- "prefix": "192.0.2.0/24",
828
- "location": {
829
- "id": "8df9e629-4338-438b-8ea9-06114f7be08e",
830
- "object_type": "dcim.location",
831
- "url": "http://nautobot/api/dcim/locations/8df9e629-4338-438b-8ea9-06114f7be08e/",
832
- },
833
- "namespace": {
834
- "id": "1fa6a1a9-84a3-4cf3-a9ad-7e4e7baa134a",
835
- "object_type": "ipam.namespace",
836
- "url": "http://nautobot/api/ipam/namespaces/1fa6a1a9-84a3-4cf3-a9ad-7e4e7baa134a/",
837
- },
838
- "tenant": null,
839
- "vlan": null,
840
- "status": {
841
- "id": "fc32b83f-2448-4602-9d43-fecc6735e4e5",
842
- "object_type": "extras.status",
843
- "url": "http://nautobot/api/extras/statuses/fc32b83f-2448-4602-9d43-fecc6735e4e5/",
844
- },
845
- "role": null,
846
- "type": "network",
847
- "description": "",
848
- "tags": [],
849
- "custom_fields": {},
850
- "created": "2020-08-04T20:08:39.007125Z",
851
- "last_updated": "2020-08-04T20:08:39.007125Z"
852
- }
853
- ```
854
-
855
- Related fields can be specified using either the primary key, the URL of the related object, or a nested representation similar to what is returned in the `?depth=0` response. For example, the following request is equivalent to the one above:
856
-
857
- ```no-highlight
858
- curl -s -X POST \
859
- -H "Authorization: Token $TOKEN" \
860
- -H "Content-Type: application/json" \
861
- -H "Accept: application/json; version=2.0" \
862
- http://nautobot/api/ipam/prefixes/ \
863
- --data '{"prefix": "192.0.2.0/24", "status": {"id": "fc32b83f-2448-4602-9d43-fecc6735e4e5", "object_type": "extras.status"}, "location": {"id": "8df9e629-4338-438b-8ea9-06114f7be08e", "object_type": "dcim.location"}, "namespace": { "id": "1fa6a1a9-84a3-4cf3-a9ad-7e4e7baa134a", "object_type": "ipam.namespace"} }' | jq '.'
864
- ```
865
-
866
- ### Creating Multiple Objects
867
-
868
- To create multiple instances of a model using a single request, make a `POST` request to the model's _list_ endpoint with a list of JSON objects representing each instance to be created. If successful, the response will contain a list of the newly created instances. The example below illustrates the creation of three new locations.
869
-
870
- ```no-highlight
871
- curl -X POST -H "Authorization: Token $TOKEN" \
872
- -H "Content-Type: application/json" \
873
- -H "Accept: application/json; version=2.0; indent=4" \
874
- http://nautobot/api/dcim/locations/ \
875
- --data '[
876
- {"name": "Location 1", "parent": {"name": "United States"}, "location_type": {"name": "City"}},
877
- {"name": "Location 2", "parent": {"name": "United States"}, "location_type": {"name": "City"}},
878
- {"name": "Location 3", "parent": {"name": "United States"}, "location_type": {"name": "City"}},
879
- ]'
880
- ```
881
-
882
- ```json
883
- [
884
- {
885
- "id": "0238a4e3-66f2-455a-831f-5f177215de0f",
886
- "url": "http://nautobot/api/dcim/locations/0238a4e3-66f2-455a-831f-5f177215de0f/",
887
- "name": "Location 1",
888
- ...
889
- },
890
- {
891
- "id": "33ac3a3b-0ee7-49b7-bf2a-244096051dc0",
892
- "url": "http://nautobot/api/dcim/locations/33ac3a3b-0ee7-49b7-bf2a-244096051dc0/",
893
- "name": "Location 2",
894
- ...
895
- },
896
- {
897
- "id": "10b3134d-960b-4794-ad18-0e73edd357c4",
898
- "url": "http://nautobot/api/dcim/locations/10b3134d-960b-4794-ad18-0e73edd357c4/",
899
- "name": "Location 3",
900
- ...
901
- }
902
- ]
903
- ```
904
-
905
- ### Updating an Object
906
-
907
- To modify an object which has already been created, make a `PATCH` request to the model's _detail_ endpoint specifying its UUID. Include any data which you wish to update on the object. As with object creation, the `Authorization` and `Content-Type` headers must also be specified, and specifying the `Accept` header is also strongly recommended.
908
-
909
- ```no-highlight
910
- curl -s -X PATCH \
911
- -H "Authorization: Token $TOKEN" \
912
- -H "Content-Type: application/json" \
913
- -H "Accept: application/json; version=2.0" \
914
- http://nautobot/api/ipam/prefixes/b484b0ac-12e3-484a-84c0-aa17955eaedc/ \
915
- --data '{"status": "fc32b83f-2448-4602-9d43-fecc6735e4e5"}' | jq '.'
916
- ```
917
-
918
- ```json
919
- {
920
- "id": "48df6965-0fcb-4155-b5f8-00fe8b9b01af",
921
- "url": "http://nautobot/api/ipam/prefixes/48df6965-0fcb-4155-b5f8-00fe8b9b01af/",
922
- "family": {
923
- "value": 4,
924
- "label": "IPv4"
925
- },
926
- "prefix": "192.0.2.0/24",
927
- "site": "http://nautobot/api/dcim/locations/8df9e629-4338-438b-8ea9-06114f7be08e/",
928
- "vrf": null,
929
- "tenant": null,
930
- "vlan": null,
931
- "status": "http://nautobot/api/extras/statuses/fc32b83f-2448-4602-9d43-fecc6735e4e5/",
932
- "role": null,
933
- "type": "network",
934
- "description": "",
935
- "tags": [],
936
- "custom_fields": {},
937
- "created": "2020-08-04T00:00:00Z",
938
- "last_updated": "2020-08-04T20:14:55.709430Z"
939
- }
940
- ```
941
-
942
- !!! note "PUT versus PATCH"
943
- The Nautobot REST API support the use of either `PUT` or `PATCH` to modify an existing object. The difference is that a `PUT` request requires the user to specify a _complete_ representation of the object being modified, whereas a `PATCH` request need include only the attributes that are being updated. For most purposes, using `PATCH` is recommended.
944
-
945
- #### Updating Relationship Associations
946
-
947
- +++ 1.4.0
948
-
949
- It is possible to modify the objects associated via Relationship with an object as part of a REST API `PATCH` request by specifying the `"relationships"` key, any or all of the relevant Relationships, and the list of desired related objects for each such Relationship. Since nested serializers are used for the related objects, they can be identified by ID (primary key) or by one or more attributes in a dictionary. For example, either of the following requests would be valid:
950
-
951
- ```json
952
- {
953
- "relationships": {
954
- "site_to_vrf": {
955
- "destination": {
956
- "objects": [
957
- {"name": "blue"}
958
- ]
959
- }
960
- },
961
- "vrfs_to_locations": {
962
- "source": {
963
- "objects": [
964
- {"name": "green"},
965
- {"name": "red"},
966
- ]
967
- }
968
- }
969
- }
970
- }
971
- ```
972
-
973
- ```json
974
- {
975
- "relationships": {
976
- "site_to_vrf": {
977
- "destination": {
978
- "objects": ["3e3c58f9-4f63-44ba-acee-f0c42430eba7"]
979
- }
980
- }
981
- }
982
- }
983
- ```
984
-
985
- !!! Note
986
- Relationship keys can be omitted from the `"relationships"` dictionary, in which case the associations for that Relationship will be left unmodified. In the second example above, the existing association for the `"site_to_vrf"` Relationship would be replaced, but the `"vrfs_to_locations"` Relationship's associations would remain as-is.
987
-
988
- ### Updating Multiple Objects
989
-
990
- Multiple objects can be updated simultaneously by issuing a `PUT` or `PATCH` request to a model's list endpoint with a list of dictionaries specifying the UUID of each object to be deleted and the attributes to be updated. For example, to update locations with UUIDs 18de055e-3ea9-4cc3-ba78-b7eef6f0d589 and 1a414273-3d68-4586-ba22-6ae0a5702b8f to a status of "Active", issue the following request:
991
-
992
- ```no-highlight
993
- curl -s -X PATCH \
994
- -H "Authorization: Token $TOKEN" \
995
- -H "Content-Type: application/json" \
996
- -H "Accept: application/json; version=2.0" \
997
- http://nautobot/api/dcim/locations/ \
998
- --data '[{"id": "18de055e-3ea9-4cc3-ba78-b7eef6f0d589", "status": {"name": "Active"}}, {"id": "1a414273-3d68-4586-ba22-6ae0a5702b8f", "status": {"name": "Active"}}]'
999
- ```
1000
-
1001
- Note that there is no requirement for the attributes to be identical among objects. For instance, it's possible to update the status of one site along with the name of another in the same request.
1002
-
1003
- !!! note
1004
- The bulk update of objects is an all-or-none operation, meaning that if Nautobot fails to successfully update any of the specified objects (e.g. due a validation error), the entire operation will be aborted and none of the objects will be updated.
1005
-
1006
- ### Deleting an Object
1007
-
1008
- To delete an object from Nautobot, make a `DELETE` request to the model's _detail_ endpoint specifying its UUID. The `Authorization` header must be included to specify an authorization token, however this type of request does not support passing any data in the body.
1009
-
1010
- ```no-highlight
1011
- curl -s -X DELETE \
1012
- -H "Authorization: Token $TOKEN" \
1013
- -H "Accept: application/json; version=2.0" \
1014
- http://nautobot/api/ipam/prefixes/48df6965-0fcb-4155-b5f8-00fe8b9b01af/
1015
- ```
1016
-
1017
- Note that `DELETE` requests do not return any data: If successful, the API will return a 204 (No Content) response.
1018
-
1019
- !!! note
1020
- You can run `curl` with the verbose (`-v`) flag to inspect the HTTP response codes.
1021
-
1022
- ### Deleting Multiple Objects
1023
-
1024
- Nautobot supports the simultaneous deletion of multiple objects of the same type by issuing a `DELETE` request to the model's list endpoint with a list of dictionaries specifying the UUID of each object to be deleted. For example, to delete locations with UUIDs 18de055e-3ea9-4cc3-ba78-b7eef6f0d589, 1a414273-3d68-4586-ba22-6ae0a5702b8f, and c2516019-caf6-41f0-98a6-4276c1a73fa3, issue the following request:
1025
-
1026
- ```no-highlight
1027
- curl -s -X DELETE \
1028
- -H "Authorization: Token $TOKEN" \
1029
- -H "Content-Type: application/json" \
1030
- -H "Accept: application/json; version=2.0" \
1031
- http://nautobot/api/dcim/locations/ \
1032
- --data '[{"id": "18de055e-3ea9-4cc3-ba78-b7eef6f0d589"}, {"id": "1a414273-3d68-4586-ba22-6ae0a5702b8f"}, {"id": "c2516019-caf6-41f0-98a6-4276c1a73fa3"}]'
1033
- ```
1034
-
1035
- !!! note
1036
- The bulk deletion of objects is an all-or-none operation, meaning that if Nautobot fails to delete any of the specified objects (e.g. due a dependency by a related object), the entire operation will be aborted and none of the objects will be deleted.
1037
-
1038
- ## CSV Format
1039
-
1040
- +++ 2.0.0
1041
-
1042
- In addition to the standard JSON format for REST APIs, Nautobot's REST API also supports most (but not all) REST operations in CSV format when specifying a `?format=csv` query parameter or an `Accept: text/csv` header on requests, allowing Nautobot object data to be created, retrieved, and updated in this format as an alternative to JSON.
1043
-
1044
- !!! tip
1045
- Nautobot's JSON support in the REST API is more fully-featured than its CSV support; not all data can be populated, retrieved, or modified by CSV at this time due to limitations of the CSV format in describing certain types of data. When in doubt, prefer JSON over CSV when interacting with the REST API.