diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e4e02e82..89652e35 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,7 +54,9 @@ jobs: python-version: - "3.9" nautobot-version: - - "2.0" + - "2.1" + # TODO: Change to 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" @@ -76,6 +78,9 @@ jobs: - "3.11" nautobot-version: - "2.0" + - "2.1" + # TODO: Enable 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml index 637f2dff..db0ce587 100644 --- a/.github/workflows/trigger_release.yml +++ b/.github/workflows/trigger_release.yml @@ -45,6 +45,9 @@ jobs: - "3.11" nautobot-version: - "2.0" + - "2.1" + # TODO: Enable 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 92985080..7b5d20e6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,20 @@ networktocode.nautobot Release Notes .. contents:: Topics +v5.2.0 +====== + +Minor Changes +------------- +- (#310) Fixed `parent` for location_type to convert to UUID for idempotency +- (#319) Added `custom_fields` to `tag`, `vlan_group` and `role` modules +- (#321) Updated documentation and examples for the `lookup` plugin +- (#323) Added constructed features and inventory cache to the `gql_inventory` plugin +- (#335) Fixed custom field idempotency for various modules +- (#336) Added `custom_fields` to the `inventory_item` module +- (#338) Added `num_retries` to the `lookup` plugin +- (#340) Added `label` and `description` to the `device_interface_template` module + v5.1.1 ====== diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 945c691f..31dbd225 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -433,3 +433,14 @@ releases: - (#298) Removes `status` option from being required unless creating a new object for various modules - (#299) Added example for using the `depth` option in the `lookup` module - (#304) Fixed the ability to look up `parent_location` by name instead of UUID in the `location` module + 5.2.0: + changes: + minor_changes: + - (#310) Fixed `parent` for location_type to convert to UUID for idempotency + - (#319) Added `custom_fields` to `tag`, `vlan_group` and `role` modules + - (#321) Updated documentation and examples for the `lookup` plugin + - (#323) Added constructed features and inventory cache to the `gql_inventory` plugin + - (#335) Fixed custom field idempotency for various modules + - (#336) Added `custom_fields` to the `inventory_item` module + - (#338) Added `num_retries` to the `lookup` plugin + - (#340) Added `label` and `description` to the `device_interface_template` module diff --git a/development/nautobot_config.py b/development/nautobot_config.py index ebc9fdfd..9d8aaa07 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -1,4 +1,5 @@ """Nautobot development configuration file.""" + # pylint: disable=invalid-envvar-default import os import sys @@ -73,3 +74,6 @@ # Enable installed plugins. Add the name of each plugin to the list. PLUGINS = ["nautobot_bgp_models"] + +# Disable metrics for tests +INSTALLATION_METRICS_ENABLED = False diff --git a/docker-compose.yml b/docker-compose.yml index a6eb009a..b61a9df6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,10 +34,3 @@ services: build: <<: *build target: integration - networks: - - integration_network - -# Attach these services to the Nautobot network that gets spun up from invoke start -networks: - integration_network: - name: nautobot_ansible_default diff --git a/docs/plugins/cable_module.rst b/docs/plugins/cable_module.rst index ab8bc6f3..09da8bd1 100755 --- a/docs/plugins/cable_module.rst +++ b/docs/plugins/cable_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cable module -- Create, update or delete cables within Na .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_module.rst b/docs/plugins/circuit_module.rst index fc257e06..90f581ac 100755 --- a/docs/plugins/circuit_module.rst +++ b/docs/plugins/circuit_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit module -- Create, update or delete circuits withi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_termination_module.rst b/docs/plugins/circuit_termination_module.rst index bdd8dd71..40da9b4c 100755 --- a/docs/plugins/circuit_termination_module.rst +++ b/docs/plugins/circuit_termination_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit_termination module -- Create, update or delete ci .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_type_module.rst b/docs/plugins/circuit_type_module.rst index 0841ebd9..3e5c54e2 100755 --- a/docs/plugins/circuit_type_module.rst +++ b/docs/plugins/circuit_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit_type module -- Create, update or delete circuit t .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_group_module.rst b/docs/plugins/cluster_group_module.rst index 2978ef15..3906c15a 100755 --- a/docs/plugins/cluster_group_module.rst +++ b/docs/plugins/cluster_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster_group module -- Create, update or delete cluster .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_module.rst b/docs/plugins/cluster_module.rst index 33869e1e..bcb846bb 100755 --- a/docs/plugins/cluster_module.rst +++ b/docs/plugins/cluster_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster module -- Create, update or delete clusters withi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_type_module.rst b/docs/plugins/cluster_type_module.rst index 25146f1c..d3550e28 100755 --- a/docs/plugins/cluster_type_module.rst +++ b/docs/plugins/cluster_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster_type module -- Create, update or delete cluster t .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_port_module.rst b/docs/plugins/console_port_module.rst index 76cec5b6..da86ddd0 100755 --- a/docs/plugins/console_port_module.rst +++ b/docs/plugins/console_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_port module -- Create, update or delete console p .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_port_template_module.rst b/docs/plugins/console_port_template_module.rst index 2fdfebc9..cad5dc86 100755 --- a/docs/plugins/console_port_template_module.rst +++ b/docs/plugins/console_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_port_template module -- Create, update or delete .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_server_port_module.rst b/docs/plugins/console_server_port_module.rst index 3ceb5893..126fc215 100755 --- a/docs/plugins/console_server_port_module.rst +++ b/docs/plugins/console_server_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_server_port module -- Create, update or delete co .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_server_port_template_module.rst b/docs/plugins/console_server_port_template_module.rst index cb7b13f3..0c3f6987 100755 --- a/docs/plugins/console_server_port_template_module.rst +++ b/docs/plugins/console_server_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_server_port_template module -- Create, update or .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/custom_field_choice_module.rst b/docs/plugins/custom_field_choice_module.rst index 7014a3de..d6243570 100755 --- a/docs/plugins/custom_field_choice_module.rst +++ b/docs/plugins/custom_field_choice_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.custom_field_choice module -- Creates or removes custom f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/custom_field_module.rst b/docs/plugins/custom_field_module.rst index 56a3f966..d80ac689 100755 --- a/docs/plugins/custom_field_module.rst +++ b/docs/plugins/custom_field_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.custom_field module -- Creates or removes custom fields f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_bay_module.rst b/docs/plugins/device_bay_module.rst index 3ccf4343..81e7650f 100755 --- a/docs/plugins/device_bay_module.rst +++ b/docs/plugins/device_bay_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_bay module -- Create, update or delete device bays .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_bay_template_module.rst b/docs/plugins/device_bay_template_module.rst index 50a7cad0..e27c8bf3 100755 --- a/docs/plugins/device_bay_template_module.rst +++ b/docs/plugins/device_bay_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_bay_template module -- Create, update or delete de .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_interface_module.rst b/docs/plugins/device_interface_module.rst index dea968dc..d3da7e64 100755 --- a/docs/plugins/device_interface_module.rst +++ b/docs/plugins/device_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_interface module -- Creates or removes interfaces .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_interface_template_module.rst b/docs/plugins/device_interface_template_module.rst index ba0f3ecd..8057b617 100755 --- a/docs/plugins/device_interface_template_module.rst +++ b/docs/plugins/device_interface_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_interface_template module -- Creates or removes in .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -137,6 +137,43 @@ Parameters API Version Nautobot REST API + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.device_interface_template_module__parameter-description: + + .. rst-class:: ansible-option-title + + **description** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in networktocode.nautobot 5.2.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Description of the interface + + .. raw:: html
@@ -174,6 +211,43 @@ Parameters Name of the device the interface template will be associated with (case-sensitive) + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.device_interface_template_module__parameter-label: + + .. rst-class:: ansible-option-title + + **label** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in networktocode.nautobot 5.2.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Label of the interface template to be created + + .. raw:: html
diff --git a/docs/plugins/device_module.rst b/docs/plugins/device_module.rst index 0249d351..10f99d4e 100755 --- a/docs/plugins/device_module.rst +++ b/docs/plugins/device_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device module -- Create, update or delete devices within .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_redundancy_group_module.rst b/docs/plugins/device_redundancy_group_module.rst index e80f304a..5e06e1f6 100755 --- a/docs/plugins/device_redundancy_group_module.rst +++ b/docs/plugins/device_redundancy_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_redundancy_group module -- Creates or removes devi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_type_module.rst b/docs/plugins/device_type_module.rst index db8c233d..2dac413a 100755 --- a/docs/plugins/device_type_module.rst +++ b/docs/plugins/device_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_type module -- Create, update or delete device typ .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/environment_variables.rst b/docs/plugins/environment_variables.rst new file mode 100644 index 00000000..c2e7a6e0 --- /dev/null +++ b/docs/plugins/environment_variables.rst @@ -0,0 +1,36 @@ + +:orphan: + +.. _list_of_collection_env_vars: + +Index of all Collection Environment Variables +============================================= + +The following index documents all environment variables declared by plugins in collections. +Environment variables used by the ansible-core configuration are documented in :ref:`ansible_configuration_settings`. + +.. envvar:: ANSIBLE_INVENTORY_USE_EXTRA_VARS + + Merge extra vars into the available variables for composition (highest precedence). + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin ` +.. envvar:: NAUTOBOT_TOKEN + + See the documentations for the options where this environment variable is used. + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin `, + :ref:`networktocode.nautobot.lookup lookup plugin `, + :ref:`networktocode.nautobot.lookup\_graphql lookup plugin ` +.. envvar:: NAUTOBOT_URL + + See the documentations for the options where this environment variable is used. + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin `, + :ref:`networktocode.nautobot.lookup lookup plugin `, + :ref:`networktocode.nautobot.lookup\_graphql lookup plugin ` diff --git a/docs/plugins/front_port_module.rst b/docs/plugins/front_port_module.rst index 8e71c28b..7750277f 100755 --- a/docs/plugins/front_port_module.rst +++ b/docs/plugins/front_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.front_port module -- Create, update or delete front ports .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/front_port_template_module.rst b/docs/plugins/front_port_template_module.rst index b0895d0b..7bcaf0ed 100755 --- a/docs/plugins/front_port_template_module.rst +++ b/docs/plugins/front_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.front_port_template module -- Create, update or delete fr .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/gql_inventory_inventory.rst b/docs/plugins/gql_inventory_inventory.rst index cd7cf458..c0382946 100755 --- a/docs/plugins/gql_inventory_inventory.rst +++ b/docs/plugins/gql_inventory_inventory.rst @@ -42,7 +42,7 @@ networktocode.nautobot.gql_inventory inventory -- Nautobot inventory source usin .. Collection note .. note:: - This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this inventory plugin, @@ -141,6 +141,378 @@ Parameters - Environment variable: :envvar:`NAUTOBOT\_URL` + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache: + + .. rst-class:: ansible-option-title + + **cache** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entry: + + .. code-block:: + + [inventory] + cache = false + + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_connection: + + .. rst-class:: ansible-option-title + + **cache_connection** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache connection data or path, read cache plugin documentation for specifics. + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching_connection = VALUE + + + + .. code-block:: + + [inventory] + cache_connection = VALUE + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_CONNECTION` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_CONNECTION` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_plugin: + + .. rst-class:: ansible-option-title + + **cache_plugin** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache plugin to use for the inventory's source data. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`"memory"` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching = memory + + + + .. code-block:: + + [inventory] + cache_plugin = memory + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_PLUGIN` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_prefix: + + .. rst-class:: ansible-option-title + + **cache_prefix** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Prefix to use for cache plugin files/tables + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`"ansible\_inventory\_"` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [default] + fact_caching_prefix = ansible_inventory_ + + + Removed in: version 2.16 of ansible.builtin + + + Why: Fixes typing error in INI section name + + Alternative: Use the 'defaults' section instead + + + + .. code-block:: + + [defaults] + fact_caching_prefix = ansible_inventory_ + + + + .. code-block:: + + [inventory] + cache_prefix = ansible_inventory_ + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_PREFIX` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_PLUGIN\_PREFIX` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_timeout: + + .. rst-class:: ansible-option-title + + **cache_timeout** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`integer` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache duration in seconds + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`3600` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching_timeout = 3600 + + + + .. code-block:: + + [inventory] + cache_timeout = 3600 + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_TIMEOUT` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_TIMEOUT` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-compose: + + .. rst-class:: ansible-option-title + + **compose** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Create vars from jinja2 expressions. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`{}` + .. raw:: html
@@ -150,15 +522,285 @@ Parameters
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-follow_redirects: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-follow_redirects: + + .. rst-class:: ansible-option-title + + **follow_redirects** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Determine how redirects are followed. + + By default, \ :emphasis:`follow\_redirects`\ is set to uses urllib2 default behavior. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`"urllib2"` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`"all"` + - :ansible-option-choices-entry:`"yes"` + - :ansible-option-choices-entry:`"safe"` + - :ansible-option-choices-entry:`"none"` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_by: + + .. rst-class:: ansible-option-title + + **group_by** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`list` / :ansible-option-elements:`elements=string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + List of dot-sparated paths to index graphql query results (e.g. \`platform.display\`) + + The final value returned by each path is used to derive group names and then group the devices into these groups. + + Valid group names must be string, so indexing the dotted path should return a string (i.e. \`platform.display\` instead of \`platform\`) + + If value returned by the defined path is a dictionary, an attempt will first be made to access the \`name\` field, and then the \`display\` field. (i.e. \`platform\` would attempt to lookup \`platform.name\`, and if that data was not returned, it would then try \`platform.display\`) + + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_names_raw: + + .. rst-class:: ansible-option-title + + **group_names_raw** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in networktocode.nautobot 4.6.0` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Will not add the group\_by choice name to the group names + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-groups: + + .. rst-class:: ansible-option-title + + **groups** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Add hosts to group based on Jinja2 conditionals. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`{}` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups: + + .. rst-class:: ansible-option-title + + **keyed_groups** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Add hosts to group based on the values of a variable. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/default_value: + + .. rst-class:: ansible-option-title + + **default_value** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in ansible-core 2.12` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + The default value when the host variable's value is an empty string. + + This option is mutually exclusive with \ :literal:`trailing\_separator`\ . + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/key: .. rst-class:: ansible-option-title - **follow_redirects** + **key** .. raw:: html - + .. rst-class:: ansible-option-type-line @@ -173,22 +815,46 @@ Parameters - .. raw:: html -
+
- Determine how redirects are followed. + The key from input dictionary used to generate groups - By default, \ :emphasis:`follow\_redirects`\ is set to uses urllib2 default behavior. + .. raw:: html - .. rst-class:: ansible-option-line +
- :ansible-option-choices:`Choices:` + * - .. raw:: html - - :ansible-option-choices-entry-default:`"urllib2"` :ansible-option-choices-default-mark:`← (default)` - - :ansible-option-choices-entry:`"all"` - - :ansible-option-choices-entry:`"yes"` - - :ansible-option-choices-entry:`"safe"` - - :ansible-option-choices-entry:`"none"` +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/parent_group: + + .. rst-class:: ansible-option-title + + **parent_group** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + parent group for keyed group .. raw:: html @@ -197,22 +863,22 @@ Parameters * - .. raw:: html -
-
+
+
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_by: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/prefix: .. rst-class:: ansible-option-title - **group_by** + **prefix** .. raw:: html - + .. rst-class:: ansible-option-type-line - :ansible-option-type:`list` / :ansible-option-elements:`elements=string` + :ansible-option-type:`string` @@ -223,46 +889,131 @@ Parameters - .. raw:: html -
+
- List of dot-sparated paths to index graphql query results (e.g. \`platform.display\`) + A keyed group name will start with this prefix - The final value returned by each path is used to derive group names and then group the devices into these groups. - Valid group names must be string, so indexing the dotted path should return a string (i.e. \`platform.display\` instead of \`platform\`) + .. rst-class:: ansible-option-line - If value returned by the defined path is a dictionary, an attempt will first be made to access the \`name\` field, and then the \`display\` field. (i.e. \`platform\` would attempt to lookup \`platform.name\`, and if that data was not returned, it would then try \`platform.display\`) - + :ansible-option-default-bold:`Default:` :ansible-option-default:`""` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/separator: + + .. rst-class:: ansible-option-title + + **separator** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + separator used to build the keyed group name .. rst-class:: ansible-option-line - :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + :ansible-option-default-bold:`Default:` :ansible-option-default:`"\_"` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/trailing_separator: + + .. rst-class:: ansible-option-title + + **trailing_separator** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in ansible-core 2.12` + + + + .. raw:: html
+ - .. raw:: html + +
+ + Set this option to \ :emphasis:`False`\ to omit the \ :literal:`separator`\ after the host variable when the value is an empty string. + + This option is mutually exclusive with \ :literal:`default\_value`\ . + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` + + + .. raw:: html + +
+ + * - .. raw:: html
-
+
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_names_raw: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-leading_separator: .. rst-class:: ansible-option-title - **group_names_raw** + **leading_separator** .. raw:: html - + .. rst-class:: ansible-option-type-line :ansible-option-type:`boolean` - :ansible-option-versionadded:`added in networktocode.nautobot 4.6.0` + :ansible-option-versionadded:`added in ansible-core 2.11` @@ -276,15 +1027,25 @@ Parameters
- Will not add the group\_by choice name to the group names + Use in conjunction with keyed\_groups. + + By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. + + This is because the default prefix is "" and the default separator is "\_". + + Set this option to False to omit the leading underscore (or other separator) if no prefix is given. + + If the group name is derived from a mapping the separator is still used to concatenate the items. + + To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. .. rst-class:: ansible-option-line :ansible-option-choices:`Choices:` - - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` - - :ansible-option-choices-entry:`true` + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` .. raw:: html @@ -451,6 +1212,53 @@ Parameters
+ * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-strict: + + .. rst-class:: ansible-option-title + + **strict** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + If \ :literal:`yes`\ make invalid entries a fatal error, otherwise skip and continue. + + Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. raw:: html + +
+ * - .. raw:: html
@@ -534,6 +1342,69 @@ Parameters - Environment variable: :envvar:`NAUTOBOT\_TOKEN` + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-use_extra_vars: + + .. rst-class:: ansible-option-title + + **use_extra_vars** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in ansible-core 2.11` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Merge extra vars into the available variables for composition (highest precedence). + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entry: + + .. code-block:: + + [inventory_plugins] + use_extra_vars = false + + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_USE\_EXTRA\_VARS` + + .. raw:: html
@@ -634,7 +1505,7 @@ Examples # } # This module will automatically add the ansible_host key and set it equal to primary_ip4.host - # as well as the ansible_network_os key and set it to platform.napalm_driver + # as well as the ansible_network_os key and set it to platform.napalm_driver via netutils mapping # if the primary_ip4.host and platform.napalm_driver are present on the device in Nautobot. # Add additional query parameters with the query key. diff --git a/docs/plugins/graphql_string_filter.rst b/docs/plugins/graphql_string_filter.rst new file mode 100644 index 00000000..8e7264a9 --- /dev/null +++ b/docs/plugins/graphql_string_filter.rst @@ -0,0 +1,27 @@ + +.. Document meta section + +:orphan: + +.. Document body + +.. Anchors + +.. _ansible_collections.networktocode.nautobot.graphql_string_filter: + +.. Title + +networktocode.nautobot.graphql_string filter +++++++++++++++++++++++++++++++++++++++++++++ + + +The documentation for the filter plugin, networktocode.nautobot.graphql_string, was malformed. + +The errors were: + +* :: + + Missing documentation or could not parse documentation: No documentation available for networktocode.nautobot.graphql_string (/root/.ansible/collections/ansible_collections/networktocode/nautobot/plugins/filter/graphql.py) + + +File a bug with the `networktocode.nautobot collection `_ in order to have it corrected. \ No newline at end of file diff --git a/docs/plugins/index.rst b/docs/plugins/index.rst index f0a34fe1..b1c905fa 100755 --- a/docs/plugins/index.rst +++ b/docs/plugins/index.rst @@ -6,7 +6,7 @@ Networktocode.Nautobot ====================== -Collection version 5.1.1 +Collection version 5.2.0 .. contents:: :local: diff --git a/docs/plugins/inventory_inventory.rst b/docs/plugins/inventory_inventory.rst index 87351c20..b7650602 100755 --- a/docs/plugins/inventory_inventory.rst +++ b/docs/plugins/inventory_inventory.rst @@ -42,7 +42,7 @@ networktocode.nautobot.inventory inventory -- Nautobot inventory source .. Collection note .. note:: - This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. diff --git a/docs/plugins/inventory_item_module.rst b/docs/plugins/inventory_item_module.rst index 8f8a7218..48bb7f1e 100755 --- a/docs/plugins/inventory_item_module.rst +++ b/docs/plugins/inventory_item_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.inventory_item module -- Creates or removes inventory ite .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -174,6 +174,43 @@ Parameters The asset tag of the inventory item + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.inventory_item_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/ip_address_module.rst b/docs/plugins/ip_address_module.rst index 2b7e9070..86984638 100755 --- a/docs/plugins/ip_address_module.rst +++ b/docs/plugins/ip_address_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.ip_address module -- Creates or removes IP addresses from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/ip_address_to_interface_module.rst b/docs/plugins/ip_address_to_interface_module.rst index 9f9ad90d..b6895226 100755 --- a/docs/plugins/ip_address_to_interface_module.rst +++ b/docs/plugins/ip_address_to_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.ip_address_to_interface module -- Creates or removes IP a .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/location_module.rst b/docs/plugins/location_module.rst index fb6578f3..01c01a1e 100755 --- a/docs/plugins/location_module.rst +++ b/docs/plugins/location_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.location module -- Creates or removes locations from Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -620,7 +620,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.location_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.location_module__parameter-parent_location: .. rst-class:: ansible-option-title @@ -633,6 +635,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` .. raw:: html @@ -1129,7 +1135,7 @@ Examples contact_phone: 867-5309 contact_email: jenny@example.com comments: "**This** is a `markdown` comment" - parent_location: My Location + parent: My Location state: present diff --git a/docs/plugins/location_type_module.rst b/docs/plugins/location_type_module.rst index ef199b8e..76d95b9f 100755 --- a/docs/plugins/location_type_module.rst +++ b/docs/plugins/location_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.location_type module -- Creates or removes location types .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -329,17 +329,23 @@ Parameters * - .. raw:: html
+
.. _ansible_collections.networktocode.nautobot.location_type_module__parameter-parent: + .. _ansible_collections.networktocode.nautobot.location_type_module__parameter-parent_location_type: .. rst-class:: ansible-option-title - **parent** + **parent_location_type** .. raw:: html - + + + .. rst-class:: ansible-option-type-line + + :ansible-option-aliases:`aliases: parent` .. rst-class:: ansible-option-type-line diff --git a/docs/plugins/lookup_graphql_lookup.rst b/docs/plugins/lookup_graphql_lookup.rst index f58129fa..498d9fd8 100755 --- a/docs/plugins/lookup_graphql_lookup.rst +++ b/docs/plugins/lookup_graphql_lookup.rst @@ -42,7 +42,7 @@ networktocode.nautobot.lookup_graphql lookup -- Queries and returns elements fro .. Collection note .. note:: - This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this lookup plugin, diff --git a/docs/plugins/lookup_lookup.rst b/docs/plugins/lookup_lookup.rst index 3f73e07e..5f00bdc7 100755 --- a/docs/plugins/lookup_lookup.rst +++ b/docs/plugins/lookup_lookup.rst @@ -42,7 +42,7 @@ networktocode.nautobot.lookup lookup -- Queries and returns elements from Nautob .. Collection note .. note:: - This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this lookup plugin, @@ -278,6 +278,49 @@ examples: ``lookup('networktocode.nautobot.lookup', key1=value1, key2=value2, .. The Nautobot Rest API version to use. + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.lookup_lookup__parameter-num_retries: + + .. rst-class:: ansible-option-title + + **num_retries** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Number of retries + + This will only affect HTTP codes 429, 500, 502, 503, and 504. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`0` + .. raw:: html
@@ -476,7 +519,7 @@ Examples manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='') }}" # This example uses an API Filter @@ -489,8 +532,8 @@ Examples manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', - api_filter='role=management tag=Dell', + api_version='2.0', + api_filter='role=management tags=Dell', token='') }}" # This example uses an API Filter with Depth set to get additional details from the lookup @@ -515,7 +558,7 @@ Examples msg: "{{ query('networktocode.nautobot.lookup', 'bgp_sessions', api_filter='device=R1-Device', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='', plugin='mycustomstuff') }}" diff --git a/docs/plugins/manufacturer_module.rst b/docs/plugins/manufacturer_module.rst index 4e5aef26..65e99a9d 100755 --- a/docs/plugins/manufacturer_module.rst +++ b/docs/plugins/manufacturer_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.manufacturer module -- Create or delete manufacturers wit .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/namespace_module.rst b/docs/plugins/namespace_module.rst index 640ced23..d0ffb7f2 100755 --- a/docs/plugins/namespace_module.rst +++ b/docs/plugins/namespace_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.namespace module -- Creates or removes namespaces from Na .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/nautobot_server_module.rst b/docs/plugins/nautobot_server_module.rst index 1c3c272e..f5dd742c 100755 --- a/docs/plugins/nautobot_server_module.rst +++ b/docs/plugins/nautobot_server_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.nautobot_server module -- Manages Nautobot Server applica .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/platform_module.rst b/docs/plugins/platform_module.rst index 4215267a..de0c696f 100755 --- a/docs/plugins/platform_module.rst +++ b/docs/plugins/platform_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.platform module -- Create or delete platforms within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/plugin_module.rst b/docs/plugins/plugin_module.rst index fe77e4bd..efb80381 100755 --- a/docs/plugins/plugin_module.rst +++ b/docs/plugins/plugin_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.plugin module -- CRUD operation on plugin objects .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_feed_module.rst b/docs/plugins/power_feed_module.rst index 46b35971..2aca4542 100755 --- a/docs/plugins/power_feed_module.rst +++ b/docs/plugins/power_feed_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_feed module -- Create, update or delete power feeds .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_outlet_module.rst b/docs/plugins/power_outlet_module.rst index 79ed8f9c..8568d1dd 100755 --- a/docs/plugins/power_outlet_module.rst +++ b/docs/plugins/power_outlet_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_outlet module -- Create, update or delete power out .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_outlet_template_module.rst b/docs/plugins/power_outlet_template_module.rst index 4f670600..cc2229a9 100755 --- a/docs/plugins/power_outlet_template_module.rst +++ b/docs/plugins/power_outlet_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_outlet_template module -- Create, update or delete .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_panel_module.rst b/docs/plugins/power_panel_module.rst index ad825b71..9f5199b1 100755 --- a/docs/plugins/power_panel_module.rst +++ b/docs/plugins/power_panel_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_panel module -- Create, update or delete power pane .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_port_module.rst b/docs/plugins/power_port_module.rst index 9d5bf2e7..6d981108 100755 --- a/docs/plugins/power_port_module.rst +++ b/docs/plugins/power_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_port module -- Create, update or delete power ports .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_port_template_module.rst b/docs/plugins/power_port_template_module.rst index bb73a6ea..0b283979 100755 --- a/docs/plugins/power_port_template_module.rst +++ b/docs/plugins/power_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_port_template module -- Create, update or delete po .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/prefix_module.rst b/docs/plugins/prefix_module.rst index 90b3d9e8..61aa9fbb 100755 --- a/docs/plugins/prefix_module.rst +++ b/docs/plugins/prefix_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.prefix module -- Creates or removes prefixes from Nautobo .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/provider_module.rst b/docs/plugins/provider_module.rst index 6c3c04c6..3474cda4 100755 --- a/docs/plugins/provider_module.rst +++ b/docs/plugins/provider_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.provider module -- Create, update or delete providers wit .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/query_graphql_module.rst b/docs/plugins/query_graphql_module.rst index 9b6af573..a3f14f3c 100755 --- a/docs/plugins/query_graphql_module.rst +++ b/docs/plugins/query_graphql_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.query_graphql module -- Queries and returns elements from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rack_group_module.rst b/docs/plugins/rack_group_module.rst index 3ed44e04..a2a1dd66 100755 --- a/docs/plugins/rack_group_module.rst +++ b/docs/plugins/rack_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rack_group module -- Create, update or delete racks group .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -256,7 +256,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.rack_group_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.rack_group_module__parameter-parent_rack_group: .. rst-class:: ansible-option-title @@ -269,6 +271,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` diff --git a/docs/plugins/rack_module.rst b/docs/plugins/rack_module.rst index b257bb24..2fc8fa0a 100755 --- a/docs/plugins/rack_module.rst +++ b/docs/plugins/rack_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rack module -- Create, update or delete racks within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rear_port_module.rst b/docs/plugins/rear_port_module.rst index f40ff4f1..f979d3a4 100755 --- a/docs/plugins/rear_port_module.rst +++ b/docs/plugins/rear_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rear_port module -- Create, update or delete rear ports w .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rear_port_template_module.rst b/docs/plugins/rear_port_template_module.rst index c3cbc746..a05066e4 100755 --- a/docs/plugins/rear_port_template_module.rst +++ b/docs/plugins/rear_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rear_port_template module -- Create, update or delete rea .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/relationship_association_module.rst b/docs/plugins/relationship_association_module.rst index a5d0e565..fef922c5 100755 --- a/docs/plugins/relationship_association_module.rst +++ b/docs/plugins/relationship_association_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.relationship_association module -- Creates or removes a r .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rir_module.rst b/docs/plugins/rir_module.rst index 40f3793a..9cb79a87 100755 --- a/docs/plugins/rir_module.rst +++ b/docs/plugins/rir_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rir module -- Create, update or delete RIRs within Nautob .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/role_module.rst b/docs/plugins/role_module.rst index 8ab51f3a..003c4d38 100755 --- a/docs/plugins/role_module.rst +++ b/docs/plugins/role_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.role module -- Create, update or delete roles within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -211,6 +211,43 @@ Parameters Model names which the role can be related to. + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.role_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/route_target_module.rst b/docs/plugins/route_target_module.rst index b8c9d265..b3275513 100755 --- a/docs/plugins/route_target_module.rst +++ b/docs/plugins/route_target_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.route_target module -- Creates or removes route targets f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/service_module.rst b/docs/plugins/service_module.rst index 3c58dfb5..44dfa1a4 100755 --- a/docs/plugins/service_module.rst +++ b/docs/plugins/service_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.service module -- Creates or removes service from Nautobo .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/status_module.rst b/docs/plugins/status_module.rst index c3c1871f..8833e935 100755 --- a/docs/plugins/status_module.rst +++ b/docs/plugins/status_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.status module -- Creates or removes status from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/tag_module.rst b/docs/plugins/tag_module.rst index 01d8346b..99a5bd38 100755 --- a/docs/plugins/tag_module.rst +++ b/docs/plugins/tag_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tag module -- Creates or removes tags from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -212,6 +212,43 @@ Parameters Required if \ :emphasis:`state=present`\ and the tag does not exist yet + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.tag_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/tenant_group_module.rst b/docs/plugins/tenant_group_module.rst index 8bda040b..15f4c318 100755 --- a/docs/plugins/tenant_group_module.rst +++ b/docs/plugins/tenant_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tenant_group module -- Creates or removes tenant groups f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -219,7 +219,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.tenant_group_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.tenant_group_module__parameter-parent_tenant_group: .. rst-class:: ansible-option-title @@ -232,6 +234,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` :ansible-option-versionadded:`added in networktocode.nautobot 3.1.0` @@ -489,7 +495,7 @@ Examples url: http://nautobot.local token: thisIsMyToken name: Tenant Group ABC - parent_tenant_group: Customer Tenants + parent: Customer Tenants state: present diff --git a/docs/plugins/tenant_module.rst b/docs/plugins/tenant_module.rst index 33eb62e1..ca600abb 100755 --- a/docs/plugins/tenant_module.rst +++ b/docs/plugins/tenant_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tenant module -- Creates or removes tenants from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/virtual_chassis_module.rst b/docs/plugins/virtual_chassis_module.rst index 447a51a2..99c76e2b 100755 --- a/docs/plugins/virtual_chassis_module.rst +++ b/docs/plugins/virtual_chassis_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.virtual_chassis module -- Create, update or delete virtua .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/virtual_machine_module.rst b/docs/plugins/virtual_machine_module.rst index de299e44..e5185d2d 100755 --- a/docs/plugins/virtual_machine_module.rst +++ b/docs/plugins/virtual_machine_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.virtual_machine module -- Create, update or delete virtua .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vlan_group_module.rst b/docs/plugins/vlan_group_module.rst index 44f8eab1..d0af266e 100755 --- a/docs/plugins/vlan_group_module.rst +++ b/docs/plugins/vlan_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vlan_group module -- Create, update or delete vlans group .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -137,6 +137,43 @@ Parameters API Version Nautobot REST API + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.vlan_group_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/vlan_module.rst b/docs/plugins/vlan_module.rst index b69b2bfd..c8667d1a 100755 --- a/docs/plugins/vlan_module.rst +++ b/docs/plugins/vlan_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vlan module -- Create, update or delete vlans within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vm_interface_module.rst b/docs/plugins/vm_interface_module.rst index e2ad8e18..d5e68ead 100755 --- a/docs/plugins/vm_interface_module.rst +++ b/docs/plugins/vm_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vm_interface module -- Creates or removes interfaces from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vrf_module.rst b/docs/plugins/vrf_module.rst index 550a00f6..d339c975 100755 --- a/docs/plugins/vrf_module.rst +++ b/docs/plugins/vrf_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vrf module -- Create, update or delete vrfs within Nautob .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/galaxy.yml b/galaxy.yml index c43d4d19..61b24711 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -9,7 +9,7 @@ namespace: networktocode name: nautobot # The version of the collection. Must be compatible with semantic versioning -version: 5.1.1 +version: 5.2.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md diff --git a/plugins/filter/graphql.py b/plugins/filter/graphql.py index 67b450b7..06c287f2 100644 --- a/plugins/filter/graphql.py +++ b/plugins/filter/graphql.py @@ -1,4 +1,5 @@ """GraphQL related filter plugins.""" + # Copyright (c) 2022, Network to Code (@networktocode) # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) diff --git a/plugins/inventory/gql_inventory.py b/plugins/inventory/gql_inventory.py index 69cf3a00..32a34014 100644 --- a/plugins/inventory/gql_inventory.py +++ b/plugins/inventory/gql_inventory.py @@ -13,6 +13,9 @@ short_description: Nautobot inventory source using GraphQL capability description: - Get inventory hosts from Nautobot using GraphQL queries +extends_documentation_fragment: + - constructed + - inventory_cache requirements: - netutils options: @@ -118,7 +121,7 @@ # } # This module will automatically add the ansible_host key and set it equal to primary_ip4.host -# as well as the ansible_network_os key and set it to platform.napalm_driver +# as well as the ansible_network_os key and set it to platform.napalm_driver via netutils mapping # if the primary_ip4.host and platform.napalm_driver are present on the device in Nautobot. # Add additional query parameters with the query key. @@ -259,7 +262,7 @@ def add_ipv4_address(self, device): def add_ansible_platform(self, device): """Add network platform to host""" - if device.get("platform") and "napalm_driver" in device["platform"]: + if device.get("platform", {}).get("napalm_driver"): self.add_variable( device["name"], ANSIBLE_LIB_MAPPER_REVERSE.get(NAPALM_LIB_MAPPER.get(device["platform"]["napalm_driver"])), # Convert napalm_driver to ansible_network_os value @@ -383,11 +386,22 @@ def main(self): raise AnsibleParserError(to_native(json_data["errors"][0]["message"])) for device in json_data["data"].get("devices", []) + json_data["data"].get("virtual_machines", []): - self.inventory.add_host(device["name"]) + hostname = device["name"] + self.inventory.add_host(host=hostname) self.add_ipv4_address(device) self.add_ansible_platform(device) self.populate_variables(device) self.create_groups(device) + strict = self.get_option("strict") + + # Composed variables + self._set_composite_vars(self.get_option("compose"), device, hostname, strict=strict) + + # Complex groups based on jinja2 conditionals, hosts that meet the conditional are added to group + self._add_host_to_composed_groups(self.get_option("groups"), device, hostname, strict=strict) + + # Create groups based on variable values and add the corresponding hosts to it + self._add_host_to_keyed_groups(self.get_option("keyed_groups"), device, hostname, strict=strict) def parse(self, inventory, loader, path, cache=True): super(InventoryModule, self).parse(inventory, loader, path) diff --git a/plugins/lookup/lookup.py b/plugins/lookup/lookup.py index f21fd95d..b62a5ac8 100644 --- a/plugins/lookup/lookup.py +++ b/plugins/lookup/lookup.py @@ -58,6 +58,12 @@ - Whether or not to validate SSL of the Nautobot instance required: False default: True + num_retries: + description: + - Number of retries + - This will only affect HTTP codes 429, 500, 502, 503, and 504. + required: False + default: 0 raw_data: description: - Whether to return raw API data with the lookup/query or whether to return a key/value dict @@ -76,7 +82,7 @@ manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='') }}" # This example uses an API Filter @@ -89,8 +95,8 @@ manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', - api_filter='role=management tag=Dell', + api_version='2.0', + api_filter='role=management tags=Dell', token='') }}" # This example uses an API Filter with Depth set to get additional details from the lookup @@ -115,7 +121,7 @@ msg: "{{ query('networktocode.nautobot.lookup', 'bgp_sessions', api_filter='device=R1-Device', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='', plugin='mycustomstuff') }}" """ @@ -312,6 +318,7 @@ def run(self, terms, variables=None, **kwargs): api_token = kwargs.get("token") or os.getenv("NAUTOBOT_TOKEN") api_endpoint = kwargs.get("api_endpoint") or os.getenv("NAUTOBOT_URL") + num_retries = kwargs.get("num_retries", "0") ssl_verify = kwargs.get("validate_certs", True) api_filter = kwargs.get("api_filter") raw_return = kwargs.get("raw_data") @@ -321,7 +328,7 @@ def run(self, terms, variables=None, **kwargs): if not isinstance(terms, list): terms = [terms] - nautobot = pynautobot.api(api_endpoint, token=api_token if api_token else None, api_version=api_version, verify=ssl_verify) + nautobot = pynautobot.api(api_endpoint, token=api_token if api_token else None, api_version=api_version, verify=ssl_verify, retries=num_retries) results = [] for term in terms: diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index fa7089a9..d56fc670 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -112,6 +112,7 @@ nat_inside="address", nat_outside="address", parent_location="name", + parent_location_type="name", parent_rack_group="name", parent_tenant_group="name", power_panel="name", @@ -176,6 +177,7 @@ "platform": "platforms", "parent_rack_group": "rack_groups", "parent_location": "locations", + "parent_location_type": "location_types", "parent_tenant_group": "tenant_groups", "power_panel": "power_panels", "power_port": "power_ports", @@ -400,6 +402,7 @@ CONVERT_KEYS = { "parent_rack_group": "parent", "parent_location": "parent", + "parent_location_type": "parent", "parent_tenant_group": "parent", "rear_port_template_position": "rear_port_position", "termination_a": "termination_a_id", @@ -908,6 +911,10 @@ def _update_object(self, data): Nautobot object and the Ansible diff. """ serialized_nb_obj = self.nb_object.serialize() + if "custom_fields" in serialized_nb_obj: + custom_fields = serialized_nb_obj.get("custom_fields", {}) + shared_keys = custom_fields.keys() & data.get("custom_fields", {}).keys() + serialized_nb_obj["custom_fields"] = {key: custom_fields[key] for key in shared_keys if custom_fields[key] is not None} updated_obj = serialized_nb_obj.copy() updated_obj.update(data) if serialized_nb_obj.get("tags") and data.get("tags"): diff --git a/plugins/modules/device_interface_template.py b/plugins/modules/device_interface_template.py index 0fbc87c2..d04a3d15 100644 --- a/plugins/modules/device_interface_template.py +++ b/plugins/modules/device_interface_template.py @@ -50,6 +50,18 @@ required: false type: bool version_added: "3.0.0" + label: + description: + - Label of the interface template to be created + required: false + type: str + version_added: "5.2.0" + description: + description: + - Description of the interface + required: false + type: str + version_added: "5.2.0" """ EXAMPLES = r""" @@ -110,6 +122,8 @@ def main(): type="str", ), mgmt_only=dict(required=False, type="bool"), + label=dict(required=False, type="str"), + description=dict(required=False, type="str"), ) ) diff --git a/plugins/modules/inventory_item.py b/plugins/modules/inventory_item.py index 903a1155..c8148adb 100644 --- a/plugins/modules/inventory_item.py +++ b/plugins/modules/inventory_item.py @@ -22,6 +22,7 @@ extends_documentation_fragment: - networktocode.nautobot.fragments.base - networktocode.nautobot.fragments.tags + - networktocode.nautobot.fragments.custom_fields options: device: description: @@ -145,6 +146,7 @@ def main(): asset_tag=dict(required=False, type="str"), description=dict(required=False, type="str"), discovered=dict(required=False, type="bool", default=False), + custom_fields=dict(required=False, type="dict"), tags=dict(required=False, type="list", elements="raw"), ) ) diff --git a/plugins/modules/location.py b/plugins/modules/location.py index fa994d13..06085260 100644 --- a/plugins/modules/location.py +++ b/plugins/modules/location.py @@ -56,6 +56,8 @@ required: false type: raw parent_location: + aliases: + - parent description: - The parent location this location should be tied to required: false @@ -180,7 +182,7 @@ contact_phone: 867-5309 contact_email: jenny@example.com comments: "**This** is a `markdown` comment" - parent_location: My Location + parent: My Location state: present """ @@ -216,7 +218,7 @@ def main(): status=dict(required=False, type="raw"), description=dict(required=False, type="str"), location_type=dict(required=False, type="raw"), - parent_location=dict(required=False, type="raw"), + parent_location=dict(required=False, type="raw", aliases=["parent"]), tenant=dict(required=False, type="raw"), facility=dict(required=False, type="str"), asn=dict(required=False, type="int"), diff --git a/plugins/modules/location_type.py b/plugins/modules/location_type.py index 32adfbb5..23570443 100644 --- a/plugins/modules/location_type.py +++ b/plugins/modules/location_type.py @@ -35,7 +35,9 @@ - Location Type description required: false type: str - parent: + parent_location_type: + aliases: + - parent description: - The parent location type this location type should be tied to required: false @@ -117,7 +119,7 @@ def main(): dict( name=dict(required=True, type="str"), description=dict(required=False, type="str"), - parent=dict(required=False, type="raw"), + parent_location_type=dict(required=False, type="raw", aliases=["parent"]), nestable=dict(required=False, type="bool"), content_types=dict(required=False, type="list", elements="str"), custom_fields=dict(required=False, type="dict"), diff --git a/plugins/modules/rack_group.py b/plugins/modules/rack_group.py index cc2a7bd4..6d0a5bb8 100644 --- a/plugins/modules/rack_group.py +++ b/plugins/modules/rack_group.py @@ -41,6 +41,8 @@ type: raw version_added: "3.0.0" parent_rack_group: + aliases: + - parent description: - The parent rack-group the rack group will be assigned to required: false @@ -104,7 +106,7 @@ def main(): name=dict(required=True, type="str"), description=dict(required=False, type="str"), location=dict(required=False, type="raw"), - parent_rack_group=dict(required=False, type="raw"), + parent_rack_group=dict(required=False, type="raw", aliases=["parent"]), ) ) diff --git a/plugins/modules/role.py b/plugins/modules/role.py index 05c70010..d239f3d8 100644 --- a/plugins/modules/role.py +++ b/plugins/modules/role.py @@ -21,6 +21,7 @@ version_added: "5.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -109,6 +110,7 @@ def main(): color=dict(required=False, type="str"), content_types=dict(required=False, type="list", elements="str"), weight=dict(required=False, type="int"), + custom_fields=dict(required=False, type="dict"), ) ) diff --git a/plugins/modules/tag.py b/plugins/modules/tag.py index ec0b93b1..e4b6812d 100644 --- a/plugins/modules/tag.py +++ b/plugins/modules/tag.py @@ -21,6 +21,7 @@ version_added: "1.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -146,6 +147,7 @@ def main(): color=dict(required=False, type="str"), description=dict(required=False, type="str"), content_types=dict(required=False, type="list", elements="str"), + custom_fields=dict(required=False, type="dict"), ) ) diff --git a/plugins/modules/tenant_group.py b/plugins/modules/tenant_group.py index 25608e83..09a5a160 100644 --- a/plugins/modules/tenant_group.py +++ b/plugins/modules/tenant_group.py @@ -35,6 +35,8 @@ type: str version_added: "3.0.0" parent_tenant_group: + aliases: + - parent description: - Name of the parent tenant group required: false @@ -67,7 +69,7 @@ url: http://nautobot.local token: thisIsMyToken name: Tenant Group ABC - parent_tenant_group: Customer Tenants + parent: Customer Tenants state: present """ @@ -101,7 +103,7 @@ def main(): dict( name=dict(required=True, type="str"), description=dict(required=False, type="str"), - parent_tenant_group=dict(required=False, type="raw"), + parent_tenant_group=dict(required=False, type="raw", aliases=["parent"]), ) ) diff --git a/plugins/modules/vlan_group.py b/plugins/modules/vlan_group.py index 77598fdf..eeef61fb 100644 --- a/plugins/modules/vlan_group.py +++ b/plugins/modules/vlan_group.py @@ -21,6 +21,7 @@ version_added: "1.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -97,6 +98,7 @@ def main(): name=dict(required=True, type="str"), location=dict(required=False, type="raw"), description=dict(required=False, type="str"), + custom_fields=dict(required=False, type="dict"), ) ) diff --git a/poetry.lock b/poetry.lock index af40cb27..7c67e6e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,87 +13,87 @@ files = [ [[package]] name = "aiohttp" -version = "3.9.1" +version = "3.9.5" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1f80197f8b0b846a8d5cf7b7ec6084493950d0882cc5537fb7b96a69e3c8590"}, - {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72444d17777865734aa1a4d167794c34b63e5883abb90356a0364a28904e6c0"}, - {file = "aiohttp-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b05d5cbe9dafcdc733262c3a99ccf63d2f7ce02543620d2bd8db4d4f7a22f83"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c4fa235d534b3547184831c624c0b7c1e262cd1de847d95085ec94c16fddcd5"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:289ba9ae8e88d0ba16062ecf02dd730b34186ea3b1e7489046fc338bdc3361c4"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bff7e2811814fa2271be95ab6e84c9436d027a0e59665de60edf44e529a42c1f"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81b77f868814346662c96ab36b875d7814ebf82340d3284a31681085c051320f"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b9c7426923bb7bd66d409da46c41e3fb40f5caf679da624439b9eba92043fa6"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8d44e7bf06b0c0a70a20f9100af9fcfd7f6d9d3913e37754c12d424179b4e48f"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22698f01ff5653fe66d16ffb7658f582a0ac084d7da1323e39fd9eab326a1f26"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ca7ca5abfbfe8d39e653870fbe8d7710be7a857f8a8386fc9de1aae2e02ce7e4"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8d7f98fde213f74561be1d6d3fa353656197f75d4edfbb3d94c9eb9b0fc47f5d"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5216b6082c624b55cfe79af5d538e499cd5f5b976820eac31951fb4325974501"}, - {file = "aiohttp-3.9.1-cp310-cp310-win32.whl", hash = "sha256:0e7ba7ff228c0d9a2cd66194e90f2bca6e0abca810b786901a569c0de082f489"}, - {file = "aiohttp-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c7e939f1ae428a86e4abbb9a7c4732bf4706048818dfd979e5e2839ce0159f23"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:df9cf74b9bc03d586fc53ba470828d7b77ce51b0582d1d0b5b2fb673c0baa32d"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ecca113f19d5e74048c001934045a2b9368d77b0b17691d905af18bd1c21275e"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8cef8710fb849d97c533f259103f09bac167a008d7131d7b2b0e3a33269185c0"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bea94403a21eb94c93386d559bce297381609153e418a3ffc7d6bf772f59cc35"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91c742ca59045dce7ba76cab6e223e41d2c70d79e82c284a96411f8645e2afff"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c93b7c2e52061f0925c3382d5cb8980e40f91c989563d3d32ca280069fd6a87"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee2527134f95e106cc1653e9ac78846f3a2ec1004cf20ef4e02038035a74544d"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11ff168d752cb41e8492817e10fb4f85828f6a0142b9726a30c27c35a1835f01"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b8c3a67eb87394386847d188996920f33b01b32155f0a94f36ca0e0c635bf3e3"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c7b5d5d64e2a14e35a9240b33b89389e0035e6de8dbb7ffa50d10d8b65c57449"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:69985d50a2b6f709412d944ffb2e97d0be154ea90600b7a921f95a87d6f108a2"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c9110c06eaaac7e1f5562caf481f18ccf8f6fdf4c3323feab28a93d34cc646bd"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737e69d193dac7296365a6dcb73bbbf53bb760ab25a3727716bbd42022e8d7a"}, - {file = "aiohttp-3.9.1-cp311-cp311-win32.whl", hash = "sha256:4ee8caa925aebc1e64e98432d78ea8de67b2272252b0a931d2ac3bd876ad5544"}, - {file = "aiohttp-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:a34086c5cc285be878622e0a6ab897a986a6e8bf5b67ecb377015f06ed316587"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f800164276eec54e0af5c99feb9494c295118fc10a11b997bbb1348ba1a52065"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:500f1c59906cd142d452074f3811614be04819a38ae2b3239a48b82649c08821"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0b0a6a36ed7e164c6df1e18ee47afbd1990ce47cb428739d6c99aaabfaf1b3af"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69da0f3ed3496808e8cbc5123a866c41c12c15baaaead96d256477edf168eb57"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:176df045597e674fa950bf5ae536be85699e04cea68fa3a616cf75e413737eb5"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b796b44111f0cab6bbf66214186e44734b5baab949cb5fb56154142a92989aeb"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f27fdaadce22f2ef950fc10dcdf8048407c3b42b73779e48a4e76b3c35bca26c"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcb6532b9814ea7c5a6a3299747c49de30e84472fa72821b07f5a9818bce0f66"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:54631fb69a6e44b2ba522f7c22a6fb2667a02fd97d636048478db2fd8c4e98fe"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4b4c452d0190c5a820d3f5c0f3cd8a28ace48c54053e24da9d6041bf81113183"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:cae4c0c2ca800c793cae07ef3d40794625471040a87e1ba392039639ad61ab5b"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:565760d6812b8d78d416c3c7cfdf5362fbe0d0d25b82fed75d0d29e18d7fc30f"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54311eb54f3a0c45efb9ed0d0a8f43d1bc6060d773f6973efd90037a51cd0a3f"}, - {file = "aiohttp-3.9.1-cp312-cp312-win32.whl", hash = "sha256:85c3e3c9cb1d480e0b9a64c658cd66b3cfb8e721636ab8b0e746e2d79a7a9eed"}, - {file = "aiohttp-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:11cb254e397a82efb1805d12561e80124928e04e9c4483587ce7390b3866d213"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8a22a34bc594d9d24621091d1b91511001a7eea91d6652ea495ce06e27381f70"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:598db66eaf2e04aa0c8900a63b0101fdc5e6b8a7ddd805c56d86efb54eb66672"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c9376e2b09895c8ca8b95362283365eb5c03bdc8428ade80a864160605715f1"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41473de252e1797c2d2293804e389a6d6986ef37cbb4a25208de537ae32141dd"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c5857612c9813796960c00767645cb5da815af16dafb32d70c72a8390bbf690"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffcd828e37dc219a72c9012ec44ad2e7e3066bec6ff3aaa19e7d435dbf4032ca"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:219a16763dc0294842188ac8a12262b5671817042b35d45e44fd0a697d8c8361"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f694dc8a6a3112059258a725a4ebe9acac5fe62f11c77ac4dcf896edfa78ca28"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bcc0ea8d5b74a41b621ad4a13d96c36079c81628ccc0b30cfb1603e3dfa3a014"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:90ec72d231169b4b8d6085be13023ece8fa9b1bb495e4398d847e25218e0f431"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:cf2a0ac0615842b849f40c4d7f304986a242f1e68286dbf3bd7a835e4f83acfd"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:0e49b08eafa4f5707ecfb321ab9592717a319e37938e301d462f79b4e860c32a"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2c59e0076ea31c08553e868cec02d22191c086f00b44610f8ab7363a11a5d9d8"}, - {file = "aiohttp-3.9.1-cp38-cp38-win32.whl", hash = "sha256:4831df72b053b1eed31eb00a2e1aff6896fb4485301d4ccb208cac264b648db4"}, - {file = "aiohttp-3.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:3135713c5562731ee18f58d3ad1bf41e1d8883eb68b363f2ffde5b2ea4b84cc7"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cfeadf42840c1e870dc2042a232a8748e75a36b52d78968cda6736de55582766"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:70907533db712f7aa791effb38efa96f044ce3d4e850e2d7691abd759f4f0ae0"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cdefe289681507187e375a5064c7599f52c40343a8701761c802c1853a504558"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7481f581251bb5558ba9f635db70908819caa221fc79ee52a7f58392778c636"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49f0c1b3c2842556e5de35f122fc0f0b721334ceb6e78c3719693364d4af8499"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d406b01a9f5a7e232d1b0d161b40c05275ffbcbd772dc18c1d5a570961a1ca4"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d8e4450e7fe24d86e86b23cc209e0023177b6d59502e33807b732d2deb6975f"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c0266cd6f005e99f3f51e583012de2778e65af6b73860038b968a0a8888487a"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab221850108a4a063c5b8a70f00dd7a1975e5a1713f87f4ab26a46e5feac5a0e"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c88a15f272a0ad3d7773cf3a37cc7b7d077cbfc8e331675cf1346e849d97a4e5"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:237533179d9747080bcaad4d02083ce295c0d2eab3e9e8ce103411a4312991a0"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:02ab6006ec3c3463b528374c4cdce86434e7b89ad355e7bf29e2f16b46c7dd6f"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04fa38875e53eb7e354ece1607b1d2fdee2d175ea4e4d745f6ec9f751fe20c7c"}, - {file = "aiohttp-3.9.1-cp39-cp39-win32.whl", hash = "sha256:82eefaf1a996060602f3cc1112d93ba8b201dbf5d8fd9611227de2003dddb3b7"}, - {file = "aiohttp-3.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:9b05d33ff8e6b269e30a7957bd3244ffbce2a7a35a81b81c382629b80af1a8bf"}, - {file = "aiohttp-3.9.1.tar.gz", hash = "sha256:8fc49a87ac269d4529da45871e2ffb6874e87779c3d0e2ccd813c0899221239d"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"}, + {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"}, + {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:694d828b5c41255e54bc2dddb51a9f5150b4eefa9886e38b52605a05d96566e8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4558e5012ee03d2638c681e156461d37b7a113fe13970d438d95d10173d25f78"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbc053ac75ccc63dc3a3cc547b98c7258ec35a215a92bd9f983e0aac95d3d5b"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4109adee842b90671f1b689901b948f347325045c15f46b39797ae1bf17019de"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6ea1a5b409a85477fd8e5ee6ad8f0e40bf2844c270955e09360418cfd09abac"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c2890ca8c59ee683fd09adf32321a40fe1cf164e3387799efb2acebf090c11"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3916c8692dbd9d55c523374a3b8213e628424d19116ac4308e434dbf6d95bbdd"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8d1964eb7617907c792ca00b341b5ec3e01ae8c280825deadbbd678447b127e1"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5ab8e1f6bee051a4bf6195e38a5c13e5e161cb7bad83d8854524798bd9fcd6e"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52c27110f3862a1afbcb2af4281fc9fdc40327fa286c4625dfee247c3ba90156"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7f64cbd44443e80094309875d4f9c71d0401e966d191c3d469cde4642bc2e031"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b4f72fbb66279624bfe83fd5eb6aea0022dad8eec62b71e7bf63ee1caadeafe"}, + {file = "aiohttp-3.9.5-cp38-cp38-win32.whl", hash = "sha256:6380c039ec52866c06d69b5c7aad5478b24ed11696f0e72f6b807cfb261453da"}, + {file = "aiohttp-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:da22dab31d7180f8c3ac7c7635f3bcd53808f374f6aa333fe0b0b9e14b01f91a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, ] [package.dependencies] @@ -132,15 +132,26 @@ files = [ {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] +[[package]] +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + [[package]] name = "ansible-core" -version = "2.15.8" +version = "2.15.11" description = "Radically simple IT automation" optional = false python-versions = ">=3.9" files = [ - {file = "ansible-core-2.15.8.tar.gz", hash = "sha256:8aa49cb1ddbf33d88c2bb4bf09ecd4b0dd8b788e174adca8b88dda6e6bdbf59b"}, - {file = "ansible_core-2.15.8-py3-none-any.whl", hash = "sha256:55e6f4350fb98ac5441620ba981b1d9f7b90aa5f320885965af996e149bd3caa"}, + {file = "ansible_core-2.15.11-py3-none-any.whl", hash = "sha256:8368f64e6596f009ddf308eab8ac32ae1e2642ec5c0d4c03366e673de14f144c"}, + {file = "ansible_core-2.15.11.tar.gz", hash = "sha256:b7761454c923f63a3d1fcac97b14e378bcc9a8518c3dde07f3ec0988c4667a9d"}, ] [package.dependencies] @@ -185,13 +196,13 @@ jinja2 = "*" [[package]] name = "antsibull-changelog" -version = "0.23.0" -description = "Changelog tool for Ansible-base and Ansible collections" +version = "0.26.0" +description = "Changelog tool for Ansible-core and Ansible collections" optional = false python-versions = ">=3.9.0" files = [ - {file = "antsibull_changelog-0.23.0-py3-none-any.whl", hash = "sha256:e9c3425fe6ef8e495aec19705be4af826612f921bdc8dd6dc54d15f70532065f"}, - {file = "antsibull_changelog-0.23.0.tar.gz", hash = "sha256:521985407e1aa2aef1dbfb2b87275cd6f03ea9a96c0c704e9f9cb04141f90e0b"}, + {file = "antsibull_changelog-0.26.0-py3-none-any.whl", hash = "sha256:0a6aa5327790e89a686872fd452a9c31be288a3cb2deb9cc23eb3fc5ea7f0a19"}, + {file = "antsibull_changelog-0.26.0.tar.gz", hash = "sha256:8060c438d9fb5a1025a1e98d4de0ce8d897be6e0c21014216151b93f4e4891ff"}, ] [package.dependencies] @@ -205,20 +216,20 @@ semantic-version = "*" codeqa = ["flake8 (>=3.8.0)", "pylint", "reuse"] coverage = ["coverage[toml]"] dev = ["antsibull-changelog[codeqa]", "antsibull-changelog[coverage]", "antsibull-changelog[formatters]", "antsibull-changelog[test]", "antsibull-changelog[typing]", "nox"] -formatters = ["black", "isort"] +formatters = ["black (>=24)", "isort"] test = ["pytest", "pytest-cov", "pytest-error-for-skips"] toml = ["tomli"] typing = ["mypy", "pyre-check (>=0.9.17)", "types-docutils", "types-pyyaml", "types-toml"] [[package]] name = "antsibull-core" -version = "1.6.0" +version = "1.5.1" description = "Tools for building the Ansible Distribution" optional = false python-versions = ">=3.6.1,<4.0.0" files = [ - {file = "antsibull_core-1.6.0-py3-none-any.whl", hash = "sha256:057968e664eca9ec0f3f943a348a65dfeb94d40c4d2ce460b49fb930ec5513e7"}, - {file = "antsibull_core-1.6.0.tar.gz", hash = "sha256:9c4b0a7b6e46168d45a117c27963ea09f3feb121e8a1e63bb319ae610ac7c932"}, + {file = "antsibull_core-1.5.1-py3-none-any.whl", hash = "sha256:2406c676692d4d2e1c89ef188d4195e74d92a38ef584a5a6b006ecec23c87224"}, + {file = "antsibull_core-1.5.1.tar.gz", hash = "sha256:d5e3813317b332485abb808a9d0754aca2700ca19f8e6bee714187f4c0db8d70"}, ] [package.dependencies] @@ -226,7 +237,7 @@ aiofiles = "*" aiohttp = ">=3.0.0" packaging = ">=20.0" perky = "*" -pydantic = ">=1.0.0,<2.0.0" +pydantic = "*" PyYAML = "*" semantic_version = "*" sh = ">=1.0.0,<2.0.0" @@ -234,30 +245,24 @@ twiggy = ">=0.5.0" [[package]] name = "antsibull-docs" -version = "1.11.1" +version = "1.9.0" description = "Tools for building Ansible documentation" optional = false python-versions = ">=3.6.1,<4.0.0" files = [ - {file = "antsibull_docs-1.11.1-py3-none-any.whl", hash = "sha256:e198ee3aaeb9a95b110f424a91ee36cc30cdc41bd4df2eee9185cd0bf6e00d9c"}, - {file = "antsibull_docs-1.11.1.tar.gz", hash = "sha256:b18649b2a56cd6c84a9dd68563bad57bca0f08510efc4ad2c552daf3763fd9b2"}, + {file = "antsibull_docs-1.9.0-py3-none-any.whl", hash = "sha256:b9fc1243f47a6e32392cbd860ed73f9c34833ee7e9caafbefb3f7e6e01976429"}, + {file = "antsibull_docs-1.9.0.tar.gz", hash = "sha256:aee9383dd24548507ea53dd76adb39367600d2df80d6dcfa81c93c578d589601"}, ] [package.dependencies] -aiohttp = ">=3.0.0" ansible-pygments = "*" antsibull-core = ">=1.2.0,<3.0.0" asyncio-pool = "*" docutils = "*" -jinja2 = ">=3.0" +jinja2 = "*" packaging = "*" -pydantic = ">=1.0.0,<2.0.0" -PyYAML = "*" rstcheck = ">=3.0.0,<7.0.0" -semantic_version = "*" -sh = ">=1.0.0,<2.0.0" sphinx = "*" -twiggy = "*" [[package]] name = "astroid" @@ -335,56 +340,57 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "bandit" -version = "1.7.6" +version = "1.7.8" description = "Security oriented static analyser for python code." optional = false python-versions = ">=3.8" files = [ - {file = "bandit-1.7.6-py3-none-any.whl", hash = "sha256:36da17c67fc87579a5d20c323c8d0b1643a890a2b93f00b3d1229966624694ff"}, - {file = "bandit-1.7.6.tar.gz", hash = "sha256:72ce7bc9741374d96fb2f1c9a8960829885f1243ffde743de70a19cee353e8f3"}, + {file = "bandit-1.7.8-py3-none-any.whl", hash = "sha256:509f7af645bc0cd8fd4587abc1a038fc795636671ee8204d502b933aee44f381"}, + {file = "bandit-1.7.8.tar.gz", hash = "sha256:36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"}, ] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=3.1.30" PyYAML = ">=5.3.1" rich = "*" stevedore = ">=1.20.0" [package.extras] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "tomli (>=1.1.0)"] +baseline = ["GitPython (>=3.1.30)"] +sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] toml = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "black" -version = "23.12.1" +version = "24.4.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, - {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, - {file = "black-23.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920b569dc6b3472513ba6ddea21f440d4b4c699494d2e972a1753cdc25df7b0"}, - {file = "black-23.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:3fa4be75ef2a6b96ea8d92b1587dd8cb3a35c7e3d51f0738ced0781c3aa3a5a3"}, - {file = "black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba"}, - {file = "black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b"}, - {file = "black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59"}, - {file = "black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50"}, - {file = "black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e"}, - {file = "black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec"}, - {file = "black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e"}, - {file = "black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9"}, - {file = "black-23.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1fa88a0f74e50e4487477bc0bb900c6781dbddfdfa32691e780bf854c3b4a47f"}, - {file = "black-23.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d6a9668e45ad99d2f8ec70d5c8c04ef4f32f648ef39048d010b0689832ec6d"}, - {file = "black-23.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18fb2ae6c4bb63eebe5be6bd869ba2f14fd0259bda7d18a46b764d8fb86298a"}, - {file = "black-23.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:c04b6d9d20e9c13f43eee8ea87d44156b8505ca8a3c878773f68b4e4812a421e"}, - {file = "black-23.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e1b38b3135fd4c025c28c55ddfc236b05af657828a8a6abe5deec419a0b7055"}, - {file = "black-23.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f0031eaa7b921db76decd73636ef3a12c942ed367d8c3841a0739412b260a54"}, - {file = "black-23.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e56155c6b737854e60a9ab1c598ff2533d57e7506d97af5481141671abf3ea"}, - {file = "black-23.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:dd15245c8b68fe2b6bd0f32c1556509d11bb33aec9b5d0866dd8e2ed3dba09c2"}, - {file = "black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e"}, - {file = "black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5"}, + {file = "black-24.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f7749fd0d97ff9415975a1432fac7df89bf13c3833cea079e55fa004d5f28c0"}, + {file = "black-24.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:859f3cc5d2051adadf8fd504a01e02b0fd866d7549fff54bc9202d524d2e8bd7"}, + {file = "black-24.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59271c9c29dfa97f7fda51f56c7809b3f78e72fd8d2205189bbd23022a0618b6"}, + {file = "black-24.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:5ed9c34cba223149b5a0144951a0f33d65507cf82c5449cb3c35fe4b515fea9a"}, + {file = "black-24.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9dae3ae59d6f2dc93700fd5034a3115434686e66fd6e63d4dcaa48d19880f2b0"}, + {file = "black-24.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5f8698974a81af83283eb47644f2711b5261138d6d9180c863fce673cbe04b13"}, + {file = "black-24.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f404b6e77043b23d0321fb7772522b876b6de737ad3cb97d6b156638d68ce81"}, + {file = "black-24.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:c94e52b766477bdcd010b872ba0714d5458536dc9d0734eff6583ba7266ffd89"}, + {file = "black-24.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:962d9e953872cdb83b97bb737ad47244ce2938054dc946685a4cad98520dab38"}, + {file = "black-24.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b1d8e3b2486b7dd522b1ab2ba1ec4907f0aa8f5e10a33c4271fb331d1d10b70c"}, + {file = "black-24.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed77e214b785148f57e43ca425b6e0850165144aa727d66ac604e56a70bb7825"}, + {file = "black-24.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:4ef4764437d7eba8386689cd06e1fb5341ee0ae2e9e22582b21178782de7ed94"}, + {file = "black-24.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:92b183f8eef5baf7b20a513abcf982ad616f544f593f6688bb2850d2982911f1"}, + {file = "black-24.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:945abd7b3572add997757c94295bb3e73c6ffaf3366b1f26cb2356a4bffd1dc3"}, + {file = "black-24.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db5154b9e5b478031371d8bc41ff37b33855fa223a6cfba456c9b73fb96f77d4"}, + {file = "black-24.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:afc84c33c1a9aaf3d73140cee776b4ddf73ff429ffe6b7c56dc1c9c10725856d"}, + {file = "black-24.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0889f4eb8b3bdf8b189e41a71cf0dbb8141a98346cd1a2695dea5995d416e940"}, + {file = "black-24.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5bb0143f175db45a55227eefd63e90849d96c266330ba31719e9667d0d5ec3b9"}, + {file = "black-24.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:713a04a78e78f28ef7e8df7a16fe075670ea164860fcef3885e4f3dffc0184b3"}, + {file = "black-24.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:171959bc879637a8cdbc53dc3fddae2a83e151937a28cf605fd175ce61e0e94a"}, + {file = "black-24.4.1-py3-none-any.whl", hash = "sha256:ecbab810604fe02c70b3a08afd39beb599f7cc9afd13e81f5336014133b4fe35"}, + {file = "black-24.4.1.tar.gz", hash = "sha256:5241612dc8cad5b6fd47432b8bd04db80e07cfbc53bb69e9ae18985063bcb8dd"}, ] [package.dependencies] @@ -404,13 +410,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -665,43 +671,43 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "42.0.0" +version = "42.0.5" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:c640b0ef54138fde761ec99a6c7dc4ce05e80420262c20fa239e694ca371d434"}, - {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:678cfa0d1e72ef41d48993a7be75a76b0725d29b820ff3cfd606a5b2b33fda01"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:146e971e92a6dd042214b537a726c9750496128453146ab0ee8971a0299dc9bd"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87086eae86a700307b544625e3ba11cc600c3c0ef8ab97b0fda0705d6db3d4e3"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0a68bfcf57a6887818307600c3c0ebc3f62fbb6ccad2240aa21887cda1f8df1b"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5a217bca51f3b91971400890905a9323ad805838ca3fa1e202a01844f485ee87"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ca20550bb590db16223eb9ccc5852335b48b8f597e2f6f0878bbfd9e7314eb17"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:33588310b5c886dfb87dba5f013b8d27df7ffd31dc753775342a1e5ab139e59d"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9515ea7f596c8092fdc9902627e51b23a75daa2c7815ed5aa8cf4f07469212ec"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:35cf6ed4c38f054478a9df14f03c1169bb14bd98f0b1705751079b25e1cb58bc"}, - {file = "cryptography-42.0.0-cp37-abi3-win32.whl", hash = "sha256:8814722cffcfd1fbd91edd9f3451b88a8f26a5fd41b28c1c9193949d1c689dc4"}, - {file = "cryptography-42.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:a2a8d873667e4fd2f34aedab02ba500b824692c6542e017075a2efc38f60a4c0"}, - {file = "cryptography-42.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8fedec73d590fd30c4e3f0d0f4bc961aeca8390c72f3eaa1a0874d180e868ddf"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be41b0c7366e5549265adf2145135dca107718fa44b6e418dc7499cfff6b4689"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca482ea80626048975360c8e62be3ceb0f11803180b73163acd24bf014133a0"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c58115384bdcfe9c7f644c72f10f6f42bed7cf59f7b52fe1bf7ae0a622b3a139"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:56ce0c106d5c3fec1038c3cca3d55ac320a5be1b44bf15116732d0bc716979a2"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:324721d93b998cb7367f1e6897370644751e5580ff9b370c0a50dc60a2003513"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d97aae66b7de41cdf5b12087b5509e4e9805ed6f562406dfcf60e8481a9a28f8"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:85f759ed59ffd1d0baad296e72780aa62ff8a71f94dc1ab340386a1207d0ea81"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:206aaf42e031b93f86ad60f9f5d9da1b09164f25488238ac1dc488334eb5e221"}, - {file = "cryptography-42.0.0-cp39-abi3-win32.whl", hash = "sha256:74f18a4c8ca04134d2052a140322002fef535c99cdbc2a6afc18a8024d5c9d5b"}, - {file = "cryptography-42.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:14e4b909373bc5bf1095311fa0f7fcabf2d1a160ca13f1e9e467be1ac4cbdf94"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3005166a39b70c8b94455fdbe78d87a444da31ff70de3331cdec2c568cf25b7e"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:be14b31eb3a293fc6e6aa2807c8a3224c71426f7c4e3639ccf1a2f3ffd6df8c3"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bd7cf7a8d9f34cc67220f1195884151426ce616fdc8285df9054bfa10135925f"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c310767268d88803b653fffe6d6f2f17bb9d49ffceb8d70aed50ad45ea49ab08"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bdce70e562c69bb089523e75ef1d9625b7417c6297a76ac27b1b8b1eb51b7d0f"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e9326ca78111e4c645f7e49cbce4ed2f3f85e17b61a563328c85a5208cf34440"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:69fd009a325cad6fbfd5b04c711a4da563c6c4854fc4c9544bff3088387c77c0"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:988b738f56c665366b1e4bfd9045c3efae89ee366ca3839cd5af53eaa1401bce"}, - {file = "cryptography-42.0.0.tar.gz", hash = "sha256:6cf9b76d6e93c62114bd19485e5cb003115c134cf9ce91f8ac924c44f8c8c3f4"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, + {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, + {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, + {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, + {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, + {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, + {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, ] [package.dependencies] @@ -719,17 +725,18 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "dill" -version = "0.3.7" +version = "0.3.8" description = "serialize all of Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, - {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "docutils" @@ -744,13 +751,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [package.extras] @@ -758,13 +765,13 @@ test = ["pytest (>=6)"] [[package]] name = "execnet" -version = "2.0.2" +version = "2.1.1" description = "execnet: rapid multi-Python deployment" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "execnet-2.0.2-py3-none-any.whl", hash = "sha256:88256416ae766bc9e8895c76a87928c0012183da3cc4fc18016e6f050e025f41"}, - {file = "execnet-2.0.2.tar.gz", hash = "sha256:cc59bc4423742fd71ad227122eb0dd44db51efb3dc4095b45ac9a08c770096af"}, + {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, + {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] [package.extras] @@ -856,46 +863,15 @@ files = [ {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, ] -[[package]] -name = "gitdb" -version = "4.0.11" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.41" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.41-py3-none-any.whl", hash = "sha256:c36b6634d069b3f719610175020a9aed919421c87552185b085e04fbbdb10b7c"}, - {file = "GitPython-3.1.41.tar.gz", hash = "sha256:ed66e624884f76df22c8e16066d567aaa5a37d5b5fa19db2c6df6f7156db9048"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "sumtypes"] - [[package]] name = "hypothesis" -version = "6.96.4" +version = "6.100.1" description = "A library for property-based testing" optional = false python-versions = ">=3.8" files = [ - {file = "hypothesis-6.96.4-py3-none-any.whl", hash = "sha256:2beb7a148e95a2067563bcca017d71cc286805c792e43ec5cb155ed6d0a1990d"}, - {file = "hypothesis-6.96.4.tar.gz", hash = "sha256:3b0d080bfd3b303e91388507ac7edebd7039ffcc96ac2cfcdc3c45806352c09f"}, + {file = "hypothesis-6.100.1-py3-none-any.whl", hash = "sha256:3dacf6ec90e8d14aaee02cde081ac9a17d5b70105e45e6ac822db72052c0195b"}, + {file = "hypothesis-6.100.1.tar.gz", hash = "sha256:ebff09d7fa4f1fb6a855a812baf17e578b4481b7b70ec6d96496210d1a4c6c35"}, ] [package.dependencies] @@ -904,9 +880,10 @@ exceptiongroup = {version = ">=1.0.0", markers = "python_version < \"3.11\""} sortedcontainers = ">=2.1.0,<3.0.0" [package.extras] -all = ["backports.zoneinfo (>=0.2.1)", "black (>=19.10b0)", "click (>=7.0)", "django (>=3.2)", "dpcontracts (>=0.4)", "lark (>=0.10.1)", "libcst (>=0.3.16)", "numpy (>=1.17.3)", "pandas (>=1.1)", "pytest (>=4.6)", "python-dateutil (>=1.4)", "pytz (>=2014.1)", "redis (>=3.0.0)", "rich (>=9.0.0)", "tzdata (>=2023.4)"] +all = ["backports.zoneinfo (>=0.2.1)", "black (>=19.10b0)", "click (>=7.0)", "crosshair-tool (>=0.0.54)", "django (>=3.2)", "dpcontracts (>=0.4)", "hypothesis-crosshair (>=0.0.2)", "lark (>=0.10.1)", "libcst (>=0.3.16)", "numpy (>=1.17.3)", "pandas (>=1.1)", "pytest (>=4.6)", "python-dateutil (>=1.4)", "pytz (>=2014.1)", "redis (>=3.0.0)", "rich (>=9.0.0)", "tzdata (>=2024.1)"] cli = ["black (>=19.10b0)", "click (>=7.0)", "rich (>=9.0.0)"] codemods = ["libcst (>=0.3.16)"] +crosshair = ["crosshair-tool (>=0.0.54)", "hypothesis-crosshair (>=0.0.2)"] dateutil = ["python-dateutil (>=1.4)"] django = ["django (>=3.2)"] dpcontracts = ["dpcontracts (>=0.4)"] @@ -917,17 +894,17 @@ pandas = ["pandas (>=1.1)"] pytest = ["pytest (>=4.6)"] pytz = ["pytz (>=2014.1)"] redis = ["redis (>=3.0.0)"] -zoneinfo = ["backports.zoneinfo (>=0.2.1)", "tzdata (>=2023.4)"] +zoneinfo = ["backports.zoneinfo (>=0.2.1)", "tzdata (>=2024.1)"] [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -1121,71 +1098,71 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.4" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win32.whl", hash = "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-win32.whl", hash = "sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-win_amd64.whl", hash = "sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-win32.whl", hash = "sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-win_amd64.whl", hash = "sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win32.whl", hash = "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959"}, - {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1228,85 +1205,101 @@ test = ["pytest (<5.4)", "pytest-cov"] [[package]] name = "multidict" -version = "6.0.4" +version = "6.0.5" description = "multidict implementation" optional = false python-versions = ">=3.7" files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, - {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, - {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, ] [[package]] @@ -1322,13 +1315,13 @@ files = [ [[package]] name = "netutils" -version = "1.6.0" +version = "1.8.1" description = "Common helper functions useful in network automation." optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "netutils-1.6.0-py3-none-any.whl", hash = "sha256:e755e6141d0968f1deeb61693a4023f4f5fe1f0dde25d94ac1008f8191d8d237"}, - {file = "netutils-1.6.0.tar.gz", hash = "sha256:bd2fa691e172fe9d5c9e6fc5e2593316eb7fd2c36450454894ed13b274763d70"}, + {file = "netutils-1.8.1-py3-none-any.whl", hash = "sha256:b1d6864a7512c3def0e12a2a879f12ccca9b5077d482f591c56d0171542aa040"}, + {file = "netutils-1.8.1.tar.gz", hash = "sha256:20d0cd9bf3a11588e77266c4aca93b460c732e12c4449e48213f22ab32d78921"}, ] [package.extras] @@ -1394,28 +1387,29 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.3.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1435,66 +1429,124 @@ files = [ [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] name = "pydantic" -version = "1.10.14" -description = "Data validation and settings management using python type hints" +version = "2.7.1" +description = "Data validation using Python type hints" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, - {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, - {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, - {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, - {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, - {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, - {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, - {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, - {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, - {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.18.2" +typing-extensions = ">=4.6.1" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.18.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pygments" @@ -1542,13 +1594,13 @@ testutils = ["gitpython (>3)"] [[package]] name = "pynautobot" -version = "2.0.2" +version = "2.1.1" description = "Nautobot API client library" optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "pynautobot-2.0.2-py3-none-any.whl", hash = "sha256:c0533bcd5ab548d23273f6be49071f09a3dec7cd65ded3507be1707d25bb5f0e"}, - {file = "pynautobot-2.0.2.tar.gz", hash = "sha256:a62f7b35d4f3492a3cfb038abfc3272567dd1d4b88703ab2736db47f40263932"}, + {file = "pynautobot-2.1.1-py3-none-any.whl", hash = "sha256:bcf56fee4733942a87dd07f956418f67580f45d08e5296c8fa3d11316c4ca419"}, + {file = "pynautobot-2.1.1.tar.gz", hash = "sha256:f01907a519689dc842f909f850737f68b53953818c97380a8101406d37e49d1b"}, ] [package.dependencies] @@ -1558,13 +1610,13 @@ urllib3 = ">=1.21.1,<1.27" [[package]] name = "pytest" -version = "7.4.4" +version = "8.1.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] @@ -1572,11 +1624,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-forked" @@ -1595,17 +1647,17 @@ pytest = ">=3.10" [[package]] name = "pytest-mock" -version = "3.12.0" +version = "3.14.0" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-mock-3.12.0.tar.gz", hash = "sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9"}, - {file = "pytest_mock-3.12.0-py3-none-any.whl", hash = "sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f"}, + {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, + {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, ] [package.dependencies] -pytest = ">=5.0" +pytest = ">=6.2.5" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] @@ -1742,13 +1794,13 @@ test = ["commentjson", "packaging", "pytest"] [[package]] name = "rich" -version = "13.7.0" +version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, - {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, ] [package.dependencies] @@ -1760,46 +1812,50 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rstcheck" -version = "6.1.2" +version = "6.2.1" description = "Checks syntax of reStructuredText and code blocks nested within it" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8" files = [ - {file = "rstcheck-6.1.2-py3-none-any.whl", hash = "sha256:4aaa46e0debc179f849807c453fa384fd2b75167faf5b1274115730805fab529"}, - {file = "rstcheck-6.1.2.tar.gz", hash = "sha256:f9cb07a72ef9a81d1e32187eae29b00a89421ccba1bde0b1652a08ed0923f61b"}, + {file = "rstcheck-6.2.1-py3-none-any.whl", hash = "sha256:b450943707d8ca053f5c6b9f103ee595f4926a064203e5e579172aefb3fe2c12"}, + {file = "rstcheck-6.2.1.tar.gz", hash = "sha256:e4d173950b023eb12c2b9d2348a8c62bef46612bbc7b29e1e57d37320ed0a891"}, ] [package.dependencies] -rstcheck-core = ">=1.0.2,<2.0.0" -typer = {version = ">=0.4.1,<0.8", extras = ["all"]} +rstcheck-core = ">=1.1" +typer = {version = ">=0.4.1", extras = ["all"]} [package.extras] -docs = ["m2r2 (>=0.3.2)", "sphinx", "sphinx-autobuild (==2021.3.14)", "sphinx-click (>=4.0.3,<5.0.0)", "sphinx-rtd-dark-mode (>=1.2.4,<2.0.0)", "sphinx-rtd-theme (<1)", "sphinxcontrib-spelling (>=7.3)"] -sphinx = ["sphinx"] +dev = ["rstcheck[docs,sphinx,testing,toml,type-check]", "tox (>=3.15)"] +docs = ["m2r2 (>=0.3.2)", "sphinx (>=5.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-click (>=4.0.3)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-spelling (>=7.3)"] +sphinx = ["sphinx (>=5.0)"] testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] -toml = ["tomli"] +toml = ["tomli (>=2.0)"] +type-check = ["mypy (>=1.0)"] [[package]] name = "rstcheck-core" -version = "1.0.3" +version = "1.2.1" description = "Checks syntax of reStructuredText and code blocks nested within it" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8" files = [ - {file = "rstcheck_core-1.0.3-py3-none-any.whl", hash = "sha256:d75d7df8f15b58e8aafe322d6fb6ef1ac8d12bb563089b0696948a00ee7f601a"}, - {file = "rstcheck_core-1.0.3.tar.gz", hash = "sha256:add19c9a1b97d9087f4b463b49c12cd8a9c03689a255e99089c70a2692f16369"}, + {file = "rstcheck-core-1.2.1.tar.gz", hash = "sha256:9b330020d912e2864f23f332c1a0569463ca3b06b8fee7b7bdd201b055f7f831"}, + {file = "rstcheck_core-1.2.1-py3-none-any.whl", hash = "sha256:1c100de418b6c9e14d9cf6558644d0ab103fdc447f891313882d02df3a3c52ba"}, ] [package.dependencies] -docutils = ">=0.7,<0.20" -pydantic = ">=1.2,<2.0" -types-docutils = ">=0.18,<0.20" +docutils = ">=0.7" +pydantic = ">=2" [package.extras] -docs = ["m2r2 (>=0.3.2)", "sphinx (>=4.0,<6.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-autodoc-typehints (>=1.15)", "sphinx-rtd-dark-mode (>=1.2.4,<2.0.0)", "sphinx-rtd-theme (<1)", "sphinxcontrib-apidoc (>=0.3)", "sphinxcontrib-spelling (>=7.3)"] -sphinx = ["sphinx (>=4.0,<6.0)"] -testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=6.0)", "pytest-cov (>=3.0)", "pytest-mock (>=3.7)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] -toml = ["tomli (>=2.0,<3.0)"] +dev = ["rstcheck-core[docs,sphinx,testing,toml,type-check,yaml]", "tox (>=3.15)"] +docs = ["m2r2 (>=0.3.2)", "sphinx (>=5.0,!=7.2.5)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.15)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-apidoc (>=0.3)", "sphinxcontrib-spelling (>=7.3)"] +sphinx = ["sphinx (>=5.0)"] +testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-mock (>=3.7)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] +toml = ["tomli (>=2.0)"] +type-check = ["mypy (>=1.0)", "types-PyYAML (>=6.0.0)", "types-docutils (>=0.18)"] +yaml = ["pyyaml (>=6.0.0)"] [[package]] name = "semantic-version" @@ -1818,19 +1874,19 @@ doc = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "setuptools" -version = "69.0.3" +version = "69.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, - {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, + {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, + {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "sh" @@ -1864,17 +1920,6 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -[[package]] -name = "smmap" -version = "5.0.1" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -files = [ - {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, - {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, -] - [[package]] name = "snowballstemmer" version = "2.2.0" @@ -2061,13 +2106,13 @@ test = ["pytest"] [[package]] name = "stevedore" -version = "5.1.0" +version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" files = [ - {file = "stevedore-5.1.0-py3-none-any.whl", hash = "sha256:8cc040628f3cea5d7128f2e76cf486b2251a4e543c7b938f58d9a377f6694a2d"}, - {file = "stevedore-5.1.0.tar.gz", hash = "sha256:a54534acf9b89bc7ed264807013b505bf07f74dbe4bcfa37d32bd063870b087c"}, + {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, + {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] @@ -2086,13 +2131,13 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.3" +version = "0.12.4" description = "Style preserving TOML library" optional = false python-versions = ">=3.7" files = [ - {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"}, - {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, + {file = "tomlkit-0.12.4-py3-none-any.whl", hash = "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b"}, + {file = "tomlkit-0.12.4.tar.gz", hash = "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3"}, ] [[package]] @@ -2111,46 +2156,30 @@ six = "*" [[package]] name = "typer" -version = "0.4.2" +version = "0.12.3" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "typer-0.4.2-py3-none-any.whl", hash = "sha256:023bae00d1baf358a6cc7cea45851639360bb716de687b42b0a4641cd99173f1"}, - {file = "typer-0.4.2.tar.gz", hash = "sha256:b8261c6c0152dd73478b5ba96ba677e5d6948c715c310f7c91079f311f62ec03"}, + {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, + {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, ] [package.dependencies] -click = ">=7.1.1,<9.0.0" -colorama = {version = ">=0.4.3,<0.5.0", optional = true, markers = "extra == \"all\""} -shellingham = {version = ">=1.3.0,<2.0.0", optional = true, markers = "extra == \"all\""} - -[package.extras] -all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)"] -dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)"] -test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "shellingham (>=1.3.0,<2.0.0)"] - -[[package]] -name = "types-docutils" -version = "0.19.1.9" -description = "Typing stubs for docutils" -optional = false -python-versions = "*" -files = [ - {file = "types-docutils-0.19.1.9.tar.gz", hash = "sha256:1d029567e67c52992fd42aa968778bc10a5e445c8450fc751d672d6f50330a4a"}, - {file = "types_docutils-0.19.1.9-py3-none-any.whl", hash = "sha256:556fb7ee19248aa482caa142a830c940b776b0f8c7577a98abe0977574546a1d"}, -] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.11.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, ] [[package]] @@ -2353,20 +2382,20 @@ multidict = ">=4.0" [[package]] name = "zipp" -version = "3.17.0" +version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "06c26ad974f35832165ebd7544346bf0becc6aa879b7793e5abeb0b54795f716" +content-hash = "6ecc4cbcbbb7f4faf9cb6b485ad57353098511446b8ea1a0fa2c679a00500d9c" diff --git a/pyproject.toml b/pyproject.toml index 6ac3afe9..84b537d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nautobot_ansible_modules" -version = "5.1.1" +version = "5.2.0" description = "Ansible collection to interact with Nautobot's API" authors = ["Network to Code "] license = "Apache 2.0" @@ -8,7 +8,7 @@ license = "Apache 2.0" [tool.poetry.dependencies] python = "^3.9" netutils = "^1.2" -pynautobot = "^2.0.1" +pynautobot = "^2.1.1" ansible-core = "^2.14" [tool.poetry.dev-dependencies] @@ -27,7 +27,6 @@ importlib-metadata = "1.7.0" pylint = "^2.6.0" sphinx_rtd_theme = "*" hypothesis = "^6.8.0" -pynautobot = "^2.0" pytest-pythonpath = "^0.7.3" parameterized = "^0.8.1" invoke = "^1.6.0" diff --git a/tasks.py b/tasks.py index 6cebec42..b96c60e0 100644 --- a/tasks.py +++ b/tasks.py @@ -1,4 +1,5 @@ """Tasks for use with Invoke.""" + from distutils.util import strtobool from invoke import Collection, task as invoke_task import os @@ -55,22 +56,22 @@ def task_wrapper(function=None): def docker_compose(context, command, **kwargs): - """Helper function for running a specific docker-compose command with all appropriate parameters and environment. + """Helper function for running a specific docker compose command with all appropriate parameters and environment. Args: context (obj): Used to run specific commands - command (str): Command string to append to the "docker-compose ..." command, such as "build", "up", etc. + command (str): Command string to append to the "docker compose ..." command, such as "build", "up", etc. **kwargs: Passed through to the context.run() call. """ build_env = { "NAUTOBOT_VER": context.nautobot_ansible.nautobot_ver, "PYTHON_VER": context.nautobot_ansible.python_ver, } - compose_command = f'docker-compose --project-name {context.nautobot_ansible.project_name} --project-directory "{context.nautobot_ansible.compose_dir}"' + compose_command = f'docker compose --project-name {context.nautobot_ansible.project_name} --project-directory "{context.nautobot_ansible.compose_dir}"' for compose_file in context.nautobot_ansible.compose_files: compose_file_path = os.path.join(context.nautobot_ansible.compose_dir, compose_file) compose_command += f' -f "{compose_file_path}"' compose_command += f" {command}" - print(f'Running docker-compose command "{command}"') + print(f'Running docker compose command "{command}"') return context.run(compose_command, env=build_env, **kwargs) @@ -218,29 +219,53 @@ def post_upgrade(context): def lint(context): """Run linting tools""" context.run( - "docker-compose up --build --force-recreate --quiet-pull --exit-code-from lint lint", + "docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from lint lint", env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, ) -@task -def unit(context): +@task( + help={ + "verbose": "Run the tests with verbose output; can be provided multiple times for more verbosity (e.g. -v, -vv, -vvv)", + }, + incrementable=["verbose"], +) +def unit(context, verbose=0): """Run unit tests""" - context.run( - "docker-compose up --build --force-recreate --quiet-pull --exit-code-from unit unit", - env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, - ) + env = {"PYTHON_VER": context["nautobot_ansible"]["python_ver"]} + if verbose: + env["ANSIBLE_UNIT_ARGS"] = f"-{'v' * verbose}" + context.run("docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from unit unit", env=env) -@task -def integration(context): +@task( + help={ + "verbose": "Run the tests with verbose output; can be provided multiple times for more verbosity (e.g. -v, -vv, -vvv)", + "tags": "Run specific test tags (e.g. 'device' or 'location'); can be provided multiple times (e.g. --tags device --tags location)", + }, + iterable=["tags"], + incrementable=["verbose"], +) +def integration(context, verbose=0, tags=None): """Run all tests including integration tests""" + build(context) + # Destroy any existing containers and volumes that may be left over from a previous run destroy(context) start(context) + env = {"PYTHON_VER": context["nautobot_ansible"]["python_ver"]} + ansible_args = [] + if verbose: + ansible_args.append(f"-{'v' * verbose}") + if tags: + ansible_args.append(f"--tags {','.join(tags)}") + if ansible_args: + env["ANSIBLE_INTEGRATION_ARGS"] = " ".join(ansible_args) context.run( - "docker-compose up --build --force-recreate --exit-code-from integration integration", - env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, + "docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from integration integration", + env=env, ) + # Clean up after the tests + destroy(context) @task( @@ -254,3 +279,10 @@ def galaxy_build(context, force=False): if force: command += " --force" context.run(command) + + +@task() +def make_docs(context): + """Update ansible module docs before release.""" + command = "./hacking/make-docs.sh" + context.run(command) diff --git a/tests/integration/entrypoint.sh b/tests/integration/entrypoint.sh index 63b549d7..4d8a964a 100755 --- a/tests/integration/entrypoint.sh +++ b/tests/integration/entrypoint.sh @@ -10,8 +10,8 @@ set -o pipefail function render { - readonly template="$1"; shift - readonly content="$(cat "$template")" + template="$1"; shift + content="$(cat "$template")" eval "echo \"$content\"" } @@ -23,9 +23,11 @@ function main { echo "# Rendering integration configuration" render "./tests/integration/integration_config.tmpl.yml" > ./tests/integration/integration_config.yml + echo "# Creating inventory test config" + render "./tests/integration/targets/inventory/runme_config.template" > ./tests/integration/targets/inventory/runme_config echo "# Checking to make sure Nautobot server is reachable.." - timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' nautobot:8000)" != "200" ]]; do echo "waiting for Nautobot"; sleep 5; done' || false + timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' nautobot:8000/health/)" != "200" ]]; do echo "waiting for Nautobot"; sleep 5; done' || false echo "# Populating Nautobot for running integration tests.." python ./tests/integration/nautobot-populate.py diff --git a/tests/integration/nautobot-populate.py b/tests/integration/nautobot-populate.py index bbcf6a1b..04640ce2 100755 --- a/tests/integration/nautobot-populate.py +++ b/tests/integration/nautobot-populate.py @@ -586,7 +586,13 @@ def make_nautobot_calls(endpoint, payload): "key": "my_selection_custom_field", "type": "select", "content_types": ["circuits.circuit"], - } + }, + { + "label": "My Text Custom Field", + "key": "my_text_custom_field", + "type": "text", + "content_types": ["circuits.circuit"], + }, ] created_custom_fields = make_nautobot_calls(nb.extras.custom_fields, custom_fields) diff --git a/tests/integration/targets/inventory/README.md b/tests/integration/targets/inventory/README.md new file mode 100644 index 00000000..39e98fb7 --- /dev/null +++ b/tests/integration/targets/inventory/README.md @@ -0,0 +1,39 @@ +# Inventory Integration Tests + +This README is focused directly on the inventory integration tests + +## Versioning + +As Nautobot continues to move forward into new versions and add new models, the dynamic inventory that is returned can change. +In an attempt to combat this we need to incorporate a minimum and maximum version number for each test so that we can still test old versions while being able to adapt and iterate for new versions. +Currently we include the min and max versions as part of the filename to indicate which Nautobot versions the test is compatible with. + +The pattern for all inventory test files should be as such: `test_{min version}-{max version}(optional extra moniker).yml` + +The minimum version should be **inclusive** and the maximum version should be **exclusive**. +For example, the filename test_2-2.2.yml is for all versions greater than or equal to 2.0.0 and less than **but not equal** to 2.2.0. +Be sure to use "short" versions in the filename (`2.2` rather than `2.2.0`, `3` rather than `3.0.0`) dropping all trailing `.0`. + +We use `sort` - using the `-V` flag to designate we are sorting version numbers - to do this and you can verify the validation yourself via `bash`: + +```bash +# The pattern is min, current version, max +# If the sort doesn't change the order then it equates to True, but if the order changes than it equates to False. +> printf "%s\n%s\n%s\n" "2.0" "2.1.3" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.1.3 # The current version got sorted to the middle, so this would equate to a match and run the test +2.2 # Maximum version got sorted to the bottom +> +> printf "%s\n%s\n%s\n" "2.0" "2.2.3" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.2 # Maximum version got sorted to the middle +2.2.3 # Notice that the current version got sorted to the end, so this would equate to not a match +> +> printf "%s\n%s\n%s\n" "2.0" "2.2.0" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.2 # Maximum version got sorted to the middle +2.2.0 # Just like in the last example, the full 2.2.0 got sorted above 2.2 so it would not match. The max version is exclusive. +> +``` + +> Note: We expand the **current** version to the full major.minor.patch version automatically in CI so the sorting works correctly with this pattern. If you verify with printf, make sure you use the full version number for the current version, but the short versions for the min and max to match what automation will do. diff --git a/tests/integration/targets/inventory/files/test-inventory.json b/tests/integration/targets/inventory/files/test_2-2.2.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory.json rename to tests/integration/targets/inventory/files/test_2-2.2.json diff --git a/tests/integration/targets/inventory/files/test-inventory.yml b/tests/integration/targets/inventory/files/test_2-2.2.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory.yml rename to tests/integration/targets/inventory/files/test_2-2.2.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-legacy.json b/tests/integration/targets/inventory/files/test_2-2.2_legacy.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-legacy.json rename to tests/integration/targets/inventory/files/test_2-2.2_legacy.json diff --git a/tests/integration/targets/inventory/files/test-inventory-legacy.yml b/tests/integration/targets/inventory/files/test_2-2.2_legacy.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-legacy.yml rename to tests/integration/targets/inventory/files/test_2-2.2_legacy.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-options.json b/tests/integration/targets/inventory/files/test_2-2.2_options.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options.json rename to tests/integration/targets/inventory/files/test_2-2.2_options.json diff --git a/tests/integration/targets/inventory/files/test-inventory-options.yml b/tests/integration/targets/inventory/files/test_2-2.2_options.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options.yml rename to tests/integration/targets/inventory/files/test_2-2.2_options.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-options-flatten.json b/tests/integration/targets/inventory/files/test_2-2.2_options_flatten.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options-flatten.json rename to tests/integration/targets/inventory/files/test_2-2.2_options_flatten.json diff --git a/tests/integration/targets/inventory/files/test-inventory-options-flatten.yml b/tests/integration/targets/inventory/files/test_2-2.2_options_flatten.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options-flatten.yml rename to tests/integration/targets/inventory/files/test_2-2.2_options_flatten.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals.json b/tests/integration/targets/inventory/files/test_2-2.2_plurals.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals.json rename to tests/integration/targets/inventory/files/test_2-2.2_plurals.json diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals.yml b/tests/integration/targets/inventory/files/test_2-2.2_plurals.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals.yml rename to tests/integration/targets/inventory/files/test_2-2.2_plurals.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals-flatten.json b/tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals-flatten.json rename to tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.json diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals-flatten.yml b/tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals-flatten.yml rename to tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.yml diff --git a/tests/integration/targets/inventory/files/test_2.2-3.json b/tests/integration/targets/inventory/files/test_2.2-3.json new file mode 100644 index 00000000..5816c7c8 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3.json @@ -0,0 +1,2869 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "config_context": {}, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "config_context": {}, + "custom_fields": {}, + "device_type": "Nexus Parent", + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "config_context": {}, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "config_context": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped", + "location_child_test_location", + "location_parent_test_location", + "rack_main_test_rack", + "rack_group_parent_rack_group", + "rack_role_test_rack_role", + "role_core_switch", + "device_type_cisco_test", + "manufacturer_cisco", + "status_active", + "tenant_test_tenant", + "service_ssh", + "service_http", + "location_child_child_test_location", + "rack_sub_test_rack", + "rack_group_child_rack_group", + "device_type_nexus_parent", + "service_telnet", + "cluster_test_cluster", + "cluster_group_test_cluster_group", + "cluster_type_test_cluster_type", + "is_virtual", + "cluster_test_cluster_2" + ] + }, + "cluster_group_test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "cluster_type_test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "device_type_cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "device_type_nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "location_child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "location_child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "location_parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "manufacturer_cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "rack_group_child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "rack_group_parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "rack_main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "rack_role_test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "rack_sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "role_core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "service_http": { + "hosts": [ + "test100" + ] + }, + "service_ssh": { + "hosts": [ + "test100", + "Test VM With Spaces" + ] + }, + "service_telnet": { + "hosts": [ + "Test Nexus One" + ] + }, + "status_active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "tenant_test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3.yml b/tests/integration/targets/inventory/files/test_2.2-3.yml new file mode 100644 index 00000000..9dbdf06d --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3.yml @@ -0,0 +1,27 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +config_context: True +plurals: False +interfaces: True +services: True + +group_by: + - location + - tenant + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - services + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_legacy.json b/tests/integration/targets/inventory/files/test_2.2-3_legacy.json new file mode 100644 index 00000000..59d12f1b --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_legacy.json @@ -0,0 +1,778 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped" + ] + }, + "ungrouped": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml b/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml new file mode 100644 index 00000000..8eed6372 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml @@ -0,0 +1,9 @@ +# To generate the json result, I checked out inventory.yml from the v0.2.0 release 2d6894b, +# and then ran it against this inventory with the latest test data. + +# Checks that substantial work on the inventory does not diverge from what existing users are using by default. + +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: false diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options.json b/tests/integration/targets/inventory/files/test_2.2-3_options.json new file mode 100644 index 00000000..1712f3e0 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options.json @@ -0,0 +1,474 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "R1-Device", + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_id": "17e3b2ab-1ca9-4c40-a3a7-8ccdcf1b4bb4", + "rack_role": "Test Rack Role", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "Test VM With Spaces", + "is_virtual": true, + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "TestDeviceR1", + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "rack_id": "809a01a4-8640-4ce7-8163-76901aa4211f", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "VC1": { + "ansible_host": "nexus.example.com", + "custom_fields": {}, + "device_type": "Nexus Parent", + "display": "Test Nexus One", + "dns_name": "nexus.example.com", + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "test100", + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test100-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test101-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test102-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test103-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test104-vm", + "is_virtual": true, + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "child_test_location", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "test_tenant", + "jinja_test_group", + "child_child_test_location", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "jinja_test_group": { + "hosts": [ + "TestDeviceR1", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "VC1" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options.yml b/tests/integration/targets/inventory/files/test_2.2-3_options.yml new file mode 100644 index 00000000..50875085 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options.yml @@ -0,0 +1,60 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +# Cache is not for performance of tests, but to test the caching option works +# Also set on test-inventory-plurals.yml so that we actually hit the cache on one of these runs +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: False +plurals: False +interfaces: False +services: False +group_names_raw: True +virtual_chassis_name: True +dns_name: True +ansible_host_dns_name: True + +group_by: + - location + - tenant + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - status + +query_filters: + +device_query_filters: + - role: "Core Switch" + +vm_query_filters: + - cluster_type: "Test Cluster Type" + +# See Constructed for details +# https://docs.ansible.com/ansible/latest/plugins/inventory/constructed.html + +compose: + display: display + rack_id: rack.id + ntp_servers: config_context.ntp_servers + +keyed_groups: + - prefix: rack + key: rack.name + +groups: + jinja_test_group: inventory_hostname.startswith('Test') diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json new file mode 100644 index 00000000..ffa91949 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json @@ -0,0 +1,2835 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "device_type": "Nexus Parent", + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "device_type": "Cisco Test", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "ntp_servers": [ + "pool.ntp.org" + ], + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "child_test_location", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "test_tenant", + "test_tenant_group", + "child_child_test_location", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + }, + "test_tenant_group": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml new file mode 100644 index 00000000..7f59c25e --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml @@ -0,0 +1,39 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +# Use cache on this test to make sure interfaces is tested via the cache +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: True +flatten_config_context: True +flatten_custom_fields: True +flatten_local_context_data: True +plurals: False +interfaces: True +services: True +fetch_all: False +max_uri_length: 0 +group_names_raw: True + +group_by: + - location + - tenant + - tenant_group + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals.json b/tests/integration/targets/inventory/files/test_2.2-3_plurals.json new file mode 100644 index 00000000..d4077530 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals.json @@ -0,0 +1,2952 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "config_context": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped", + "locations_child_test_location", + "locations_parent_test_location", + "racks_main_test_rack", + "rack_group_parent_rack_group", + "rack_role_test_rack_role", + "device_roles_core_switch", + "device_types_cisco_test", + "manufacturers_cisco", + "status_active", + "location_parent_test_location", + "location_parent_test_location_2", + "tenants_test_tenant", + "tenant_group_test_tenant_group", + "locations_child_child_test_location", + "racks_sub_test_rack", + "rack_group_child_rack_group", + "device_types_nexus_parent", + "cluster_test_cluster", + "cluster_group_test_cluster_group", + "cluster_type_test_cluster_type", + "is_virtual", + "cluster_test_cluster_2" + ] + }, + "cluster_group_test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "cluster_type_test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "device_roles_core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "device_types_cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "device_types_nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "location_child_test_location": { + "children": [ + "location_child_child_test_location" + ] + }, + "location_parent_test_location": { + "children": [ + "location_child_test_location" + ] + }, + "location_parent_test_location_2": { + "children": [ + "location_child_test_location" + ] + }, + "locations_child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "locations_child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "locations_parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "manufacturers_cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "rack_group_child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "rack_group_parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "rack_role_test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "racks_main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "racks_sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "status_active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "tenant_group_test_tenant_group": { + "hosts": [ + "test100" + ] + }, + "tenants_test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml b/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml new file mode 100644 index 00000000..26c6f213 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml @@ -0,0 +1,36 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: false + +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: True +plurals: True +interfaces: True +services: True + +# Enough to fit only 2 devices, so tests chunking logic +max_uri_length: 80 +fetch_all: False + +group_by: + - locations + - tenants + - tenant_group + - racks + - rack_group + - rack_role + - tags + - device_roles + - device_types + - manufacturers + - platforms + - cluster + - cluster_group + - cluster_type + - is_virtual + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json new file mode 100644 index 00000000..4e770824 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json @@ -0,0 +1,516 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "ntp_servers": [ + "pool.ntp.org" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "parent_test_location_2", + "test_tenant", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "children": [ + "child_child_test_location" + ], + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "children": [ + "child_test_location" + ], + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "parent_test_location_2": { + "children": [ + "child_test_location" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml new file mode 100644 index 00000000..0ee90ad3 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml @@ -0,0 +1,30 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +config_context: True +flatten_config_context: True +flatten_custom_fields: True +plurals: True +interfaces: False +services: False +fetch_all: True +group_names_raw: True + +group_by: + - locations + - tenants + - racks + - rack_group + - rack_role + - tags + - device_roles + - device_types + - manufacturers + - platforms + - cluster + - cluster_group + - cluster_type + - is_virtual + - status diff --git a/tests/integration/targets/inventory/runme.sh b/tests/integration/targets/inventory/runme.sh index ad146d6f..9749666c 100755 --- a/tests/integration/targets/inventory/runme.sh +++ b/tests/integration/targets/inventory/runme.sh @@ -46,12 +46,38 @@ inventory () { RESULT=0 +# Convert NAUTOBOT_VER to just semantic version (strips any beta/rc/etc monikers) +NAUTOBOT_VER=$(echo "$NAUTOBOT_VER" | cut -d'-' -f1) +# Ensure NAUTOBOT_VER always has 3 sections of version (major.minor.patch) for proper min/max comparison below +IFS='.' read -ra VER <<< "$NAUTOBOT_VER" +if [[ ${#VER[@]} -eq 1 ]]; then + NAUTOBOT_VER="${VER[0]}.0.0" +elif [[ ${#VER[@]} -eq 2 ]]; then + NAUTOBOT_VER="${VER[0]}.${VER[1]}.0" +fi + for INVENTORY in "$INVENTORIES_DIR"/*.yml do NAME="$(basename "$INVENTORY")" NAME_WITHOUT_EXTENSION="${NAME%.yml}" OUTPUT_JSON="$OUTPUT_DIR/$NAME_WITHOUT_EXTENSION.json" + # Extract min and max versions from the filename + VERSION_PATTERN="test_([0-9.]+)-([0-9.]+).*\.yml" + if [[ "$NAME" =~ $VERSION_PATTERN ]]; then + MIN_VERSION="${BASH_REMATCH[1]}" + MAX_VERSION="${BASH_REMATCH[2]}" + else + echo "Invalid filename format: $NAME" + exit 1 + fi + # Check if NAUTOBOT_VER is within the specified range + if ! printf "%s\n%s\n%s\n" $MIN_VERSION $NAUTOBOT_VER $MAX_VERSION | sort -V -C; then + # The sort statement will return non-zero if the versions are not in order (min <= nautobot_ver <= max) + echo "NAUTOBOT_VER is $NAUTOBOT_VER, skipping inventory test: $NAME" + continue + fi + inventory -vvvv --list --inventory "$INVENTORY" --output="$OUTPUT_JSON" # Compare the output diff --git a/tests/integration/targets/inventory/runme_config.template b/tests/integration/targets/inventory/runme_config.template index 7865d774..1b292e62 100644 --- a/tests/integration/targets/inventory/runme_config.template +++ b/tests/integration/targets/inventory/runme_config.template @@ -1,6 +1,6 @@ # runme_config is source'd by runme.sh to set environment variables used to modify the test against different versions of Nautobot. -# .travis.yml uses render_config.sh to generate it from runme_config.template +# entrypoint.sh generates it from runme_config.template (this file) # There is no other way to pass environment variables to a runme.sh integration test. # (integration_config.yml files are only helpful to ansible yaml-based tests) -export PYNAUTOBOT_VERSION=${VERSION} +export NAUTOBOT_VER=${NAUTOBOT_VER} diff --git a/tests/integration/targets/latest/tasks/circuit.yml b/tests/integration/targets/latest/tasks/circuit.yml index fc2708df..d80a9c33 100644 --- a/tests/integration/targets/latest/tasks/circuit.yml +++ b/tests/integration/targets/latest/tasks/circuit.yml @@ -121,19 +121,30 @@ - test_three['circuit']['comments'] == "FASTER CIRCUIT" - test_three['msg'] == "circuit Test Circuit One updated" -- name: "PYNAUTOBOT_CIRCUIT 4: Delete provider within nautobot" +- name: "PYNAUTOBOT_CIRCUIT 4: Update circuit with custom_field" networktocode.nautobot.circuit: url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" cid: Test Circuit One - state: absent + provider: Test Provider + circuit_type: Test Circuit Type + tenant: Test Tenant + install_date: "2018-12-25" + commit_rate: 10000 + custom_fields: + my_text_custom_field: test + description: "Test circuit with updates" + comments: "FASTER CIRCUIT" + state: present register: test_four -- name: "PYNAUTOBOT_CIRCUIT 4 : ASSERT - Delete" +- name: "PYNAUTOBOT_CIRCUIT 4: ASSERT - Update circuit with custom_field" assert: that: - test_four is changed - test_four['circuit']['cid'] == "Test Circuit One" + - test_four['diff']['after']['custom_fields']['my_text_custom_field'] == "test" + - test_four['circuit']['custom_fields']['my_text_custom_field'] == "test" - test_four['circuit']['provider'] == provider['key'] - test_four['circuit']['circuit_type'] == type['key'] - test_four['circuit']['status'] == planned['key'] @@ -142,4 +153,50 @@ - test_four['circuit']['commit_rate'] == 10000 - test_four['circuit']['description'] == "Test circuit with updates" - test_four['circuit']['comments'] == "FASTER CIRCUIT" - - test_four['msg'] == "circuit Test Circuit One deleted" + - test_four['msg'] == "circuit Test Circuit One updated" + +- name: "PYNAUTOBOT_CIRCUIT 4.1: Verify circuit with custom_field idempotency" + networktocode.nautobot.circuit: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + cid: Test Circuit One + provider: Test Provider + circuit_type: Test Circuit Type + tenant: Test Tenant + install_date: "2018-12-25" + commit_rate: 10000 + custom_fields: + my_text_custom_field: test + description: "Test circuit with updates" + comments: "FASTER CIRCUIT" + state: present + register: test_four + +- name: "PYNAUTOBOT_CIRCUIT 5: ASSERT - Verify custom_field idempotency" + assert: + that: + - not test_four['changed'] + - test_four['circuit']['custom_fields']['my_text_custom_field'] == "test" + +- name: "PYNAUTOBOT_CIRCUIT 5: Delete provider within nautobot" + networktocode.nautobot.circuit: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + cid: Test Circuit One + state: absent + register: test_five + +- name: "PYNAUTOBOT_CIRCUIT 5 : ASSERT - Delete" + assert: + that: + - test_five is changed + - test_five['circuit']['cid'] == "Test Circuit One" + - test_five['circuit']['provider'] == provider['key'] + - test_five['circuit']['circuit_type'] == type['key'] + - test_five['circuit']['status'] == planned['key'] + - test_five['circuit']['tenant'] == tenant['key'] + - test_five['circuit']['install_date'] == "2018-12-25" + - test_five['circuit']['commit_rate'] == 10000 + - test_five['circuit']['description'] == "Test circuit with updates" + - test_five['circuit']['comments'] == "FASTER CIRCUIT" + - test_five['msg'] == "circuit Test Circuit One deleted" diff --git a/tests/integration/targets/latest/tasks/device_interface_template.yml b/tests/integration/targets/latest/tasks/device_interface_template.yml index 73feb788..a2dc2a78 100644 --- a/tests/integration/targets/latest/tasks/device_interface_template.yml +++ b/tests/integration/targets/latest/tasks/device_interface_template.yml @@ -14,6 +14,8 @@ device_type: Arista Test name: 10GBASE-T (10GE) type: 10gbase-t + label: net1 + description: "create interface" register: test_one - name: "1 - ASSERT" @@ -26,6 +28,8 @@ - test_one['interface_template']['name'] == "10GBASE-T (10GE)" - test_one['interface_template']['device_type'] == dt_arista['key'] - test_one['interface_template']['type'] == '10gbase-t' + - test_one['interface_template']['label'] == 'net1' + - test_one['interface_template']['description'] == 'create interface' - name: "2 - Update 10GBASE-T (10GE)" networktocode.nautobot.device_interface_template: @@ -34,6 +38,8 @@ device_type: Arista Test name: 10GBASE-T (10GE) type: 10gbase-t + label: net0 + description: "update interface" mgmt_only: true register: test_two @@ -43,9 +49,13 @@ - test_two is changed - test_two['msg'] == "interface_template 10GBASE-T (10GE) updated" - test_two['diff']['after']['mgmt_only'] == true + - test_two['diff']['after']['label'] == "net0" + - test_two['diff']['after']['description'] == "update interface" - test_two['interface_template']['name'] == "10GBASE-T (10GE)" - test_two['interface_template']['device_type'] == dt_arista['key'] - test_two['interface_template']['mgmt_only'] == true + - test_two['interface_template']['label'] == "net0" + - test_two['interface_template']['description'] == "update interface" - name: "3 - Delete interface template 10GBASE-T (10GE)" networktocode.nautobot.device_interface_template: diff --git a/tests/integration/targets/latest/tasks/location.yml b/tests/integration/targets/latest/tasks/location.yml index 4eae8224..64eed8fa 100644 --- a/tests/integration/targets/latest/tasks/location.yml +++ b/tests/integration/targets/latest/tasks/location.yml @@ -107,7 +107,7 @@ status: Active description: Test Location 2 Description location_type: "{{ child_location_type['key'] }}" - parent_location: "{{ test_create_min['location']['id'] }}" + parent: "{{ test_create_min['location']['id'] }}" tenant: Test Tenant facility: EquinoxCA7 asn: "65001" @@ -192,7 +192,7 @@ name: Testing Parent Name Lookup # Testing issue #303, where the location name lookup is exact instead of contains # 'Parent Test Location' and 'Parent Test Location 2' are both valid parent locations - parent_location: "Parent Test Location" + parent: "Parent Test Location" status: Active location_type: "{{ child_location_type['key'] }}" register: test_parent_name diff --git a/tests/integration/targets/latest/tasks/location_type.yml b/tests/integration/targets/latest/tasks/location_type.yml index 9f093022..f1cb68e5 100644 --- a/tests/integration/targets/latest/tasks/location_type.yml +++ b/tests/integration/targets/latest/tasks/location_type.yml @@ -55,7 +55,7 @@ token: "{{ nautobot_token }}" name: Test Location Type 2 description: Test Location Type 2 Description - parent: "{{ test_create_min['location_type']['id'] }}" + parent: "{{ test_create_min['location_type']['name'] }}" nestable: "{{ true if nautobot_version is version('1.5', '>=') else omit }}" content_types: - "dcim.device" @@ -80,7 +80,7 @@ token: "{{ nautobot_token }}" name: Test Location Type 2 description: Test Location Type 2 Description - parent: "{{ test_create_min['location_type']['id'] }}" + parent: "{{ test_create_min['location_type']['name'] }}" nestable: "{{ true if nautobot_version is version('1.5', '>=') else omit }}" content_types: - "dcim.device" diff --git a/tests/integration/targets/latest/tasks/lookup.yml b/tests/integration/targets/latest/tasks/lookup.yml index 5fa9a5a4..a5ae935e 100644 --- a/tests/integration/targets/latest/tasks/lookup.yml +++ b/tests/integration/targets/latest/tasks/lookup.yml @@ -79,3 +79,9 @@ - "'L2' in query_result | json_query('[*].display')" vars: query_result: "{{ query('networktocode.nautobot.lookup', 'devices', api_filter='role=\"Core Switch\" location=\"Child Test Location\" location=\"Child-Child Test Location\"', api_endpoint=nautobot_url, token=nautobot_token, raw_data=True) }}" + +- name: "PYNAUTOBOT_LOOKUP 10: Lookup with retries set" + assert: + that: "query_result | count == 6" + vars: + query_result: "{{ query('networktocode.nautobot.lookup', 'locations', api_endpoint=nautobot_url, token=nautobot_token, num_retries=3) }}" \ No newline at end of file diff --git a/tests/integration/targets/latest/tasks/rack_group.yml b/tests/integration/targets/latest/tasks/rack_group.yml index ce900e8b..1ac8073f 100644 --- a/tests/integration/targets/latest/tasks/rack_group.yml +++ b/tests/integration/targets/latest/tasks/rack_group.yml @@ -6,6 +6,7 @@ ## - set_fact: test_location: "{{ lookup('networktocode.nautobot.lookup', 'locations', api_endpoint=nautobot_url, token=nautobot_token, api_filter='name=\"Child Test Location\" parent=\"Parent Test Location\"') }}" + parent_rack_group: "{{ lookup('networktocode.nautobot.lookup', 'rack-groups', api_endpoint=nautobot_url, token=nautobot_token, api_filter='name=\"Parent Rack Group\"') }}" - name: "RACK_GROUP 1: Necessary info creation" networktocode.nautobot.rack_group: @@ -62,3 +63,51 @@ - test_three['diff']['before']['state'] == "present" - test_three['diff']['after']['state'] == "absent" - test_three['msg'] == "rack_group Rack Group deleted" + +- name: "RACK_GROUP 4: Create child rack group" + networktocode.nautobot.rack_group: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + name: Test Rack Group + description: Test Rack Group Description + location: + name: "Child Test Location" + parent: "Parent Test Location" + parent: Parent Rack Group + state: present + register: test_four + +- name: "RACK_GROUP 4: ASSERT - Create child rack group" + assert: + that: + - test_four is changed + - test_four['diff']['before']['state'] == "absent" + - test_four['diff']['after']['state'] == "present" + - test_four['rack_group']['name'] == "Test Rack Group" + - test_four['rack_group']['description'] == "Test Rack Group Description" + - test_four['rack_group']['location'] == test_location['key'] + - test_four['rack_group']['parent'] == parent_rack_group['key'] + - test_four['msg'] == "rack_group Test Rack Group created" + +- name: "RACK_GROUP 5: Create duplicate child rack group" + networktocode.nautobot.rack_group: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + name: Test Rack Group + description: Test Rack Group Description + location: + name: "Child Test Location" + parent: "Parent Test Location" + parent: Parent Rack Group + state: present + register: test_five + +- name: "RACK_GROUP 5: ASSERT - Create duplicate child rack group" + assert: + that: + - not test_five['changed'] + - test_five['rack_group']['name'] == "Test Rack Group" + - test_five['rack_group']['description'] == "Test Rack Group Description" + - test_five['rack_group']['location'] == test_location['key'] + - test_five['rack_group']['parent'] == parent_rack_group['key'] + - test_five['msg'] == "rack_group Test Rack Group already exists" diff --git a/tests/integration/targets/latest/tasks/tenant_group.yml b/tests/integration/targets/latest/tasks/tenant_group.yml index 459197ad..aeeb2bea 100644 --- a/tests/integration/targets/latest/tasks/tenant_group.yml +++ b/tests/integration/targets/latest/tasks/tenant_group.yml @@ -13,7 +13,7 @@ url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" name: "Test Tenant Group Two" - parent_tenant_group: "Test Tenant Group" + parent: "Test Tenant Group" register: test_one - name: "1 - ASSERT" @@ -31,7 +31,7 @@ url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" name: "Test Tenant Group Two" - parent_tenant_group: "Test Tenant Group" + parent: "Test Tenant Group" register: test_two - name: "2 - ASSERT" diff --git a/tests/unit/action/test_graphql_query.py b/tests/unit/action/test_graphql_query.py index d261b83c..b182788c 100644 --- a/tests/unit/action/test_graphql_query.py +++ b/tests/unit/action/test_graphql_query.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError import pytest diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index 2f8ce4f6..c885002c 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -1,4 +1,5 @@ """Pytest conftest setup.""" + import pytest import pynautobot diff --git a/tests/unit/lookup/test_lookup_graphql.py b/tests/unit/lookup/test_lookup_graphql.py index 3e17e30a..b525714e 100644 --- a/tests/unit/lookup/test_lookup_graphql.py +++ b/tests/unit/lookup/test_lookup_graphql.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError, AnsibleLookupError import pynautobot import pytest diff --git a/tests/unit/module_utils/test_graphql_utils.py b/tests/unit/module_utils/test_graphql_utils.py index 2eb23c43..4cb763a2 100644 --- a/tests/unit/module_utils/test_graphql_utils.py +++ b/tests/unit/module_utils/test_graphql_utils.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError import pynautobot import pytest