Skip to content

validate

Collection Note

This module is part of the ansible.utils collection. To install the collection, use:

ansible-galaxy collection install ansible.utils
Added in version 1.0.0.

Synopsis

  • Validate I(data) with provided I(criteria) based on the validation I(engine).

Parameters

Parameter Defaults / Choices Comments
criteria
raw
required
The criteria used for validation of value that represents I(data) options.
This option represents the first argument passed in the filter plugin. For example C(config_data|ansible.utils.validate(config_criteria)), in this case the value of C(config_criteria) represents this option.
For the type of I(criteria) that represents this value refer to the documentation of individual validator plugins.
data
raw
required
Data that will be validated against I(criteria).
This option represents the value that is passed to the filter plugin in pipe format. For example C(config_data|ansible.utils.validate()), in this case C(config_data) represents this option.
For the type of I(data) that represents this value refer to the documentation of individual validator plugins.
engine
str
Default: ansible.utils.jsonschema
The name of the validator plugin to use.
This option can be passed in lookup plugin as a key, value pair. For example C(config_data|ansible.utils.validate(config_criteria, engine='ansible.utils.jsonschema')), in this case the value C(ansible.utils.jsonschema) represents the engine to be use for data validation. If the value is not provided the default value that is C(ansible.utils.jsonschema) will be used.
The value should be in fully qualified collection name format that is C(..).

Notes

Note

  • For the type of options I(data) and I(criteria) refer to the individual validate plugin documentation that is represented in the value of I(engine) option.
  • For additional plugin configuration options refer to the individual validate plugin documentation that is represented by the value of I(engine) option.
  • The plugin configuration option can be either passed as C(key=value) pairs within filter plugin or environment variables.
  • The precedence of the I(validate) plugin configurable option is the variable passed within filter plugin as C(key=value) pairs followed by the environment variables.

Examples

- name: set facts for data and criteria
  ansible.builtin.set_fact:
    data: "{{ lookup('ansible.builtin.file', './validate/data/show_interfaces_iosxr.json')}}"
    criteria: "{{ lookup('ansible.builtin.file', './validate/criteria/jsonschema/show_interfaces_iosxr.json')}}"

- name: validate data in json format using jsonschema by passing plugin configuration variable as key/value pairs
  ansible.builtin.set_fact:
    data_validity: "{{ data|ansible.utils.validate(criteria, engine='ansible.utils.jsonschema', draft='draft7') }}"

Return Values

Key Data Type Description Returned
_raw If data is valid returns empty list If data is invalid returns list of errors in data

Authors

  • Ganesh Nalawade (@ganeshrn)