ansible.builtin.uri test – is the string a valid URI

Note

This test plugin is part of ansible-core and included in all Ansible installations. In most cases, you can use the short plugin name uri even without specifying the collections: keyword. However, we recommend you use the FQCN for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same test plugin name.

New in ansible-core 2.14

Synopsis

  • Validates that the input string conforms to the URI standard, optionally that is also in the list of schemas provided.

Input

This describes the input of the test, the value before is ansible.builtin.uri or is not ansible.builtin.uri.

Parameter

Comments

Input

string / required

Possible URI.

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 ansible.builtin.uri(key1=value1, key2=value2, ...) and input is not ansible.builtin.uri(key1=value1, key2=value2, ...).

Parameter

Comments

schemes

list / elements=string

Subset of URI schemas to validate against, otherwise any scheme is considered valid.

Examples

# URLs are URIs
{{ 'http://example.com' is uri }}
# but not all URIs are URLs
{{ 'mailto://[email protected]' is uri }}
# looking only for file transfers URIs
{{ 'mailto://[email protected]' is not uri(schemes=['ftp', 'ftps', 'sftp', 'file']) }}
# make sure URL conforms to the 'special schemas'
{{ 'http://nobody:[email protected]' is uri(['ftp', 'ftps', 'http', 'https', 'ws', 'wss']) }}

Return Value

Key

Description

Return value

boolean

Returns false if the string is not a URI or the schema extracted does not match the supplied list.

Returned: success

Authors

  • Ansible Core

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.