networktocode / networktocode.nautobot / 4.5.0 / module / query_graphql Queries and returns elements from Nautobot GraphQL endpoint | "added in version" 1.1.0 of networktocode.nautobot" Authors: Josh VanDeraa (@jvanderaa) This plugin has a corresponding action plugin.networktocode.nautobot.query_graphql (4.5.0) — module
Install with ansible-galaxy collection install networktocode.nautobot:==4.5.0
collections: - name: networktocode.nautobot version: 4.5.0
Queries Nautobot via its GraphQL API through pynautobot
# Make API Query without variables - name: SET FACT OF STRING set_fact: query_string: | query { sites { id name region { name } } }
# Make query to GraphQL Endpoint - name: Obtain list of sites from Nautobot networktocode.nautobot.query_graphql: url: http://nautobot.local token: thisIsMyToken query: "{{ query_string }}"
# Example with variables - name: SET FACTS TO SEND TO GRAPHQL ENDPOINT set_fact: graph_variables: site_name: AMS01 query_string: | query ($site_name: String!) { sites (slug: $site_name) { id name region { name } } }
# Get Response with variables and set to root keys - name: Obtain list of devices at site in variables from Nautobot networktocode.nautobot.query_graphql: url: http://nautobot.local token: thisIsMyToken query: "{{ query_string }}" graph_variables: "{{ graph_variables }}" update_hostvars: yes
url: description: - The URL to the Nautobot instance to query (http://nautobot.example.com:8000), optional env=NAUTOBOT_URL required: false type: str query: description: - The GraphQL formatted query string, see (U(https://pynautobot.readthedocs.io/en/latest/advanced/graphql.html)) for more details. required: true type: str token: description: - The API token created through Nautobot, optional env=NAUTOBOT_TOKEN required: false type: str api_version: description: - API Version Nautobot REST API required: false type: str validate_certs: default: true description: - Whether or not to validate SSL of the Nautobot instance required: false type: bool graph_variables: description: - Dictionary of keys/values to pass into the GraphQL query, see (U(https://pynautobot.readthedocs.io/en/latest/advanced/graphql.html)) for more info required: false type: dict update_hostvars: default: false description: - Whether or not to populate data in the in the root (e.g. hostvars[inventory_hostname]) or within the 'data' key (e.g. hostvars[inventory_hostname]['data']). Beware, that the root keys provided by the query will overwrite any root keys already present, leverage the GraphQL alias feature to avoid issues. required: false type: bool
data: description: - Data result from the GraphQL endpoint returned: success type: dict graph_variables: description: - Variables passed in returned: success type: dict query: description: - Query string that was sent to Nautobot returned: success type: str url: description: - Nautobot URL that was supplied for troubleshooting returned: success type: str