community.general.ansible_type test – Validate input type
Note
This test plugin is part of the community.general collection (version 9.3.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.ansible_type
.
New in community.general 9.2.0
Synopsis
This test validates input type.
Input
This describes the input of the test, the value before is community.general.ansible_type
or is not community.general.ansible_type
.
Parameter |
Comments |
---|---|
Input data. |
Keyword parameters
This describes keyword parameters of the test. These are the values key1=value1
, key2=value2
and so on in the following
examples: input is community.general.ansible_type(key1=value1, key2=value2, ...)
and input is not community.general.ansible_type(key1=value1, key2=value2, ...)
Parameter |
Comments |
---|---|
Data type aliases. Default: |
|
A single data type, or a data types list to be validated. |
Examples
# Substitution converts str to AnsibleUnicode
# -------------------------------------------
# String. AnsibleUnicode.
dtype: AnsibleUnicode
data: "abc"
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# String. AnsibleUnicode alias str.
alias: {"AnsibleUnicode": "str"}
dtype: str
data: "abc"
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# List. All items are AnsibleUnicode.
dtype: list[AnsibleUnicode]
data: ["a", "b", "c"]
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# Dictionary. All keys are AnsibleUnicode. All values are AnsibleUnicode.
dtype: dict[AnsibleUnicode, AnsibleUnicode]
data: {"a": "foo", "b": "bar", "c": "baz"}
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# No substitution and no alias. Type of strings is str
# ----------------------------------------------------
# String
dtype: str
result: '{{ "abc" is community.general.ansible_type(dtype) }}'
# result => true
# Integer
dtype: int
result: '{{ 123 is community.general.ansible_type(dtype) }}'
# result => true
# Float
dtype: float
result: '{{ 123.45 is community.general.ansible_type(dtype) }}'
# result => true
# Boolean
dtype: bool
result: '{{ true is community.general.ansible_type(dtype) }}'
# result => true
# List. All items are strings.
dtype: list[str]
result: '{{ ["a", "b", "c"] is community.general.ansible_type(dtype) }}'
# result => true
# List of dictionaries.
dtype: list[dict]
result: '{{ [{"a": 1}, {"b": 2}] is community.general.ansible_type(dtype) }}'
# result => true
# Dictionary. All keys are strings. All values are integers.
dtype: dict[str, int]
result: '{{ {"a": 1} is community.general.ansible_type(dtype) }}'
# result => true
# Dictionary. All keys are strings. All values are integers.
dtype: dict[str, int]
result: '{{ {"a": 1, "b": 2} is community.general.ansible_type(dtype) }}'
# result => true
# Type of strings is AnsibleUnicode or str
# ----------------------------------------
# Dictionary. The keys are integers or strings. All values are strings.
alias: {"AnsibleUnicode": "str"}
dtype: dict[int|str, str]
data: {1: 'a', 'b': 'b'}
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# Dictionary. All keys are integers. All values are keys.
alias: {"AnsibleUnicode": "str"}
dtype: dict[int, str]
data: {1: 'a', 2: 'b'}
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# Dictionary. All keys are strings. Multiple types values.
alias: {"AnsibleUnicode": "str"}
dtype: dict[str, bool|dict|float|int|list|str]
data: {'a': 1, 'b': 1.1, 'c': 'abc', 'd': True, 'e': ['x', 'y', 'z'], 'f': {'x': 1, 'y': 2}}
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# List. Multiple types items.
alias: {"AnsibleUnicode": "str"}
dtype: list[bool|dict|float|int|list|str]
data: [1, 2, 1.1, 'abc', True, ['x', 'y', 'z'], {'x': 1, 'y': 2}]
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# Option dtype is list
# --------------------
# AnsibleUnicode or str
dtype: ['AnsibleUnicode', 'str']
data: abc
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# float or int
dtype: ['float', 'int']
data: 123
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# float or int
dtype: ['float', 'int']
data: 123.45
result: '{{ data is community.general.ansible_type(dtype) }}'
# result => true
# Multiple alias
# --------------
# int alias number
alias: {"int": "number", "float": "number"}
dtype: number
data: 123
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
# float alias number
alias: {"int": "number", "float": "number"}
dtype: number
data: 123.45
result: '{{ data is community.general.ansible_type(dtype, alias) }}'
# result => true
Return Value
Key |
Description |
---|---|
Whether the data type is valid. Returned: success |