From e5b0c4f00922511ff94a767521aaa7cd1bf28314 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sun, 10 Mar 2024 18:18:32 +0100 Subject: [PATCH] Fix duplicate detection for latest ansible-core devel. Update test data. --- changelogs/fragments/257-duplicates.yml | 2 + src/antsibull_docs/docs_parsing/routing.py | 4 +- .../ansible-doc-cache-all-others.json | 446 +++++++++++++++--- tests/functional/ansible-doc-cache-all.json | 444 ++++++++++++++--- ...cache-ansible.builtin-ns.col2-ns2.col.json | 442 ++++++++++++++--- ...ble-doc-cache-ansible.builtin-ns2.col.json | 438 ++++++++++++++--- ...doc-cache-ansible.builtin-ns2.flatcol.json | 422 ++++++++++++++--- ...e-ns.col1-ns.col2-ns2.col-ns2.flatcol.json | 144 ++++-- ...doc-cache-ns.col1-ns2.col-ns2.flatcol.json | 140 ++++-- .../functional/ansible-doc-cache-ns.col2.json | 124 +++-- .../functional/ansible-doc-cache-ns2.col.json | 138 ++++-- tests/functional/ansible-version.output | 4 +- 12 files changed, 2314 insertions(+), 434 deletions(-) create mode 100644 changelogs/fragments/257-duplicates.yml diff --git a/changelogs/fragments/257-duplicates.yml b/changelogs/fragments/257-duplicates.yml new file mode 100644 index 00000000..99917dd2 --- /dev/null +++ b/changelogs/fragments/257-duplicates.yml @@ -0,0 +1,2 @@ +bugfixes: + - "Fix duplicate docs detection (for aliases) for latest ansible-core devel (https://github.com/ansible-community/antsibull-docs/pull/257)." diff --git a/src/antsibull_docs/docs_parsing/routing.py b/src/antsibull_docs/docs_parsing/routing.py index 6153fd02..7ce8f030 100644 --- a/src/antsibull_docs/docs_parsing/routing.py +++ b/src/antsibull_docs/docs_parsing/routing.py @@ -369,7 +369,7 @@ def _remove_redirect_duplicates( # remove this plugin's docs and generate a redirect stub instead. a = plugin_record.get("doc") b = plugin_map[destination].get("doc") - if a and b and compare_all_but(a, b, ["filename"]): + if a and b and compare_all_but(a, b, ["filename", "plugin_name"]): del plugin_map[plugin_name] @@ -389,7 +389,7 @@ def _remove_other_duplicates( if full_name and full_name != plugin_name and full_name in plugin_map: a = plugin_record.get("doc") b = plugin_map[full_name].get("doc") - if a and b and compare_all_but(a, b, ["name", "filename"]): + if a and b and compare_all_but(a, b, ["name", "filename", "plugin_name"]): del plugin_map[plugin_name] if plugin_name not in plugin_routing: plugin_routing[plugin_name] = {} diff --git a/tests/functional/ansible-doc-cache-all-others.json b/tests/functional/ansible-doc-cache-all-others.json index 0e35f110..b7224d33 100644 --- a/tests/functional/ansible-doc-cache-all-others.json +++ b/tests/functional/ansible-doc-cache-all-others.json @@ -115,6 +115,7 @@ ] } }, + "plugin_name": "ansible.builtin.runas", "short_description": "Run As user", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -294,6 +295,7 @@ ] } }, + "plugin_name": "ansible.builtin.su", "short_description": "Substitute User", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -447,6 +449,7 @@ ] } }, + "plugin_name": "ansible.builtin.sudo", "short_description": "Substitute User DO", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -586,6 +589,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -655,6 +659,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.jsonfile", "short_description": "JSON formatted files.", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -674,6 +679,7 @@ ], "filename": "/ansible/plugins/cache/memory.py", "name": "memory", + "plugin_name": "ansible.builtin.memory", "short_description": "RAM backed, non persistent", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -715,6 +721,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -918,6 +925,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.default", "requirements": [ "set as stdout in configuration" ], @@ -1039,6 +1047,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.junit", "requirements": [ "enable in configuration" ], @@ -1112,6 +1121,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.minimal", "short_description": "minimal Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1129,6 +1139,7 @@ ], "filename": "/ansible/plugins/callback/oneline.py", "name": "oneline", + "plugin_name": "ansible.builtin.oneline", "short_description": "oneline Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1167,6 +1178,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.tree", "requirements": [ "invoked in the command line" ], @@ -1193,6 +1205,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -1213,6 +1226,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -1264,6 +1278,7 @@ ] } }, + "plugin_name": "ansible.builtin.local", "short_description": "execute on controller", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -1827,6 +1842,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.paramiko_ssh", "short_description": "Run tasks via Python SSH (paramiko)", "version_added": "0.1", "version_added_collection": "ansible.builtin" @@ -2305,6 +2321,7 @@ ] } }, + "plugin_name": "ansible.builtin.psrp", "requirements": [ "pypsrp>=0.4.0 (Python library)" ], @@ -3061,6 +3078,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.ssh", "short_description": "connect via SSH client binary", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3311,6 +3329,7 @@ ] } }, + "plugin_name": "ansible.builtin.winrm", "requirements": [ "pywinrm (python library)" ], @@ -3362,6 +3381,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -3390,6 +3410,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64decode", "positional": "_input", "short_description": "Decode a base64 string", "version_added": "historical", @@ -3420,6 +3441,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64encode", "positional": "_input", "short_description": "Encode a string as base64", "version_added": "historical", @@ -3453,6 +3475,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.basename", "seealso": [ { "plugin": "ansible.builtin.dirname", @@ -3487,6 +3510,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.bool", "positional": "_input", "short_description": "cast into a boolean", "version_added": "historical", @@ -3516,6 +3540,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.checksum", "positional": "_input", "short_description": "checksum of input data", "version_added": "1.9", @@ -3550,6 +3575,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.combinations", "positional": "_input, set_size", "short_description": "combinations from the elements of a list", "version_added": "historical", @@ -3603,6 +3629,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.combine", "positional": "_input, _dicts", "short_description": "combine two dictionaries", "version_added": "2.0", @@ -3680,6 +3707,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.comment", "positional": "_input, style", "short_description": "comment out a string", "version_added": "historical", @@ -3711,6 +3739,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.commonpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3762,6 +3791,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dict2items", "positional": "_input, key_name, value_name", "seealso": [ { @@ -3805,6 +3835,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.difference", "seealso": [ { "plugin": "ansible.builtin.intersect", @@ -3855,6 +3886,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.dirname", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3890,6 +3922,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.expanduser", "short_description": "Returns a path with C(~) translation.", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3919,6 +3952,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.expandvars", "short_description": "expand environment variables", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3960,6 +3994,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.extract", "positional": "_input, container, morekeys", "short_description": "extract a value based on an index or key", "version_added": "2.1", @@ -3990,6 +4025,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.fileglob", "positional": "_input", "short_description": "explode a path glob to matching files" }, @@ -4027,6 +4063,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.flatten", "positional": "_input, levels, skip_nulls", "short_description": "flatten lists within a list", "version_added": "2.5", @@ -4060,6 +4097,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_json", "short_description": "Convert JSON string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4092,6 +4130,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml", "short_description": "Convert YAML string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4126,6 +4165,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml_all", "short_description": "Convert a series of YAML documents into a variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4162,6 +4202,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.hash", "positional": "_input", "short_description": "hash of input data", "version_added": "1.9", @@ -4211,6 +4252,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.human_readable", "positional": "_input, isbits, unit", "short_description": "Make bytes/bits human-readable", "version_added": "historical", @@ -4259,6 +4301,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.human_to_bytes", "positional": "_input, default_unit, isbits", "short_description": "Get bytes from string", "version_added": "historical", @@ -4295,6 +4338,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.intersect", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -4356,6 +4400,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.items2dict", "positional": "_input, key_name, value_name", "seealso": [ { @@ -4400,6 +4445,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.log", "positional": "_input, base", "short_description": "log of (math operation)", "version_added": "1.9", @@ -4434,6 +4480,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.mandatory", "positional": "_input", "short_description": "make a variable's existence mandatory", "version_added": "historical", @@ -4467,6 +4514,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.md5", "positional": "_input", "short_description": "MD5 hash of input data", "version_added": "historical", @@ -4497,6 +4545,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.normpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -4558,6 +4607,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.password_hash", "positional": "_input", "short_description": "convert input password into password_hash", "version_added": "historical", @@ -4590,6 +4640,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.path_join", "positional": "_input", "short_description": "Join one or more path components", "version_added": "2.10", @@ -4625,6 +4676,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.permutations", "positional": "_input, list_size", "short_description": "permutations from the elements of a list", "version_added": "historical", @@ -4662,6 +4714,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.pow", "positional": "_input, _power", "short_description": "power of (math operation)", "version_added": "1.9", @@ -4705,6 +4758,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.product", "positional": "_input, _additional_lists, repeat", "short_description": "cartesian product of lists", "version_added": "historical", @@ -4738,6 +4792,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.quote", "positional": "_input", "short_description": "shell quoting", "version_added": "2.10", @@ -4780,6 +4835,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.random", "positional": "_input, start, step, seed", "short_description": "random number or list item", "version_added": "2.6", @@ -4811,6 +4867,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.realpath", "short_description": "Turn path into real path", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -4851,6 +4908,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.regex_escape", "positional": "_input, re_type", "short_description": "escape regex chars", "version_added": "2.8", @@ -4894,6 +4952,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_findall", "positional": "_input, _regex", "short_description": "extract all regex matches from string", "version_added": "2.0", @@ -4961,6 +5020,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_replace", "positional": "_input, _regex_match, _regex_replace", "short_description": "replace a string via regex", "version_added": "2.0", @@ -5007,6 +5067,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_search", "positional": "_input, _regex", "short_description": "extract regex match from string", "version_added": "2.0", @@ -5048,6 +5109,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.rekey_on_member", "positional": "_input, '_key', duplicates", "short_description": "Rekey a list of dicts into a dict using a member", "version_added": "2.13", @@ -5082,6 +5144,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.relpath", "positional": "_input, start", "short_description": "Make a path relative", "version_added": "1.7", @@ -5116,6 +5179,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.root", "positional": "_input, base", "short_description": "root of (math operation)", "version_added": "1.9", @@ -5149,6 +5213,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.sha1", "positional": "_input", "short_description": "SHA-1 hash of input data", "version_added": "historical", @@ -5183,6 +5248,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.shuffle", "positional": "_input", "short_description": "randomize a list", "version_added": "2.6", @@ -5221,6 +5287,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.split", "positional": "_input, _split_string", "short_description": "split a string into a list", "version_added": 2.11, @@ -5252,6 +5319,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.splitext", "positional": "_input", "short_description": "split a path into root and file extension", "version_added": "2.0", @@ -5294,15 +5362,18 @@ "utc": { "default": false, "description": "Whether time supplied is in UTC.", - "type": "bool" + "type": "bool", + "version_added": "2.14", + "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.strftime", "positional": "_input, second, utc", "short_description": "date formating", "version_added": "2.4", "version_added_collection": "ansible.builtin" }, - "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(1441357287) }} # => 2015-09-04\n", + "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(seconds=1441357287, utc=true) }} # => 2015-09-04\n", "metadata": null, "return": { "_value": { @@ -5337,6 +5408,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.subelements", "positional": "_input, _subelement, skip_missing", "short_description": "returns a product of a list and its elements", "version_added": "2.7", @@ -5374,6 +5446,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.symmetric_difference", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5439,6 +5512,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.ternary", "positional": "true_val, false_val", "short_description": "Ternary operation filter", "version_added": "1.9", @@ -5475,6 +5549,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_datetime", "positional": "_input", "short_description": "Get C(datetime) from string", "version_added": "2.4", @@ -5560,6 +5635,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_json", "short_description": "Convert variable to JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5629,6 +5705,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_nice_json", "short_description": "Convert variable to 'nicely formatted' JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5673,6 +5750,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_nice_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5707,6 +5785,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_uuid", "positional": "_input, namespace", "short_description": "namespaced UUID generator", "version_added": "2.9", @@ -5751,6 +5830,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5781,6 +5861,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.type_debug", "short_description": "show input data type", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -5816,6 +5897,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.union", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5863,6 +5945,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.unique", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5920,6 +6003,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.unvault", "positional": "secret", "short_description": "Open an Ansible Vault", "version_added": "2.12", @@ -5950,6 +6034,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urldecode", "positional": "_input", "short_description": "Decode percent-encoded sequences", "version_added": "2.4", @@ -5996,6 +6081,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urlsplit", "positional": "_input, query", "short_description": "get components from URL", "version_added": "2.4", @@ -6054,6 +6140,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.vault", "positional": "secret", "short_description": "vault your secrets", "version_added": "2.12", @@ -6084,6 +6171,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_basename", "seealso": [ { "plugin": "ansible.builtin.win_dirname", @@ -6119,6 +6207,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_dirname", "seealso": [ { "plugin": "ansible.builtin.win_basename", @@ -6154,6 +6243,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_splitdrive", "short_description": "Split a Windows path by the drive letter", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -6196,6 +6286,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.zip", "positional": "_input, _additional_lists", "short_description": "combine list elements", "version_added": "2.3", @@ -6240,6 +6331,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.zip_longest", "positional": "_input, _additional_lists", "short_description": "combine list elements, with filler", "version_added": "2.3", @@ -6295,6 +6387,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -6334,6 +6427,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -6359,6 +6453,7 @@ ], "filename": "/ansible/plugins/inventory/advanced_host_list.py", "name": "advanced_host_list", + "plugin_name": "ansible.builtin.advanced_host_list", "short_description": "Parses a 'host list' with ranges", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6379,6 +6474,7 @@ ], "filename": "/ansible/plugins/inventory/auto.py", "name": "auto", + "plugin_name": "ansible.builtin.auto", "short_description": "Loads and executes an inventory plugin specified in a YAML config", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -6519,6 +6615,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.constructed", "short_description": "Uses Jinja2 to construct vars and groups based on existing inventory.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6560,6 +6657,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.generator", "short_description": "Uses Jinja2 to construct hosts and groups from patterns", "version_added": "2.6", "version_added_collection": "ansible.builtin" @@ -6577,6 +6675,7 @@ ], "filename": "/ansible/plugins/inventory/host_list.py", "name": "host_list", + "plugin_name": "ansible.builtin.host_list", "short_description": "Parses a 'host list' string", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6607,6 +6706,7 @@ "Enabled in configuration by default.", "Consider switching to YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." ], + "plugin_name": "ansible.builtin.ini", "short_description": "Uses an Ansible INI file as inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6650,6 +6750,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "short_description": "Executes an inventory script that returns JSON", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6670,6 +6771,7 @@ "notes": [ "Requires one of the following python libraries: 'toml', 'tomli', or 'tomllib'\n" ], + "plugin_name": "ansible.builtin.toml", "short_description": "Uses a specific TOML file as an inventory source.", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -6724,6 +6826,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.yaml", "short_description": "Uses a specific YAML file as an inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6746,6 +6849,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -6770,7 +6874,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -6791,7 +6896,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -6800,7 +6906,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -6810,7 +6917,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -6822,7 +6930,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6834,7 +6943,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6846,7 +6956,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -6858,7 +6969,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -6870,7 +6982,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -6888,7 +7001,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -6900,7 +7014,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -6912,7 +7027,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -6924,7 +7040,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -6936,7 +7053,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -6945,7 +7063,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6956,7 +7075,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -6967,7 +7087,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -6979,7 +7100,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -6991,7 +7113,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -7009,7 +7132,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -7075,7 +7199,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -7087,7 +7212,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -7096,7 +7222,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -7105,7 +7232,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -7126,7 +7254,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -7138,7 +7267,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -7150,7 +7280,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -7160,7 +7291,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -7178,7 +7310,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -7190,7 +7323,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -7217,7 +7351,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -7229,7 +7364,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -7247,7 +7383,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -7268,7 +7405,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -7298,7 +7436,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -7319,7 +7458,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -7331,7 +7471,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -7340,7 +7481,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -7352,7 +7494,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -7381,7 +7524,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -7451,6 +7595,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.config", "short_description": "Display the 'resolved' Ansible option values.", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -7511,6 +7656,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.csvfile", "seealso": [ { "description": "Search paths used for relative files.", @@ -7549,6 +7695,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.dict", "short_description": "returns key/value pair items from dictionaries", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -7591,6 +7738,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.env", "short_description": "Read the value of environment variables", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7637,6 +7785,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "description": "Search paths used for relative files.", @@ -7680,6 +7829,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.fileglob", "seealso": [ { "description": "Search paths used for relative files.", @@ -7745,6 +7895,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.first_found", "seealso": [ { "description": "Search paths used for relative paths/files.", @@ -7783,6 +7934,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.indexed_items", "short_description": "rewrites lists to return 'indexed items'", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7862,6 +8014,7 @@ "description": "Type of the file. 'properties' refers to the Java properties files." } }, + "plugin_name": "ansible.builtin.ini", "seealso": [ { "description": "Search paths used for relative files.", @@ -7899,6 +8052,7 @@ "notes": [ "this is only worth for 'hostname patterns' it is easier to loop over the group/group_names variables otherwise." ], + "plugin_name": "ansible.builtin.inventory_hostnames", "short_description": "list of inventory hosts matching a host pattern", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7932,6 +8086,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.items", "short_description": "list of items", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -7967,6 +8122,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.lines", "short_description": "read lines from command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7992,6 +8148,7 @@ ], "filename": "/ansible/plugins/lookup/list.py", "name": "list", + "plugin_name": "ansible.builtin.list", "short_description": "simply returns what it is given.", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -8022,6 +8179,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.nested", "short_description": "composes a list with nested elements of other lists", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8121,6 +8279,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.password", "short_description": "retrieve or generate a random password, stored in a file", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8158,6 +8317,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.pipe", "short_description": "read output from a command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -8184,6 +8344,7 @@ ], "filename": "/ansible/plugins/lookup/random_choice.py", "name": "random_choice", + "plugin_name": "ansible.builtin.random_choice", "short_description": "return random element from list", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8237,6 +8398,7 @@ "type": "integer" } }, + "plugin_name": "ansible.builtin.sequence", "short_description": "generate a list based on a number sequence", "version_added": "1.0", "version_added_collection": "ansible.builtin" @@ -8276,6 +8438,7 @@ ] } }, + "plugin_name": "ansible.builtin.subelements", "short_description": "traverse nested key from a list of dictionaries", "version_added": "1.4", "version_added_collection": "ansible.builtin" @@ -8358,6 +8521,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "description": "Search paths used for relative templates.", @@ -8396,6 +8560,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.together", "short_description": "merges lists into synchronized list", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -8428,6 +8593,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.unvault", "seealso": [ { "description": "Search paths used for relative files.", @@ -8769,6 +8935,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.url", "short_description": "return contents from URL", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -8798,6 +8965,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.varnames", "short_description": "Lookup matching variable names", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -8834,6 +9002,7 @@ ] } }, + "plugin_name": "ansible.builtin.vars", "short_description": "Lookup templated value of variables", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -8868,6 +9037,7 @@ "type": "list" } }, + "plugin_name": "ext.col.bar", "short_description": "Move O(_terms) to RV(_raw)", "version_added": "1.0.0", "version_added_collection": "ext.col" @@ -8906,6 +9076,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -9034,6 +9205,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.add_host", "seealso": [ { "module": "ansible.builtin.group_by" @@ -9339,6 +9511,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9474,6 +9647,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.apt_key", "requirements": [ "gpg" ], @@ -9657,6 +9831,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt_repository", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9919,6 +10094,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.assemble", "seealso": [ { "module": "ansible.builtin.copy" @@ -10035,6 +10211,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.assert", "seealso": [ { "module": "ansible.builtin.debug" @@ -10120,6 +10297,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.async_status", "seealso": [ { "description": "Detailed information on how to use asynchronous actions and polling.", @@ -10431,6 +10609,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.blockinfile", "short_description": "Insert/update/remove a text block surrounded by marker lines", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -10571,6 +10750,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.command", "seealso": [ { "module": "ansible.builtin.raw" @@ -10932,6 +11112,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.copy", "seealso": [ { "module": "ansible.builtin.assemble" @@ -11220,6 +11401,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.cron", "requirements": [ "cron (any 'vixie cron' conformant variant, like cronie)" ], @@ -11399,6 +11581,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.deb822_repository", "requirements": [ "python3-debian / python-debian" ], @@ -11525,6 +11708,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.debconf", "requirements": [ "debconf", "debconf-utils" @@ -11622,6 +11806,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.debug", "seealso": [ { "module": "ansible.builtin.assert" @@ -11718,6 +11903,17 @@ "version_added": "2.4", "version_added_collection": "ansible.builtin" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11884,9 +12080,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool", @@ -11993,6 +12189,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dnf", "requirements": [ "python >= 2.6", "python-dnf", @@ -12072,6 +12269,17 @@ ], "type": "bool" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -12217,9 +12425,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool" @@ -12293,6 +12501,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.dnf5", "requirements": [ "python3", "python3-libdnf5" @@ -12386,6 +12595,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.dpkg_selections", "short_description": "Dpkg package selection selections", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -12477,6 +12687,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.expect", "requirements": [ "python >= 2.6", "pexpect >= 3.3" @@ -12565,6 +12776,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.fail", "seealso": [ { "module": "ansible.builtin.assert" @@ -12693,6 +12905,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.fetch", "seealso": [ { "module": "ansible.builtin.copy" @@ -12936,6 +13149,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "module": "ansible.builtin.assemble" @@ -13179,6 +13393,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.find", "seealso": [ { "module": "ansible.windows.win_find" @@ -13301,6 +13516,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.gather_facts", "short_description": "Gathers facts about remote hosts", "version_added": 2.8, "version_added_collection": "ansible.builtin" @@ -13638,6 +13854,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.get_url", "seealso": [ { "module": "ansible.builtin.uri" @@ -13834,6 +14051,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.getent", "short_description": "A wrapper to the unix getent utility", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -14114,6 +14332,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.git", "requirements": [ "git>=1.7.1 (the command line tool)" ], @@ -14254,6 +14473,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.group", "requirements": [ "groupadd", "groupdel", @@ -14401,6 +14621,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.group_by", "seealso": [ { "module": "ansible.builtin.add_host" @@ -14486,6 +14707,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.hostname", "requirements": [ "hostname" ], @@ -14588,6 +14810,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_playbook", "seealso": [ { "module": "ansible.builtin.import_role" @@ -14766,6 +14989,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.import_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14891,6 +15115,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15074,6 +15299,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.include_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15202,6 +15428,7 @@ ] } }, + "plugin_name": "ansible.builtin.include_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15411,6 +15638,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.include_vars", "seealso": [ { "module": "ansible.builtin.set_fact" @@ -15704,7 +15932,7 @@ "match_set": { "description": [ "Specifies a set name that can be defined by ipset.", - "Must be used together with the match_set_flags parameter.", + "Must be used together with the O(match_set_flags) parameter.", "When the V(!) argument is prepended then it inverts the rule.", "Uses the iptables set extension." ], @@ -15717,12 +15945,15 @@ "src", "dst", "src,dst", - "dst,src" + "dst,src", + "dst,dst", + "src,src" ], "description": [ "Specifies the necessary flags for the match_set parameter.", - "Must be used together with the match_set parameter.", - "Uses the iptables set extension." + "Must be used together with the O(match_set) parameter.", + "Uses the iptables set extension.", + "Choices V(dst,dst) and V(src,src) added in version 2.17." ], "type": "str", "version_added": "2.11", @@ -15957,6 +16188,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.iptables", "short_description": "Modify iptables rules", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -16048,6 +16280,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.known_hosts", "short_description": "Add or remove a host from the C(known_hosts) file", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -16330,6 +16563,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.lineinfile", "seealso": [ { "module": "ansible.builtin.blockinfile" @@ -16472,6 +16706,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.meta", "seealso": [ { "module": "ansible.builtin.assert" @@ -16564,6 +16799,7 @@ ] } }, + "plugin_name": "ansible.builtin.package", "requirements": [ "Whatever is required for the package plugins specific for each system." ], @@ -16647,6 +16883,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.package_facts", "requirements": [ "For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'.", "For Debian-based systems C(python-apt) package must be installed on targeted hosts.", @@ -16785,6 +17022,7 @@ ] } }, + "plugin_name": "ansible.builtin.pause", "short_description": "Pause playbook execution", "version_added": "0.8", "version_added_collection": "ansible.builtin" @@ -16871,6 +17109,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.ping", "seealso": [ { "module": "ansible.netcommon.net_ping" @@ -17049,6 +17288,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.pip", "requirements": [ "pip", "virtualenv", @@ -17158,6 +17398,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.raw", "seealso": [ { "module": "ansible.builtin.command" @@ -17314,6 +17555,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.reboot", "seealso": [ { "module": "ansible.windows.win_reboot" @@ -17385,7 +17627,8 @@ "If specified, only content after this match will be replaced/removed.", "Can be used in combination with O(before).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17417,7 +17660,8 @@ "If specified, only content before this match will be replaced/removed.", "Can be used in combination with O(after).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17552,11 +17796,12 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.replace", "short_description": "Replace all instances of a particular string in a file using a back-referenced regular expression", "version_added": "1.6", "version_added_collection": "ansible.builtin" }, - "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: ''\n before: ''\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", + "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression from the beginning of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n# Note (?m) which turns on MULTILINE mode so ^ matches any line's beginning\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: '(?m)^'\n before: '(?m)^'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", "metadata": null, "return": null }, @@ -17624,6 +17869,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.rpm_key", "short_description": "Adds or removes a gpg key from the rpm db", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -17741,6 +17987,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "seealso": [ { "module": "ansible.builtin.shell" @@ -17894,6 +18141,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.service", "seealso": [ { "module": "ansible.windows.win_service" @@ -17942,6 +18190,7 @@ "When accessing the RV(ansible_facts.services) facts collected by this module, it is recommended to not use \"dot notation\" because services can have a C(-) character in their name which would result in invalid \"dot notation\", such as C(ansible_facts.services.zuul-gateway). It is instead recommended to using the string value of the service name as the key in order to obtain the fact data value like C(ansible_facts.services['zuul-gateway'])", "AIX SRC was added in version 2.11." ], + "plugin_name": "ansible.builtin.service_facts", "requirements": [ "Any of the following supported init systems: systemd, sysv, upstart, openrc, AIX SRC" ], @@ -18113,6 +18362,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.set_fact", "seealso": [ { "module": "ansible.builtin.include_vars" @@ -18232,6 +18482,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.set_stats", "short_description": "Define and display stats for the current ansible run", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -18321,6 +18572,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.setup", "short_description": "Gathers facts about remote hosts", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -18436,6 +18688,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.shell", "seealso": [ { "module": "ansible.builtin.command" @@ -18570,6 +18823,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.slurp", "seealso": [ { "module": "ansible.builtin.fetch" @@ -18709,6 +18963,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.stat", "seealso": [ { "module": "ansible.builtin.file" @@ -19144,6 +19399,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.subversion", "requirements": [ "subversion (the command line tool with C(svn) entrypoint)" ], @@ -19285,6 +19541,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.systemd_service", "requirements": [ "A system managed by systemd." ], @@ -19526,6 +19783,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.sysvinit", "requirements": [ "That the service managed has a corresponding init script." ], @@ -19632,6 +19890,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.tempfile", "seealso": [ { "module": "ansible.builtin.file" @@ -19959,6 +20218,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "module": "ansible.builtin.copy" @@ -20312,6 +20572,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.unarchive", "seealso": [ { "module": "community.general.archive" @@ -20803,6 +21064,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.uri", "seealso": [ { "module": "ansible.builtin.get_url" @@ -21263,6 +21525,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.user", "seealso": [ { "module": "ansible.posix.authorized_key" @@ -21465,6 +21728,7 @@ ] } }, + "plugin_name": "ansible.builtin.validate_argument_spec", "short_description": "Validate role argument specs.", "version_added": "2.11", "version_added_collection": "ansible.builtin" @@ -21667,6 +21931,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for", "seealso": [ { "module": "ansible.builtin.wait_for_connection" @@ -21788,6 +22053,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for_connection", "seealso": [ { "module": "ansible.builtin.wait_for" @@ -22311,6 +22577,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.yum_repository", "short_description": "Add or remove YUM repositories", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -22360,6 +22627,7 @@ "type": "list" } }, + "plugin_name": "ext.col.foo", "short_description": "A test module" }, "examples": null, @@ -22448,6 +22716,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo", "requirements": "Foo.", "seealso": { "foo": "bar" @@ -22537,6 +22806,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo2", "requirements": "Foo.", "seealso": [ { @@ -22640,6 +22910,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo3", "requirements": "Foo.", "short_description": "Foo III" }, @@ -22748,6 +23019,7 @@ ] } }, + "plugin_name": "ns.col2.foo4", "short_description": "Markup reference linting test" }, "examples": null, @@ -22827,6 +23099,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -22913,6 +23186,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -22975,6 +23249,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -23050,6 +23325,7 @@ "version_added_collection": "ns2.flatcol" } }, + "plugin_name": "ns2.flatcol.foo", "short_description": "Do some foo O(bar)", "version_added": "2.0.0", "version_added_collection": "ns2.flatcol" @@ -23091,6 +23367,7 @@ "type": "str" } }, + "plugin_name": "ns2.flatcol.sub.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.flatcol.foo2:\n bar: foo\n", @@ -23272,6 +23549,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.cmd", "short_description": "Windows Command Prompt", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -23355,6 +23633,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.powershell", "short_description": "Windows PowerShell", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23543,6 +23822,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.sh", "short_description": "POSIX shell (/bin/sh)", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23592,6 +23872,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -23611,6 +23892,7 @@ ], "filename": "/ansible/plugins/strategy/debug.py", "name": "debug", + "plugin_name": "ansible.builtin.debug", "short_description": "Executes tasks in interactive debug session.", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -23629,6 +23911,7 @@ ], "filename": "/ansible/plugins/strategy/free.py", "name": "free", + "plugin_name": "ansible.builtin.free", "short_description": "Executes tasks without waiting for all hosts", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23646,6 +23929,7 @@ ], "filename": "/ansible/plugins/strategy/host_pinned.py", "name": "host_pinned", + "plugin_name": "ansible.builtin.host_pinned", "short_description": "Executes tasks on each host without interruption", "version_added": "2.7", "version_added_collection": "ansible.builtin" @@ -23666,6 +23950,7 @@ "notes": [ "This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0." ], + "plugin_name": "ansible.builtin.linear", "short_description": "Executes tasks in a linear fashion", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23683,6 +23968,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -23713,6 +23999,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23744,6 +24031,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.all", "short_description": "are all conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23775,6 +24063,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.any", "short_description": "is any conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23808,6 +24097,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.change", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23841,6 +24131,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.changed", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23876,6 +24167,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.contains", "short_description": "does the list contain this element", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23904,6 +24196,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.directory", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23933,11 +24226,12 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.exists", "short_description": "does the path exist, follow symlinks", "version_added": "2.5", "version_added_collection": "ansible.builtin" }, - "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exist }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", + "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exists }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", "metadata": null, "return": { "_value": { @@ -23967,6 +24261,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failed", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24001,6 +24296,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failure", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24036,6 +24332,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.falsy", "short_description": "Pythonic false", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24067,6 +24364,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24097,6 +24395,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.finished", "short_description": "Did async task finish", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24130,6 +24429,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24158,6 +24458,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_dir", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24189,6 +24490,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24220,6 +24522,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24251,6 +24554,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24286,6 +24590,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24318,6 +24623,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.isnan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24357,6 +24663,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issubset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24396,6 +24703,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issuperset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24427,6 +24735,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24456,6 +24765,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link_exists", "short_description": "does the path exist, no follow", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24500,6 +24810,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.match", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is match(\"https://example.com/users/.*/resources\")\nnomatch: url is match(\"/users/.*/resources\")\n", @@ -24529,6 +24840,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24561,6 +24873,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.nan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24591,6 +24904,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.reachable", "short_description": "Task did not end due to unreachable host", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24644,6 +24958,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.regex", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is regex(\"example\\.com/\\w+/foo\")\n", @@ -24677,6 +24992,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24721,6 +25037,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.search", "short_description": "Does string match a regular expression" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is search(\"https://example.com/users/.*/resources\")\nalsomatch: url is search(\"users/.*/resources\")\n", @@ -24752,6 +25069,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skip", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24785,6 +25103,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skipped", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24815,6 +25134,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.started", "short_description": "Was async task started", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24854,6 +25174,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.subset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24888,6 +25209,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.succeeded", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24922,6 +25244,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.success", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24956,6 +25279,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.successful", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24995,6 +25319,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.superset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -25030,6 +25355,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.truthy", "short_description": "Pythonic true", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -25060,6 +25386,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.unreachable", "short_description": "Did task end due to the host was unreachable", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -25095,6 +25422,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.uri", "short_description": "is the string a valid URI", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25129,6 +25457,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.url", "short_description": "is the string a valid URL", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25158,6 +25487,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.urn", "short_description": "is the string a valid URN", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25187,6 +25517,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.vault_encrypted", "short_description": "Is this an encrypted vault", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -25271,6 +25602,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25355,6 +25687,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version_compare", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25386,6 +25719,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25417,6 +25751,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -25446,6 +25781,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25525,6 +25861,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.host_group_vars", "requirements": [ "Enabled in configuration" ], @@ -25573,6 +25910,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-all.json b/tests/functional/ansible-doc-cache-all.json index 52f08f3a..0a8533e0 100644 --- a/tests/functional/ansible-doc-cache-all.json +++ b/tests/functional/ansible-doc-cache-all.json @@ -115,6 +115,7 @@ ] } }, + "plugin_name": "ansible.builtin.runas", "short_description": "Run As user", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -294,6 +295,7 @@ ] } }, + "plugin_name": "ansible.builtin.su", "short_description": "Substitute User", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -447,6 +449,7 @@ ] } }, + "plugin_name": "ansible.builtin.sudo", "short_description": "Substitute User DO", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -586,6 +589,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -655,6 +659,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.jsonfile", "short_description": "JSON formatted files.", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -674,6 +679,7 @@ ], "filename": "/ansible/plugins/cache/memory.py", "name": "memory", + "plugin_name": "ansible.builtin.memory", "short_description": "RAM backed, non persistent", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -715,6 +721,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -918,6 +925,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.default", "requirements": [ "set as stdout in configuration" ], @@ -1039,6 +1047,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.junit", "requirements": [ "enable in configuration" ], @@ -1112,6 +1121,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.minimal", "short_description": "minimal Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1129,6 +1139,7 @@ ], "filename": "/ansible/plugins/callback/oneline.py", "name": "oneline", + "plugin_name": "ansible.builtin.oneline", "short_description": "oneline Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1167,6 +1178,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.tree", "requirements": [ "invoked in the command line" ], @@ -1193,6 +1205,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -1213,6 +1226,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -1264,6 +1278,7 @@ ] } }, + "plugin_name": "ansible.builtin.local", "short_description": "execute on controller", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -1827,6 +1842,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.paramiko_ssh", "short_description": "Run tasks via Python SSH (paramiko)", "version_added": "0.1", "version_added_collection": "ansible.builtin" @@ -2305,6 +2321,7 @@ ] } }, + "plugin_name": "ansible.builtin.psrp", "requirements": [ "pypsrp>=0.4.0 (Python library)" ], @@ -3061,6 +3078,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.ssh", "short_description": "connect via SSH client binary", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3311,6 +3329,7 @@ ] } }, + "plugin_name": "ansible.builtin.winrm", "requirements": [ "pywinrm (python library)" ], @@ -3362,6 +3381,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -3390,6 +3410,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64decode", "positional": "_input", "short_description": "Decode a base64 string", "version_added": "historical", @@ -3420,6 +3441,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64encode", "positional": "_input", "short_description": "Encode a string as base64", "version_added": "historical", @@ -3453,6 +3475,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.basename", "seealso": [ { "plugin": "ansible.builtin.dirname", @@ -3487,6 +3510,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.bool", "positional": "_input", "short_description": "cast into a boolean", "version_added": "historical", @@ -3516,6 +3540,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.checksum", "positional": "_input", "short_description": "checksum of input data", "version_added": "1.9", @@ -3550,6 +3575,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.combinations", "positional": "_input, set_size", "short_description": "combinations from the elements of a list", "version_added": "historical", @@ -3603,6 +3629,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.combine", "positional": "_input, _dicts", "short_description": "combine two dictionaries", "version_added": "2.0", @@ -3680,6 +3707,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.comment", "positional": "_input, style", "short_description": "comment out a string", "version_added": "historical", @@ -3711,6 +3739,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.commonpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3762,6 +3791,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dict2items", "positional": "_input, key_name, value_name", "seealso": [ { @@ -3805,6 +3835,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.difference", "seealso": [ { "plugin": "ansible.builtin.intersect", @@ -3855,6 +3886,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.dirname", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3890,6 +3922,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.expanduser", "short_description": "Returns a path with C(~) translation.", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3919,6 +3952,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.expandvars", "short_description": "expand environment variables", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3960,6 +3994,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.extract", "positional": "_input, container, morekeys", "short_description": "extract a value based on an index or key", "version_added": "2.1", @@ -3990,6 +4025,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.fileglob", "positional": "_input", "short_description": "explode a path glob to matching files" }, @@ -4027,6 +4063,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.flatten", "positional": "_input, levels, skip_nulls", "short_description": "flatten lists within a list", "version_added": "2.5", @@ -4060,6 +4097,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_json", "short_description": "Convert JSON string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4092,6 +4130,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml", "short_description": "Convert YAML string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4126,6 +4165,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml_all", "short_description": "Convert a series of YAML documents into a variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4162,6 +4202,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.hash", "positional": "_input", "short_description": "hash of input data", "version_added": "1.9", @@ -4211,6 +4252,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.human_readable", "positional": "_input, isbits, unit", "short_description": "Make bytes/bits human-readable", "version_added": "historical", @@ -4259,6 +4301,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.human_to_bytes", "positional": "_input, default_unit, isbits", "short_description": "Get bytes from string", "version_added": "historical", @@ -4295,6 +4338,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.intersect", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -4356,6 +4400,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.items2dict", "positional": "_input, key_name, value_name", "seealso": [ { @@ -4400,6 +4445,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.log", "positional": "_input, base", "short_description": "log of (math operation)", "version_added": "1.9", @@ -4434,6 +4480,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.mandatory", "positional": "_input", "short_description": "make a variable's existence mandatory", "version_added": "historical", @@ -4467,6 +4514,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.md5", "positional": "_input", "short_description": "MD5 hash of input data", "version_added": "historical", @@ -4497,6 +4545,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.normpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -4558,6 +4607,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.password_hash", "positional": "_input", "short_description": "convert input password into password_hash", "version_added": "historical", @@ -4590,6 +4640,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.path_join", "positional": "_input", "short_description": "Join one or more path components", "version_added": "2.10", @@ -4625,6 +4676,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.permutations", "positional": "_input, list_size", "short_description": "permutations from the elements of a list", "version_added": "historical", @@ -4662,6 +4714,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.pow", "positional": "_input, _power", "short_description": "power of (math operation)", "version_added": "1.9", @@ -4705,6 +4758,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.product", "positional": "_input, _additional_lists, repeat", "short_description": "cartesian product of lists", "version_added": "historical", @@ -4738,6 +4792,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.quote", "positional": "_input", "short_description": "shell quoting", "version_added": "2.10", @@ -4780,6 +4835,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.random", "positional": "_input, start, step, seed", "short_description": "random number or list item", "version_added": "2.6", @@ -4811,6 +4867,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.realpath", "short_description": "Turn path into real path", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -4851,6 +4908,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.regex_escape", "positional": "_input, re_type", "short_description": "escape regex chars", "version_added": "2.8", @@ -4894,6 +4952,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_findall", "positional": "_input, _regex", "short_description": "extract all regex matches from string", "version_added": "2.0", @@ -4961,6 +5020,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_replace", "positional": "_input, _regex_match, _regex_replace", "short_description": "replace a string via regex", "version_added": "2.0", @@ -5007,6 +5067,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_search", "positional": "_input, _regex", "short_description": "extract regex match from string", "version_added": "2.0", @@ -5048,6 +5109,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.rekey_on_member", "positional": "_input, '_key', duplicates", "short_description": "Rekey a list of dicts into a dict using a member", "version_added": "2.13", @@ -5082,6 +5144,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.relpath", "positional": "_input, start", "short_description": "Make a path relative", "version_added": "1.7", @@ -5116,6 +5179,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.root", "positional": "_input, base", "short_description": "root of (math operation)", "version_added": "1.9", @@ -5149,6 +5213,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.sha1", "positional": "_input", "short_description": "SHA-1 hash of input data", "version_added": "historical", @@ -5183,6 +5248,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.shuffle", "positional": "_input", "short_description": "randomize a list", "version_added": "2.6", @@ -5221,6 +5287,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.split", "positional": "_input, _split_string", "short_description": "split a string into a list", "version_added": 2.11, @@ -5252,6 +5319,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.splitext", "positional": "_input", "short_description": "split a path into root and file extension", "version_added": "2.0", @@ -5294,15 +5362,18 @@ "utc": { "default": false, "description": "Whether time supplied is in UTC.", - "type": "bool" + "type": "bool", + "version_added": "2.14", + "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.strftime", "positional": "_input, second, utc", "short_description": "date formating", "version_added": "2.4", "version_added_collection": "ansible.builtin" }, - "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(1441357287) }} # => 2015-09-04\n", + "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(seconds=1441357287, utc=true) }} # => 2015-09-04\n", "metadata": null, "return": { "_value": { @@ -5337,6 +5408,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.subelements", "positional": "_input, _subelement, skip_missing", "short_description": "returns a product of a list and its elements", "version_added": "2.7", @@ -5374,6 +5446,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.symmetric_difference", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5439,6 +5512,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.ternary", "positional": "true_val, false_val", "short_description": "Ternary operation filter", "version_added": "1.9", @@ -5475,6 +5549,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_datetime", "positional": "_input", "short_description": "Get C(datetime) from string", "version_added": "2.4", @@ -5560,6 +5635,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_json", "short_description": "Convert variable to JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5629,6 +5705,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_nice_json", "short_description": "Convert variable to 'nicely formatted' JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5673,6 +5750,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_nice_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5707,6 +5785,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_uuid", "positional": "_input, namespace", "short_description": "namespaced UUID generator", "version_added": "2.9", @@ -5751,6 +5830,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5781,6 +5861,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.type_debug", "short_description": "show input data type", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -5816,6 +5897,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.union", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5863,6 +5945,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.unique", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5920,6 +6003,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.unvault", "positional": "secret", "short_description": "Open an Ansible Vault", "version_added": "2.12", @@ -5950,6 +6034,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urldecode", "positional": "_input", "short_description": "Decode percent-encoded sequences", "version_added": "2.4", @@ -5996,6 +6081,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urlsplit", "positional": "_input, query", "short_description": "get components from URL", "version_added": "2.4", @@ -6054,6 +6140,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.vault", "positional": "secret", "short_description": "vault your secrets", "version_added": "2.12", @@ -6084,6 +6171,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_basename", "seealso": [ { "plugin": "ansible.builtin.win_dirname", @@ -6119,6 +6207,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_dirname", "seealso": [ { "plugin": "ansible.builtin.win_basename", @@ -6154,6 +6243,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_splitdrive", "short_description": "Split a Windows path by the drive letter", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -6196,6 +6286,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.zip", "positional": "_input, _additional_lists", "short_description": "combine list elements", "version_added": "2.3", @@ -6240,6 +6331,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.zip_longest", "positional": "_input, _additional_lists", "short_description": "combine list elements, with filler", "version_added": "2.3", @@ -6295,6 +6387,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -6334,6 +6427,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -6359,6 +6453,7 @@ ], "filename": "/ansible/plugins/inventory/advanced_host_list.py", "name": "advanced_host_list", + "plugin_name": "ansible.builtin.advanced_host_list", "short_description": "Parses a 'host list' with ranges", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6379,6 +6474,7 @@ ], "filename": "/ansible/plugins/inventory/auto.py", "name": "auto", + "plugin_name": "ansible.builtin.auto", "short_description": "Loads and executes an inventory plugin specified in a YAML config", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -6519,6 +6615,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.constructed", "short_description": "Uses Jinja2 to construct vars and groups based on existing inventory.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6560,6 +6657,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.generator", "short_description": "Uses Jinja2 to construct hosts and groups from patterns", "version_added": "2.6", "version_added_collection": "ansible.builtin" @@ -6577,6 +6675,7 @@ ], "filename": "/ansible/plugins/inventory/host_list.py", "name": "host_list", + "plugin_name": "ansible.builtin.host_list", "short_description": "Parses a 'host list' string", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6607,6 +6706,7 @@ "Enabled in configuration by default.", "Consider switching to YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." ], + "plugin_name": "ansible.builtin.ini", "short_description": "Uses an Ansible INI file as inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6650,6 +6750,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "short_description": "Executes an inventory script that returns JSON", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6670,6 +6771,7 @@ "notes": [ "Requires one of the following python libraries: 'toml', 'tomli', or 'tomllib'\n" ], + "plugin_name": "ansible.builtin.toml", "short_description": "Uses a specific TOML file as an inventory source.", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -6724,6 +6826,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.yaml", "short_description": "Uses a specific YAML file as an inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6746,6 +6849,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -6770,7 +6874,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -6791,7 +6896,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -6800,7 +6906,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -6810,7 +6917,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -6822,7 +6930,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6834,7 +6943,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6846,7 +6956,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -6858,7 +6969,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -6870,7 +6982,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -6888,7 +7001,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -6900,7 +7014,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -6912,7 +7027,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -6924,7 +7040,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -6936,7 +7053,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -6945,7 +7063,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6956,7 +7075,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -6967,7 +7087,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -6979,7 +7100,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -6991,7 +7113,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -7009,7 +7132,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -7075,7 +7199,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -7087,7 +7212,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -7096,7 +7222,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -7105,7 +7232,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -7126,7 +7254,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -7138,7 +7267,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -7150,7 +7280,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -7160,7 +7291,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -7178,7 +7310,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -7190,7 +7323,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -7217,7 +7351,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -7229,7 +7364,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -7247,7 +7383,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -7268,7 +7405,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -7298,7 +7436,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -7319,7 +7458,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -7331,7 +7471,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -7340,7 +7481,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -7352,7 +7494,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -7381,7 +7524,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -7451,6 +7595,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.config", "short_description": "Display the 'resolved' Ansible option values.", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -7511,6 +7656,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.csvfile", "seealso": [ { "description": "Search paths used for relative files.", @@ -7549,6 +7695,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.dict", "short_description": "returns key/value pair items from dictionaries", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -7591,6 +7738,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.env", "short_description": "Read the value of environment variables", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7637,6 +7785,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "description": "Search paths used for relative files.", @@ -7680,6 +7829,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.fileglob", "seealso": [ { "description": "Search paths used for relative files.", @@ -7745,6 +7895,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.first_found", "seealso": [ { "description": "Search paths used for relative paths/files.", @@ -7783,6 +7934,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.indexed_items", "short_description": "rewrites lists to return 'indexed items'", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7862,6 +8014,7 @@ "description": "Type of the file. 'properties' refers to the Java properties files." } }, + "plugin_name": "ansible.builtin.ini", "seealso": [ { "description": "Search paths used for relative files.", @@ -7899,6 +8052,7 @@ "notes": [ "this is only worth for 'hostname patterns' it is easier to loop over the group/group_names variables otherwise." ], + "plugin_name": "ansible.builtin.inventory_hostnames", "short_description": "list of inventory hosts matching a host pattern", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7932,6 +8086,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.items", "short_description": "list of items", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -7967,6 +8122,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.lines", "short_description": "read lines from command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7992,6 +8148,7 @@ ], "filename": "/ansible/plugins/lookup/list.py", "name": "list", + "plugin_name": "ansible.builtin.list", "short_description": "simply returns what it is given.", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -8022,6 +8179,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.nested", "short_description": "composes a list with nested elements of other lists", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8121,6 +8279,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.password", "short_description": "retrieve or generate a random password, stored in a file", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8158,6 +8317,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.pipe", "short_description": "read output from a command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -8184,6 +8344,7 @@ ], "filename": "/ansible/plugins/lookup/random_choice.py", "name": "random_choice", + "plugin_name": "ansible.builtin.random_choice", "short_description": "return random element from list", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8237,6 +8398,7 @@ "type": "integer" } }, + "plugin_name": "ansible.builtin.sequence", "short_description": "generate a list based on a number sequence", "version_added": "1.0", "version_added_collection": "ansible.builtin" @@ -8276,6 +8438,7 @@ ] } }, + "plugin_name": "ansible.builtin.subelements", "short_description": "traverse nested key from a list of dictionaries", "version_added": "1.4", "version_added_collection": "ansible.builtin" @@ -8358,6 +8521,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "description": "Search paths used for relative templates.", @@ -8396,6 +8560,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.together", "short_description": "merges lists into synchronized list", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -8428,6 +8593,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.unvault", "seealso": [ { "description": "Search paths used for relative files.", @@ -8769,6 +8935,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.url", "short_description": "return contents from URL", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -8798,6 +8965,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.varnames", "short_description": "Lookup matching variable names", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -8834,6 +9002,7 @@ ] } }, + "plugin_name": "ansible.builtin.vars", "short_description": "Lookup templated value of variables", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -8872,6 +9041,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -9000,6 +9170,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.add_host", "seealso": [ { "module": "ansible.builtin.group_by" @@ -9305,6 +9476,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9440,6 +9612,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.apt_key", "requirements": [ "gpg" ], @@ -9623,6 +9796,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt_repository", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9885,6 +10059,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.assemble", "seealso": [ { "module": "ansible.builtin.copy" @@ -10001,6 +10176,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.assert", "seealso": [ { "module": "ansible.builtin.debug" @@ -10086,6 +10262,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.async_status", "seealso": [ { "description": "Detailed information on how to use asynchronous actions and polling.", @@ -10397,6 +10574,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.blockinfile", "short_description": "Insert/update/remove a text block surrounded by marker lines", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -10537,6 +10715,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.command", "seealso": [ { "module": "ansible.builtin.raw" @@ -10898,6 +11077,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.copy", "seealso": [ { "module": "ansible.builtin.assemble" @@ -11186,6 +11366,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.cron", "requirements": [ "cron (any 'vixie cron' conformant variant, like cronie)" ], @@ -11365,6 +11546,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.deb822_repository", "requirements": [ "python3-debian / python-debian" ], @@ -11491,6 +11673,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.debconf", "requirements": [ "debconf", "debconf-utils" @@ -11588,6 +11771,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.debug", "seealso": [ { "module": "ansible.builtin.assert" @@ -11684,6 +11868,17 @@ "version_added": "2.4", "version_added_collection": "ansible.builtin" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11850,9 +12045,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool", @@ -11959,6 +12154,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dnf", "requirements": [ "python >= 2.6", "python-dnf", @@ -12038,6 +12234,17 @@ ], "type": "bool" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -12183,9 +12390,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool" @@ -12259,6 +12466,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.dnf5", "requirements": [ "python3", "python3-libdnf5" @@ -12352,6 +12560,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.dpkg_selections", "short_description": "Dpkg package selection selections", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -12443,6 +12652,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.expect", "requirements": [ "python >= 2.6", "pexpect >= 3.3" @@ -12531,6 +12741,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.fail", "seealso": [ { "module": "ansible.builtin.assert" @@ -12659,6 +12870,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.fetch", "seealso": [ { "module": "ansible.builtin.copy" @@ -12902,6 +13114,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "module": "ansible.builtin.assemble" @@ -13145,6 +13358,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.find", "seealso": [ { "module": "ansible.windows.win_find" @@ -13267,6 +13481,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.gather_facts", "short_description": "Gathers facts about remote hosts", "version_added": 2.8, "version_added_collection": "ansible.builtin" @@ -13604,6 +13819,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.get_url", "seealso": [ { "module": "ansible.builtin.uri" @@ -13800,6 +14016,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.getent", "short_description": "A wrapper to the unix getent utility", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -14080,6 +14297,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.git", "requirements": [ "git>=1.7.1 (the command line tool)" ], @@ -14220,6 +14438,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.group", "requirements": [ "groupadd", "groupdel", @@ -14367,6 +14586,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.group_by", "seealso": [ { "module": "ansible.builtin.add_host" @@ -14452,6 +14672,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.hostname", "requirements": [ "hostname" ], @@ -14554,6 +14775,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_playbook", "seealso": [ { "module": "ansible.builtin.import_role" @@ -14732,6 +14954,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.import_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14857,6 +15080,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15040,6 +15264,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.include_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15168,6 +15393,7 @@ ] } }, + "plugin_name": "ansible.builtin.include_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15377,6 +15603,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.include_vars", "seealso": [ { "module": "ansible.builtin.set_fact" @@ -15670,7 +15897,7 @@ "match_set": { "description": [ "Specifies a set name that can be defined by ipset.", - "Must be used together with the match_set_flags parameter.", + "Must be used together with the O(match_set_flags) parameter.", "When the V(!) argument is prepended then it inverts the rule.", "Uses the iptables set extension." ], @@ -15683,12 +15910,15 @@ "src", "dst", "src,dst", - "dst,src" + "dst,src", + "dst,dst", + "src,src" ], "description": [ "Specifies the necessary flags for the match_set parameter.", - "Must be used together with the match_set parameter.", - "Uses the iptables set extension." + "Must be used together with the O(match_set) parameter.", + "Uses the iptables set extension.", + "Choices V(dst,dst) and V(src,src) added in version 2.17." ], "type": "str", "version_added": "2.11", @@ -15923,6 +16153,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.iptables", "short_description": "Modify iptables rules", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -16014,6 +16245,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.known_hosts", "short_description": "Add or remove a host from the C(known_hosts) file", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -16296,6 +16528,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.lineinfile", "seealso": [ { "module": "ansible.builtin.blockinfile" @@ -16438,6 +16671,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.meta", "seealso": [ { "module": "ansible.builtin.assert" @@ -16530,6 +16764,7 @@ ] } }, + "plugin_name": "ansible.builtin.package", "requirements": [ "Whatever is required for the package plugins specific for each system." ], @@ -16613,6 +16848,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.package_facts", "requirements": [ "For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'.", "For Debian-based systems C(python-apt) package must be installed on targeted hosts.", @@ -16751,6 +16987,7 @@ ] } }, + "plugin_name": "ansible.builtin.pause", "short_description": "Pause playbook execution", "version_added": "0.8", "version_added_collection": "ansible.builtin" @@ -16837,6 +17074,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.ping", "seealso": [ { "module": "ansible.netcommon.net_ping" @@ -17015,6 +17253,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.pip", "requirements": [ "pip", "virtualenv", @@ -17124,6 +17363,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.raw", "seealso": [ { "module": "ansible.builtin.command" @@ -17280,6 +17520,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.reboot", "seealso": [ { "module": "ansible.windows.win_reboot" @@ -17351,7 +17592,8 @@ "If specified, only content after this match will be replaced/removed.", "Can be used in combination with O(before).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17383,7 +17625,8 @@ "If specified, only content before this match will be replaced/removed.", "Can be used in combination with O(after).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17518,11 +17761,12 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.replace", "short_description": "Replace all instances of a particular string in a file using a back-referenced regular expression", "version_added": "1.6", "version_added_collection": "ansible.builtin" }, - "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: ''\n before: ''\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", + "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression from the beginning of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n# Note (?m) which turns on MULTILINE mode so ^ matches any line's beginning\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: '(?m)^'\n before: '(?m)^'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", "metadata": null, "return": null }, @@ -17590,6 +17834,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.rpm_key", "short_description": "Adds or removes a gpg key from the rpm db", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -17707,6 +17952,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "seealso": [ { "module": "ansible.builtin.shell" @@ -17860,6 +18106,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.service", "seealso": [ { "module": "ansible.windows.win_service" @@ -17908,6 +18155,7 @@ "When accessing the RV(ansible_facts.services) facts collected by this module, it is recommended to not use \"dot notation\" because services can have a C(-) character in their name which would result in invalid \"dot notation\", such as C(ansible_facts.services.zuul-gateway). It is instead recommended to using the string value of the service name as the key in order to obtain the fact data value like C(ansible_facts.services['zuul-gateway'])", "AIX SRC was added in version 2.11." ], + "plugin_name": "ansible.builtin.service_facts", "requirements": [ "Any of the following supported init systems: systemd, sysv, upstart, openrc, AIX SRC" ], @@ -18079,6 +18327,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.set_fact", "seealso": [ { "module": "ansible.builtin.include_vars" @@ -18198,6 +18447,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.set_stats", "short_description": "Define and display stats for the current ansible run", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -18287,6 +18537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.setup", "short_description": "Gathers facts about remote hosts", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -18402,6 +18653,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.shell", "seealso": [ { "module": "ansible.builtin.command" @@ -18536,6 +18788,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.slurp", "seealso": [ { "module": "ansible.builtin.fetch" @@ -18675,6 +18928,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.stat", "seealso": [ { "module": "ansible.builtin.file" @@ -19110,6 +19364,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.subversion", "requirements": [ "subversion (the command line tool with C(svn) entrypoint)" ], @@ -19251,6 +19506,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.systemd_service", "requirements": [ "A system managed by systemd." ], @@ -19492,6 +19748,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.sysvinit", "requirements": [ "That the service managed has a corresponding init script." ], @@ -19598,6 +19855,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.tempfile", "seealso": [ { "module": "ansible.builtin.file" @@ -19925,6 +20183,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "module": "ansible.builtin.copy" @@ -20278,6 +20537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.unarchive", "seealso": [ { "module": "community.general.archive" @@ -20769,6 +21029,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.uri", "seealso": [ { "module": "ansible.builtin.get_url" @@ -21229,6 +21490,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.user", "seealso": [ { "module": "ansible.posix.authorized_key" @@ -21431,6 +21693,7 @@ ] } }, + "plugin_name": "ansible.builtin.validate_argument_spec", "short_description": "Validate role argument specs.", "version_added": "2.11", "version_added_collection": "ansible.builtin" @@ -21633,6 +21896,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for", "seealso": [ { "module": "ansible.builtin.wait_for_connection" @@ -21754,6 +22018,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for_connection", "seealso": [ { "module": "ansible.builtin.wait_for" @@ -22277,6 +22542,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.yum_repository", "short_description": "Add or remove YUM repositories", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -22367,6 +22633,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo", "requirements": "Foo.", "seealso": { "foo": "bar" @@ -22456,6 +22723,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo2", "requirements": "Foo.", "seealso": [ { @@ -22559,6 +22827,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo3", "requirements": "Foo.", "short_description": "Foo III" }, @@ -22667,6 +22936,7 @@ ] } }, + "plugin_name": "ns.col2.foo4", "short_description": "Markup reference linting test" }, "examples": null, @@ -22746,6 +23016,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -22832,6 +23103,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -22894,6 +23166,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -22969,6 +23242,7 @@ "version_added_collection": "ns2.flatcol" } }, + "plugin_name": "ns2.flatcol.foo", "short_description": "Do some foo O(bar)", "version_added": "2.0.0", "version_added_collection": "ns2.flatcol" @@ -23010,6 +23284,7 @@ "type": "str" } }, + "plugin_name": "ns2.flatcol.sub.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.flatcol.foo2:\n bar: foo\n", @@ -23191,6 +23466,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.cmd", "short_description": "Windows Command Prompt", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -23274,6 +23550,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.powershell", "short_description": "Windows PowerShell", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23462,6 +23739,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.sh", "short_description": "POSIX shell (/bin/sh)", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23511,6 +23789,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -23530,6 +23809,7 @@ ], "filename": "/ansible/plugins/strategy/debug.py", "name": "debug", + "plugin_name": "ansible.builtin.debug", "short_description": "Executes tasks in interactive debug session.", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -23548,6 +23828,7 @@ ], "filename": "/ansible/plugins/strategy/free.py", "name": "free", + "plugin_name": "ansible.builtin.free", "short_description": "Executes tasks without waiting for all hosts", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23565,6 +23846,7 @@ ], "filename": "/ansible/plugins/strategy/host_pinned.py", "name": "host_pinned", + "plugin_name": "ansible.builtin.host_pinned", "short_description": "Executes tasks on each host without interruption", "version_added": "2.7", "version_added_collection": "ansible.builtin" @@ -23585,6 +23867,7 @@ "notes": [ "This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0." ], + "plugin_name": "ansible.builtin.linear", "short_description": "Executes tasks in a linear fashion", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23602,6 +23885,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -23632,6 +23916,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23663,6 +23948,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.all", "short_description": "are all conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23694,6 +23980,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.any", "short_description": "is any conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23727,6 +24014,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.change", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23760,6 +24048,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.changed", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23795,6 +24084,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.contains", "short_description": "does the list contain this element", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23823,6 +24113,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.directory", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23852,11 +24143,12 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.exists", "short_description": "does the path exist, follow symlinks", "version_added": "2.5", "version_added_collection": "ansible.builtin" }, - "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exist }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", + "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exists }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", "metadata": null, "return": { "_value": { @@ -23886,6 +24178,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failed", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23920,6 +24213,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failure", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23955,6 +24249,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.falsy", "short_description": "Pythonic false", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -23986,6 +24281,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24016,6 +24312,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.finished", "short_description": "Did async task finish", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24049,6 +24346,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24077,6 +24375,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_dir", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24108,6 +24407,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24139,6 +24439,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24170,6 +24471,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24205,6 +24507,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24237,6 +24540,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.isnan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24276,6 +24580,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issubset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24315,6 +24620,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issuperset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24346,6 +24652,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24375,6 +24682,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link_exists", "short_description": "does the path exist, no follow", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24419,6 +24727,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.match", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is match(\"https://example.com/users/.*/resources\")\nnomatch: url is match(\"/users/.*/resources\")\n", @@ -24448,6 +24757,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24480,6 +24790,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.nan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24510,6 +24821,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.reachable", "short_description": "Task did not end due to unreachable host", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24563,6 +24875,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.regex", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is regex(\"example\\.com/\\w+/foo\")\n", @@ -24596,6 +24909,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24640,6 +24954,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.search", "short_description": "Does string match a regular expression" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is search(\"https://example.com/users/.*/resources\")\nalsomatch: url is search(\"users/.*/resources\")\n", @@ -24671,6 +24986,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skip", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24704,6 +25020,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skipped", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24734,6 +25051,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.started", "short_description": "Was async task started", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24773,6 +25091,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.subset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24807,6 +25126,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.succeeded", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24841,6 +25161,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.success", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24875,6 +25196,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.successful", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24914,6 +25236,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.superset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24949,6 +25272,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.truthy", "short_description": "Pythonic true", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24979,6 +25303,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.unreachable", "short_description": "Did task end due to the host was unreachable", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -25014,6 +25339,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.uri", "short_description": "is the string a valid URI", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25048,6 +25374,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.url", "short_description": "is the string a valid URL", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25077,6 +25404,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.urn", "short_description": "is the string a valid URN", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -25106,6 +25434,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.vault_encrypted", "short_description": "Is this an encrypted vault", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -25190,6 +25519,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25274,6 +25604,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version_compare", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25305,6 +25636,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25336,6 +25668,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -25365,6 +25698,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25444,6 +25778,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.host_group_vars", "requirements": [ "Enabled in configuration" ], @@ -25492,6 +25827,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-ansible.builtin-ns.col2-ns2.col.json b/tests/functional/ansible-doc-cache-ansible.builtin-ns.col2-ns2.col.json index a7d6b034..77f05a91 100644 --- a/tests/functional/ansible-doc-cache-ansible.builtin-ns.col2-ns2.col.json +++ b/tests/functional/ansible-doc-cache-ansible.builtin-ns.col2-ns2.col.json @@ -115,6 +115,7 @@ ] } }, + "plugin_name": "ansible.builtin.runas", "short_description": "Run As user", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -294,6 +295,7 @@ ] } }, + "plugin_name": "ansible.builtin.su", "short_description": "Substitute User", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -447,6 +449,7 @@ ] } }, + "plugin_name": "ansible.builtin.sudo", "short_description": "Substitute User DO", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -586,6 +589,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -655,6 +659,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.jsonfile", "short_description": "JSON formatted files.", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -674,6 +679,7 @@ ], "filename": "/ansible/plugins/cache/memory.py", "name": "memory", + "plugin_name": "ansible.builtin.memory", "short_description": "RAM backed, non persistent", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -715,6 +721,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -918,6 +925,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.default", "requirements": [ "set as stdout in configuration" ], @@ -1039,6 +1047,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.junit", "requirements": [ "enable in configuration" ], @@ -1112,6 +1121,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.minimal", "short_description": "minimal Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1129,6 +1139,7 @@ ], "filename": "/ansible/plugins/callback/oneline.py", "name": "oneline", + "plugin_name": "ansible.builtin.oneline", "short_description": "oneline Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1167,6 +1178,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.tree", "requirements": [ "invoked in the command line" ], @@ -1193,6 +1205,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -1213,6 +1226,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -1264,6 +1278,7 @@ ] } }, + "plugin_name": "ansible.builtin.local", "short_description": "execute on controller", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -1827,6 +1842,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.paramiko_ssh", "short_description": "Run tasks via Python SSH (paramiko)", "version_added": "0.1", "version_added_collection": "ansible.builtin" @@ -2305,6 +2321,7 @@ ] } }, + "plugin_name": "ansible.builtin.psrp", "requirements": [ "pypsrp>=0.4.0 (Python library)" ], @@ -3061,6 +3078,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.ssh", "short_description": "connect via SSH client binary", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3311,6 +3329,7 @@ ] } }, + "plugin_name": "ansible.builtin.winrm", "requirements": [ "pywinrm (python library)" ], @@ -3362,6 +3381,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -3390,6 +3410,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64decode", "positional": "_input", "short_description": "Decode a base64 string", "version_added": "historical", @@ -3420,6 +3441,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64encode", "positional": "_input", "short_description": "Encode a string as base64", "version_added": "historical", @@ -3453,6 +3475,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.basename", "seealso": [ { "plugin": "ansible.builtin.dirname", @@ -3487,6 +3510,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.bool", "positional": "_input", "short_description": "cast into a boolean", "version_added": "historical", @@ -3516,6 +3540,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.checksum", "positional": "_input", "short_description": "checksum of input data", "version_added": "1.9", @@ -3550,6 +3575,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.combinations", "positional": "_input, set_size", "short_description": "combinations from the elements of a list", "version_added": "historical", @@ -3603,6 +3629,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.combine", "positional": "_input, _dicts", "short_description": "combine two dictionaries", "version_added": "2.0", @@ -3680,6 +3707,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.comment", "positional": "_input, style", "short_description": "comment out a string", "version_added": "historical", @@ -3711,6 +3739,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.commonpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3762,6 +3791,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dict2items", "positional": "_input, key_name, value_name", "seealso": [ { @@ -3805,6 +3835,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.difference", "seealso": [ { "plugin": "ansible.builtin.intersect", @@ -3855,6 +3886,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.dirname", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3890,6 +3922,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.expanduser", "short_description": "Returns a path with C(~) translation.", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3919,6 +3952,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.expandvars", "short_description": "expand environment variables", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3960,6 +3994,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.extract", "positional": "_input, container, morekeys", "short_description": "extract a value based on an index or key", "version_added": "2.1", @@ -3990,6 +4025,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.fileglob", "positional": "_input", "short_description": "explode a path glob to matching files" }, @@ -4027,6 +4063,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.flatten", "positional": "_input, levels, skip_nulls", "short_description": "flatten lists within a list", "version_added": "2.5", @@ -4060,6 +4097,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_json", "short_description": "Convert JSON string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4092,6 +4130,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml", "short_description": "Convert YAML string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4126,6 +4165,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml_all", "short_description": "Convert a series of YAML documents into a variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4162,6 +4202,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.hash", "positional": "_input", "short_description": "hash of input data", "version_added": "1.9", @@ -4211,6 +4252,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.human_readable", "positional": "_input, isbits, unit", "short_description": "Make bytes/bits human-readable", "version_added": "historical", @@ -4259,6 +4301,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.human_to_bytes", "positional": "_input, default_unit, isbits", "short_description": "Get bytes from string", "version_added": "historical", @@ -4295,6 +4338,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.intersect", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -4356,6 +4400,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.items2dict", "positional": "_input, key_name, value_name", "seealso": [ { @@ -4400,6 +4445,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.log", "positional": "_input, base", "short_description": "log of (math operation)", "version_added": "1.9", @@ -4434,6 +4480,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.mandatory", "positional": "_input", "short_description": "make a variable's existence mandatory", "version_added": "historical", @@ -4467,6 +4514,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.md5", "positional": "_input", "short_description": "MD5 hash of input data", "version_added": "historical", @@ -4497,6 +4545,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.normpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -4558,6 +4607,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.password_hash", "positional": "_input", "short_description": "convert input password into password_hash", "version_added": "historical", @@ -4590,6 +4640,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.path_join", "positional": "_input", "short_description": "Join one or more path components", "version_added": "2.10", @@ -4625,6 +4676,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.permutations", "positional": "_input, list_size", "short_description": "permutations from the elements of a list", "version_added": "historical", @@ -4662,6 +4714,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.pow", "positional": "_input, _power", "short_description": "power of (math operation)", "version_added": "1.9", @@ -4705,6 +4758,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.product", "positional": "_input, _additional_lists, repeat", "short_description": "cartesian product of lists", "version_added": "historical", @@ -4738,6 +4792,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.quote", "positional": "_input", "short_description": "shell quoting", "version_added": "2.10", @@ -4780,6 +4835,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.random", "positional": "_input, start, step, seed", "short_description": "random number or list item", "version_added": "2.6", @@ -4811,6 +4867,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.realpath", "short_description": "Turn path into real path", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -4851,6 +4908,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.regex_escape", "positional": "_input, re_type", "short_description": "escape regex chars", "version_added": "2.8", @@ -4894,6 +4952,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_findall", "positional": "_input, _regex", "short_description": "extract all regex matches from string", "version_added": "2.0", @@ -4961,6 +5020,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_replace", "positional": "_input, _regex_match, _regex_replace", "short_description": "replace a string via regex", "version_added": "2.0", @@ -5007,6 +5067,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_search", "positional": "_input, _regex", "short_description": "extract regex match from string", "version_added": "2.0", @@ -5048,6 +5109,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.rekey_on_member", "positional": "_input, '_key', duplicates", "short_description": "Rekey a list of dicts into a dict using a member", "version_added": "2.13", @@ -5082,6 +5144,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.relpath", "positional": "_input, start", "short_description": "Make a path relative", "version_added": "1.7", @@ -5116,6 +5179,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.root", "positional": "_input, base", "short_description": "root of (math operation)", "version_added": "1.9", @@ -5149,6 +5213,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.sha1", "positional": "_input", "short_description": "SHA-1 hash of input data", "version_added": "historical", @@ -5183,6 +5248,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.shuffle", "positional": "_input", "short_description": "randomize a list", "version_added": "2.6", @@ -5221,6 +5287,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.split", "positional": "_input, _split_string", "short_description": "split a string into a list", "version_added": 2.11, @@ -5252,6 +5319,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.splitext", "positional": "_input", "short_description": "split a path into root and file extension", "version_added": "2.0", @@ -5294,15 +5362,18 @@ "utc": { "default": false, "description": "Whether time supplied is in UTC.", - "type": "bool" + "type": "bool", + "version_added": "2.14", + "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.strftime", "positional": "_input, second, utc", "short_description": "date formating", "version_added": "2.4", "version_added_collection": "ansible.builtin" }, - "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(1441357287) }} # => 2015-09-04\n", + "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(seconds=1441357287, utc=true) }} # => 2015-09-04\n", "metadata": null, "return": { "_value": { @@ -5337,6 +5408,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.subelements", "positional": "_input, _subelement, skip_missing", "short_description": "returns a product of a list and its elements", "version_added": "2.7", @@ -5374,6 +5446,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.symmetric_difference", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5439,6 +5512,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.ternary", "positional": "true_val, false_val", "short_description": "Ternary operation filter", "version_added": "1.9", @@ -5475,6 +5549,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_datetime", "positional": "_input", "short_description": "Get C(datetime) from string", "version_added": "2.4", @@ -5560,6 +5635,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_json", "short_description": "Convert variable to JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5629,6 +5705,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_nice_json", "short_description": "Convert variable to 'nicely formatted' JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5673,6 +5750,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_nice_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5707,6 +5785,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_uuid", "positional": "_input, namespace", "short_description": "namespaced UUID generator", "version_added": "2.9", @@ -5751,6 +5830,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5781,6 +5861,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.type_debug", "short_description": "show input data type", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -5816,6 +5897,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.union", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5863,6 +5945,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.unique", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5920,6 +6003,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.unvault", "positional": "secret", "short_description": "Open an Ansible Vault", "version_added": "2.12", @@ -5950,6 +6034,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urldecode", "positional": "_input", "short_description": "Decode percent-encoded sequences", "version_added": "2.4", @@ -5996,6 +6081,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urlsplit", "positional": "_input, query", "short_description": "get components from URL", "version_added": "2.4", @@ -6054,6 +6140,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.vault", "positional": "secret", "short_description": "vault your secrets", "version_added": "2.12", @@ -6084,6 +6171,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_basename", "seealso": [ { "plugin": "ansible.builtin.win_dirname", @@ -6119,6 +6207,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_dirname", "seealso": [ { "plugin": "ansible.builtin.win_basename", @@ -6154,6 +6243,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_splitdrive", "short_description": "Split a Windows path by the drive letter", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -6196,6 +6286,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.zip", "positional": "_input, _additional_lists", "short_description": "combine list elements", "version_added": "2.3", @@ -6240,6 +6331,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.zip_longest", "positional": "_input, _additional_lists", "short_description": "combine list elements, with filler", "version_added": "2.3", @@ -6295,6 +6387,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -6334,6 +6427,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -6359,6 +6453,7 @@ ], "filename": "/ansible/plugins/inventory/advanced_host_list.py", "name": "advanced_host_list", + "plugin_name": "ansible.builtin.advanced_host_list", "short_description": "Parses a 'host list' with ranges", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6379,6 +6474,7 @@ ], "filename": "/ansible/plugins/inventory/auto.py", "name": "auto", + "plugin_name": "ansible.builtin.auto", "short_description": "Loads and executes an inventory plugin specified in a YAML config", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -6519,6 +6615,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.constructed", "short_description": "Uses Jinja2 to construct vars and groups based on existing inventory.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6560,6 +6657,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.generator", "short_description": "Uses Jinja2 to construct hosts and groups from patterns", "version_added": "2.6", "version_added_collection": "ansible.builtin" @@ -6577,6 +6675,7 @@ ], "filename": "/ansible/plugins/inventory/host_list.py", "name": "host_list", + "plugin_name": "ansible.builtin.host_list", "short_description": "Parses a 'host list' string", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6607,6 +6706,7 @@ "Enabled in configuration by default.", "Consider switching to YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." ], + "plugin_name": "ansible.builtin.ini", "short_description": "Uses an Ansible INI file as inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6650,6 +6750,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "short_description": "Executes an inventory script that returns JSON", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6670,6 +6771,7 @@ "notes": [ "Requires one of the following python libraries: 'toml', 'tomli', or 'tomllib'\n" ], + "plugin_name": "ansible.builtin.toml", "short_description": "Uses a specific TOML file as an inventory source.", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -6724,6 +6826,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.yaml", "short_description": "Uses a specific YAML file as an inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6746,6 +6849,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -6770,7 +6874,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -6791,7 +6896,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -6800,7 +6906,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -6810,7 +6917,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -6822,7 +6930,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6834,7 +6943,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6846,7 +6956,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -6858,7 +6969,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -6870,7 +6982,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -6888,7 +7001,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -6900,7 +7014,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -6912,7 +7027,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -6924,7 +7040,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -6936,7 +7053,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -6945,7 +7063,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6956,7 +7075,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -6967,7 +7087,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -6979,7 +7100,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -6991,7 +7113,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -7009,7 +7132,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -7075,7 +7199,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -7087,7 +7212,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -7096,7 +7222,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -7105,7 +7232,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -7126,7 +7254,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -7138,7 +7267,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -7150,7 +7280,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -7160,7 +7291,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -7178,7 +7310,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -7190,7 +7323,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -7217,7 +7351,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -7229,7 +7364,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -7247,7 +7383,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -7268,7 +7405,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -7298,7 +7436,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -7319,7 +7458,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -7331,7 +7471,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -7340,7 +7481,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -7352,7 +7494,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -7381,7 +7524,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -7451,6 +7595,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.config", "short_description": "Display the 'resolved' Ansible option values.", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -7511,6 +7656,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.csvfile", "seealso": [ { "description": "Search paths used for relative files.", @@ -7549,6 +7695,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.dict", "short_description": "returns key/value pair items from dictionaries", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -7591,6 +7738,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.env", "short_description": "Read the value of environment variables", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7637,6 +7785,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "description": "Search paths used for relative files.", @@ -7680,6 +7829,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.fileglob", "seealso": [ { "description": "Search paths used for relative files.", @@ -7745,6 +7895,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.first_found", "seealso": [ { "description": "Search paths used for relative paths/files.", @@ -7783,6 +7934,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.indexed_items", "short_description": "rewrites lists to return 'indexed items'", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7862,6 +8014,7 @@ "description": "Type of the file. 'properties' refers to the Java properties files." } }, + "plugin_name": "ansible.builtin.ini", "seealso": [ { "description": "Search paths used for relative files.", @@ -7899,6 +8052,7 @@ "notes": [ "this is only worth for 'hostname patterns' it is easier to loop over the group/group_names variables otherwise." ], + "plugin_name": "ansible.builtin.inventory_hostnames", "short_description": "list of inventory hosts matching a host pattern", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7932,6 +8086,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.items", "short_description": "list of items", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -7967,6 +8122,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.lines", "short_description": "read lines from command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7992,6 +8148,7 @@ ], "filename": "/ansible/plugins/lookup/list.py", "name": "list", + "plugin_name": "ansible.builtin.list", "short_description": "simply returns what it is given.", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -8022,6 +8179,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.nested", "short_description": "composes a list with nested elements of other lists", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8121,6 +8279,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.password", "short_description": "retrieve or generate a random password, stored in a file", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8158,6 +8317,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.pipe", "short_description": "read output from a command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -8184,6 +8344,7 @@ ], "filename": "/ansible/plugins/lookup/random_choice.py", "name": "random_choice", + "plugin_name": "ansible.builtin.random_choice", "short_description": "return random element from list", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8237,6 +8398,7 @@ "type": "integer" } }, + "plugin_name": "ansible.builtin.sequence", "short_description": "generate a list based on a number sequence", "version_added": "1.0", "version_added_collection": "ansible.builtin" @@ -8276,6 +8438,7 @@ ] } }, + "plugin_name": "ansible.builtin.subelements", "short_description": "traverse nested key from a list of dictionaries", "version_added": "1.4", "version_added_collection": "ansible.builtin" @@ -8358,6 +8521,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "description": "Search paths used for relative templates.", @@ -8396,6 +8560,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.together", "short_description": "merges lists into synchronized list", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -8428,6 +8593,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.unvault", "seealso": [ { "description": "Search paths used for relative files.", @@ -8769,6 +8935,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.url", "short_description": "return contents from URL", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -8798,6 +8965,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.varnames", "short_description": "Lookup matching variable names", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -8834,6 +9002,7 @@ ] } }, + "plugin_name": "ansible.builtin.vars", "short_description": "Lookup templated value of variables", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -8872,6 +9041,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -9000,6 +9170,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.add_host", "seealso": [ { "module": "ansible.builtin.group_by" @@ -9305,6 +9476,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9440,6 +9612,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.apt_key", "requirements": [ "gpg" ], @@ -9623,6 +9796,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt_repository", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9885,6 +10059,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.assemble", "seealso": [ { "module": "ansible.builtin.copy" @@ -10001,6 +10176,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.assert", "seealso": [ { "module": "ansible.builtin.debug" @@ -10086,6 +10262,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.async_status", "seealso": [ { "description": "Detailed information on how to use asynchronous actions and polling.", @@ -10397,6 +10574,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.blockinfile", "short_description": "Insert/update/remove a text block surrounded by marker lines", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -10537,6 +10715,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.command", "seealso": [ { "module": "ansible.builtin.raw" @@ -10898,6 +11077,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.copy", "seealso": [ { "module": "ansible.builtin.assemble" @@ -11186,6 +11366,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.cron", "requirements": [ "cron (any 'vixie cron' conformant variant, like cronie)" ], @@ -11365,6 +11546,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.deb822_repository", "requirements": [ "python3-debian / python-debian" ], @@ -11491,6 +11673,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.debconf", "requirements": [ "debconf", "debconf-utils" @@ -11588,6 +11771,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.debug", "seealso": [ { "module": "ansible.builtin.assert" @@ -11684,6 +11868,17 @@ "version_added": "2.4", "version_added_collection": "ansible.builtin" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11850,9 +12045,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool", @@ -11959,6 +12154,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dnf", "requirements": [ "python >= 2.6", "python-dnf", @@ -12038,6 +12234,17 @@ ], "type": "bool" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -12183,9 +12390,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool" @@ -12259,6 +12466,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.dnf5", "requirements": [ "python3", "python3-libdnf5" @@ -12352,6 +12560,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.dpkg_selections", "short_description": "Dpkg package selection selections", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -12443,6 +12652,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.expect", "requirements": [ "python >= 2.6", "pexpect >= 3.3" @@ -12531,6 +12741,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.fail", "seealso": [ { "module": "ansible.builtin.assert" @@ -12659,6 +12870,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.fetch", "seealso": [ { "module": "ansible.builtin.copy" @@ -12902,6 +13114,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "module": "ansible.builtin.assemble" @@ -13145,6 +13358,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.find", "seealso": [ { "module": "ansible.windows.win_find" @@ -13267,6 +13481,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.gather_facts", "short_description": "Gathers facts about remote hosts", "version_added": 2.8, "version_added_collection": "ansible.builtin" @@ -13604,6 +13819,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.get_url", "seealso": [ { "module": "ansible.builtin.uri" @@ -13800,6 +14016,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.getent", "short_description": "A wrapper to the unix getent utility", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -14080,6 +14297,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.git", "requirements": [ "git>=1.7.1 (the command line tool)" ], @@ -14220,6 +14438,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.group", "requirements": [ "groupadd", "groupdel", @@ -14367,6 +14586,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.group_by", "seealso": [ { "module": "ansible.builtin.add_host" @@ -14452,6 +14672,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.hostname", "requirements": [ "hostname" ], @@ -14554,6 +14775,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_playbook", "seealso": [ { "module": "ansible.builtin.import_role" @@ -14732,6 +14954,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.import_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14857,6 +15080,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15040,6 +15264,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.include_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15168,6 +15393,7 @@ ] } }, + "plugin_name": "ansible.builtin.include_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15377,6 +15603,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.include_vars", "seealso": [ { "module": "ansible.builtin.set_fact" @@ -15670,7 +15897,7 @@ "match_set": { "description": [ "Specifies a set name that can be defined by ipset.", - "Must be used together with the match_set_flags parameter.", + "Must be used together with the O(match_set_flags) parameter.", "When the V(!) argument is prepended then it inverts the rule.", "Uses the iptables set extension." ], @@ -15683,12 +15910,15 @@ "src", "dst", "src,dst", - "dst,src" + "dst,src", + "dst,dst", + "src,src" ], "description": [ "Specifies the necessary flags for the match_set parameter.", - "Must be used together with the match_set parameter.", - "Uses the iptables set extension." + "Must be used together with the O(match_set) parameter.", + "Uses the iptables set extension.", + "Choices V(dst,dst) and V(src,src) added in version 2.17." ], "type": "str", "version_added": "2.11", @@ -15923,6 +16153,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.iptables", "short_description": "Modify iptables rules", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -16014,6 +16245,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.known_hosts", "short_description": "Add or remove a host from the C(known_hosts) file", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -16296,6 +16528,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.lineinfile", "seealso": [ { "module": "ansible.builtin.blockinfile" @@ -16438,6 +16671,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.meta", "seealso": [ { "module": "ansible.builtin.assert" @@ -16530,6 +16764,7 @@ ] } }, + "plugin_name": "ansible.builtin.package", "requirements": [ "Whatever is required for the package plugins specific for each system." ], @@ -16613,6 +16848,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.package_facts", "requirements": [ "For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'.", "For Debian-based systems C(python-apt) package must be installed on targeted hosts.", @@ -16751,6 +16987,7 @@ ] } }, + "plugin_name": "ansible.builtin.pause", "short_description": "Pause playbook execution", "version_added": "0.8", "version_added_collection": "ansible.builtin" @@ -16837,6 +17074,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.ping", "seealso": [ { "module": "ansible.netcommon.net_ping" @@ -17015,6 +17253,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.pip", "requirements": [ "pip", "virtualenv", @@ -17124,6 +17363,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.raw", "seealso": [ { "module": "ansible.builtin.command" @@ -17280,6 +17520,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.reboot", "seealso": [ { "module": "ansible.windows.win_reboot" @@ -17351,7 +17592,8 @@ "If specified, only content after this match will be replaced/removed.", "Can be used in combination with O(before).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17383,7 +17625,8 @@ "If specified, only content before this match will be replaced/removed.", "Can be used in combination with O(after).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17518,11 +17761,12 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.replace", "short_description": "Replace all instances of a particular string in a file using a back-referenced regular expression", "version_added": "1.6", "version_added_collection": "ansible.builtin" }, - "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: ''\n before: ''\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", + "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression from the beginning of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n# Note (?m) which turns on MULTILINE mode so ^ matches any line's beginning\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: '(?m)^'\n before: '(?m)^'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", "metadata": null, "return": null }, @@ -17590,6 +17834,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.rpm_key", "short_description": "Adds or removes a gpg key from the rpm db", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -17707,6 +17952,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "seealso": [ { "module": "ansible.builtin.shell" @@ -17860,6 +18106,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.service", "seealso": [ { "module": "ansible.windows.win_service" @@ -17908,6 +18155,7 @@ "When accessing the RV(ansible_facts.services) facts collected by this module, it is recommended to not use \"dot notation\" because services can have a C(-) character in their name which would result in invalid \"dot notation\", such as C(ansible_facts.services.zuul-gateway). It is instead recommended to using the string value of the service name as the key in order to obtain the fact data value like C(ansible_facts.services['zuul-gateway'])", "AIX SRC was added in version 2.11." ], + "plugin_name": "ansible.builtin.service_facts", "requirements": [ "Any of the following supported init systems: systemd, sysv, upstart, openrc, AIX SRC" ], @@ -18079,6 +18327,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.set_fact", "seealso": [ { "module": "ansible.builtin.include_vars" @@ -18198,6 +18447,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.set_stats", "short_description": "Define and display stats for the current ansible run", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -18287,6 +18537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.setup", "short_description": "Gathers facts about remote hosts", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -18402,6 +18653,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.shell", "seealso": [ { "module": "ansible.builtin.command" @@ -18536,6 +18788,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.slurp", "seealso": [ { "module": "ansible.builtin.fetch" @@ -18675,6 +18928,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.stat", "seealso": [ { "module": "ansible.builtin.file" @@ -19110,6 +19364,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.subversion", "requirements": [ "subversion (the command line tool with C(svn) entrypoint)" ], @@ -19251,6 +19506,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.systemd_service", "requirements": [ "A system managed by systemd." ], @@ -19492,6 +19748,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.sysvinit", "requirements": [ "That the service managed has a corresponding init script." ], @@ -19598,6 +19855,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.tempfile", "seealso": [ { "module": "ansible.builtin.file" @@ -19925,6 +20183,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "module": "ansible.builtin.copy" @@ -20278,6 +20537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.unarchive", "seealso": [ { "module": "community.general.archive" @@ -20769,6 +21029,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.uri", "seealso": [ { "module": "ansible.builtin.get_url" @@ -21229,6 +21490,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.user", "seealso": [ { "module": "ansible.posix.authorized_key" @@ -21431,6 +21693,7 @@ ] } }, + "plugin_name": "ansible.builtin.validate_argument_spec", "short_description": "Validate role argument specs.", "version_added": "2.11", "version_added_collection": "ansible.builtin" @@ -21633,6 +21896,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for", "seealso": [ { "module": "ansible.builtin.wait_for_connection" @@ -21754,6 +22018,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for_connection", "seealso": [ { "module": "ansible.builtin.wait_for" @@ -22277,6 +22542,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.yum_repository", "short_description": "Add or remove YUM repositories", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -22367,6 +22633,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo", "requirements": "Foo.", "seealso": { "foo": "bar" @@ -22456,6 +22723,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo2", "requirements": "Foo.", "seealso": [ { @@ -22559,6 +22827,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo3", "requirements": "Foo.", "short_description": "Foo III" }, @@ -22667,6 +22936,7 @@ ] } }, + "plugin_name": "ns.col2.foo4", "short_description": "Markup reference linting test" }, "examples": null, @@ -22746,6 +23016,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -22832,6 +23103,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -22894,6 +23166,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -23075,6 +23348,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.cmd", "short_description": "Windows Command Prompt", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -23158,6 +23432,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.powershell", "short_description": "Windows PowerShell", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23346,6 +23621,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.sh", "short_description": "POSIX shell (/bin/sh)", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -23395,6 +23671,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -23414,6 +23691,7 @@ ], "filename": "/ansible/plugins/strategy/debug.py", "name": "debug", + "plugin_name": "ansible.builtin.debug", "short_description": "Executes tasks in interactive debug session.", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -23432,6 +23710,7 @@ ], "filename": "/ansible/plugins/strategy/free.py", "name": "free", + "plugin_name": "ansible.builtin.free", "short_description": "Executes tasks without waiting for all hosts", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23449,6 +23728,7 @@ ], "filename": "/ansible/plugins/strategy/host_pinned.py", "name": "host_pinned", + "plugin_name": "ansible.builtin.host_pinned", "short_description": "Executes tasks on each host without interruption", "version_added": "2.7", "version_added_collection": "ansible.builtin" @@ -23469,6 +23749,7 @@ "notes": [ "This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0." ], + "plugin_name": "ansible.builtin.linear", "short_description": "Executes tasks in a linear fashion", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23486,6 +23767,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -23516,6 +23798,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23547,6 +23830,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.all", "short_description": "are all conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23578,6 +23862,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.any", "short_description": "is any conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23611,6 +23896,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.change", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23644,6 +23930,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.changed", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23679,6 +23966,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.contains", "short_description": "does the list contain this element", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23707,6 +23995,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.directory", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23736,11 +24025,12 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.exists", "short_description": "does the path exist, follow symlinks", "version_added": "2.5", "version_added_collection": "ansible.builtin" }, - "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exist }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", + "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exists }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", "metadata": null, "return": { "_value": { @@ -23770,6 +24060,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failed", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23804,6 +24095,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failure", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23839,6 +24131,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.falsy", "short_description": "Pythonic false", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -23870,6 +24163,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23900,6 +24194,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.finished", "short_description": "Did async task finish", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23933,6 +24228,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23961,6 +24257,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_dir", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23992,6 +24289,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24023,6 +24321,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24054,6 +24353,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24089,6 +24389,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24121,6 +24422,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.isnan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24160,6 +24462,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issubset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24199,6 +24502,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issuperset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24230,6 +24534,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24259,6 +24564,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link_exists", "short_description": "does the path exist, no follow", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24303,6 +24609,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.match", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is match(\"https://example.com/users/.*/resources\")\nnomatch: url is match(\"/users/.*/resources\")\n", @@ -24332,6 +24639,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24364,6 +24672,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.nan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24394,6 +24703,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.reachable", "short_description": "Task did not end due to unreachable host", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24447,6 +24757,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.regex", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is regex(\"example\\.com/\\w+/foo\")\n", @@ -24480,6 +24791,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24524,6 +24836,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.search", "short_description": "Does string match a regular expression" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is search(\"https://example.com/users/.*/resources\")\nalsomatch: url is search(\"users/.*/resources\")\n", @@ -24555,6 +24868,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skip", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24588,6 +24902,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skipped", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24618,6 +24933,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.started", "short_description": "Was async task started", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24657,6 +24973,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.subset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24691,6 +25008,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.succeeded", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24725,6 +25043,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.success", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24759,6 +25078,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.successful", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24798,6 +25118,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.superset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24833,6 +25154,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.truthy", "short_description": "Pythonic true", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24863,6 +25185,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.unreachable", "short_description": "Did task end due to the host was unreachable", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24898,6 +25221,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.uri", "short_description": "is the string a valid URI", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24932,6 +25256,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.url", "short_description": "is the string a valid URL", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24961,6 +25286,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.urn", "short_description": "is the string a valid URN", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24990,6 +25316,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.vault_encrypted", "short_description": "Is this an encrypted vault", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -25074,6 +25401,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25158,6 +25486,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version_compare", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -25189,6 +25518,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25220,6 +25550,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -25249,6 +25580,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -25328,6 +25660,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.host_group_vars", "requirements": [ "Enabled in configuration" ], @@ -25376,6 +25709,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-ansible.builtin-ns2.col.json b/tests/functional/ansible-doc-cache-ansible.builtin-ns2.col.json index b264c592..b33523ee 100644 --- a/tests/functional/ansible-doc-cache-ansible.builtin-ns2.col.json +++ b/tests/functional/ansible-doc-cache-ansible.builtin-ns2.col.json @@ -115,6 +115,7 @@ ] } }, + "plugin_name": "ansible.builtin.runas", "short_description": "Run As user", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -294,6 +295,7 @@ ] } }, + "plugin_name": "ansible.builtin.su", "short_description": "Substitute User", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -447,6 +449,7 @@ ] } }, + "plugin_name": "ansible.builtin.sudo", "short_description": "Substitute User DO", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -586,6 +589,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -655,6 +659,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.jsonfile", "short_description": "JSON formatted files.", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -674,6 +679,7 @@ ], "filename": "/ansible/plugins/cache/memory.py", "name": "memory", + "plugin_name": "ansible.builtin.memory", "short_description": "RAM backed, non persistent", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -715,6 +721,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -918,6 +925,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.default", "requirements": [ "set as stdout in configuration" ], @@ -1039,6 +1047,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.junit", "requirements": [ "enable in configuration" ], @@ -1112,6 +1121,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.minimal", "short_description": "minimal Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1129,6 +1139,7 @@ ], "filename": "/ansible/plugins/callback/oneline.py", "name": "oneline", + "plugin_name": "ansible.builtin.oneline", "short_description": "oneline Ansible screen output", "type": "stdout", "version_added": "historical", @@ -1167,6 +1178,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.tree", "requirements": [ "invoked in the command line" ], @@ -1193,6 +1205,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -1213,6 +1226,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -1264,6 +1278,7 @@ ] } }, + "plugin_name": "ansible.builtin.local", "short_description": "execute on controller", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -1827,6 +1842,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.paramiko_ssh", "short_description": "Run tasks via Python SSH (paramiko)", "version_added": "0.1", "version_added_collection": "ansible.builtin" @@ -2305,6 +2321,7 @@ ] } }, + "plugin_name": "ansible.builtin.psrp", "requirements": [ "pypsrp>=0.4.0 (Python library)" ], @@ -3061,6 +3078,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.ssh", "short_description": "connect via SSH client binary", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3311,6 +3329,7 @@ ] } }, + "plugin_name": "ansible.builtin.winrm", "requirements": [ "pywinrm (python library)" ], @@ -3362,6 +3381,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -3390,6 +3410,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64decode", "positional": "_input", "short_description": "Decode a base64 string", "version_added": "historical", @@ -3420,6 +3441,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64encode", "positional": "_input", "short_description": "Encode a string as base64", "version_added": "historical", @@ -3453,6 +3475,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.basename", "seealso": [ { "plugin": "ansible.builtin.dirname", @@ -3487,6 +3510,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.bool", "positional": "_input", "short_description": "cast into a boolean", "version_added": "historical", @@ -3516,6 +3540,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.checksum", "positional": "_input", "short_description": "checksum of input data", "version_added": "1.9", @@ -3550,6 +3575,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.combinations", "positional": "_input, set_size", "short_description": "combinations from the elements of a list", "version_added": "historical", @@ -3603,6 +3629,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.combine", "positional": "_input, _dicts", "short_description": "combine two dictionaries", "version_added": "2.0", @@ -3680,6 +3707,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.comment", "positional": "_input, style", "short_description": "comment out a string", "version_added": "historical", @@ -3711,6 +3739,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.commonpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3762,6 +3791,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dict2items", "positional": "_input, key_name, value_name", "seealso": [ { @@ -3805,6 +3835,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.difference", "seealso": [ { "plugin": "ansible.builtin.intersect", @@ -3855,6 +3886,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.dirname", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3890,6 +3922,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.expanduser", "short_description": "Returns a path with C(~) translation.", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3919,6 +3952,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.expandvars", "short_description": "expand environment variables", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3960,6 +3994,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.extract", "positional": "_input, container, morekeys", "short_description": "extract a value based on an index or key", "version_added": "2.1", @@ -3990,6 +4025,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.fileglob", "positional": "_input", "short_description": "explode a path glob to matching files" }, @@ -4027,6 +4063,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.flatten", "positional": "_input, levels, skip_nulls", "short_description": "flatten lists within a list", "version_added": "2.5", @@ -4060,6 +4097,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_json", "short_description": "Convert JSON string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4092,6 +4130,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml", "short_description": "Convert YAML string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4126,6 +4165,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml_all", "short_description": "Convert a series of YAML documents into a variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -4162,6 +4202,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.hash", "positional": "_input", "short_description": "hash of input data", "version_added": "1.9", @@ -4211,6 +4252,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.human_readable", "positional": "_input, isbits, unit", "short_description": "Make bytes/bits human-readable", "version_added": "historical", @@ -4259,6 +4301,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.human_to_bytes", "positional": "_input, default_unit, isbits", "short_description": "Get bytes from string", "version_added": "historical", @@ -4295,6 +4338,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.intersect", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -4356,6 +4400,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.items2dict", "positional": "_input, key_name, value_name", "seealso": [ { @@ -4400,6 +4445,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.log", "positional": "_input, base", "short_description": "log of (math operation)", "version_added": "1.9", @@ -4434,6 +4480,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.mandatory", "positional": "_input", "short_description": "make a variable's existence mandatory", "version_added": "historical", @@ -4467,6 +4514,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.md5", "positional": "_input", "short_description": "MD5 hash of input data", "version_added": "historical", @@ -4497,6 +4545,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.normpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -4558,6 +4607,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.password_hash", "positional": "_input", "short_description": "convert input password into password_hash", "version_added": "historical", @@ -4590,6 +4640,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.path_join", "positional": "_input", "short_description": "Join one or more path components", "version_added": "2.10", @@ -4625,6 +4676,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.permutations", "positional": "_input, list_size", "short_description": "permutations from the elements of a list", "version_added": "historical", @@ -4662,6 +4714,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.pow", "positional": "_input, _power", "short_description": "power of (math operation)", "version_added": "1.9", @@ -4705,6 +4758,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.product", "positional": "_input, _additional_lists, repeat", "short_description": "cartesian product of lists", "version_added": "historical", @@ -4738,6 +4792,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.quote", "positional": "_input", "short_description": "shell quoting", "version_added": "2.10", @@ -4780,6 +4835,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.random", "positional": "_input, start, step, seed", "short_description": "random number or list item", "version_added": "2.6", @@ -4811,6 +4867,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.realpath", "short_description": "Turn path into real path", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -4851,6 +4908,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.regex_escape", "positional": "_input, re_type", "short_description": "escape regex chars", "version_added": "2.8", @@ -4894,6 +4952,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_findall", "positional": "_input, _regex", "short_description": "extract all regex matches from string", "version_added": "2.0", @@ -4961,6 +5020,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_replace", "positional": "_input, _regex_match, _regex_replace", "short_description": "replace a string via regex", "version_added": "2.0", @@ -5007,6 +5067,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_search", "positional": "_input, _regex", "short_description": "extract regex match from string", "version_added": "2.0", @@ -5048,6 +5109,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.rekey_on_member", "positional": "_input, '_key', duplicates", "short_description": "Rekey a list of dicts into a dict using a member", "version_added": "2.13", @@ -5082,6 +5144,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.relpath", "positional": "_input, start", "short_description": "Make a path relative", "version_added": "1.7", @@ -5116,6 +5179,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.root", "positional": "_input, base", "short_description": "root of (math operation)", "version_added": "1.9", @@ -5149,6 +5213,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.sha1", "positional": "_input", "short_description": "SHA-1 hash of input data", "version_added": "historical", @@ -5183,6 +5248,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.shuffle", "positional": "_input", "short_description": "randomize a list", "version_added": "2.6", @@ -5221,6 +5287,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.split", "positional": "_input, _split_string", "short_description": "split a string into a list", "version_added": 2.11, @@ -5252,6 +5319,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.splitext", "positional": "_input", "short_description": "split a path into root and file extension", "version_added": "2.0", @@ -5294,15 +5362,18 @@ "utc": { "default": false, "description": "Whether time supplied is in UTC.", - "type": "bool" + "type": "bool", + "version_added": "2.14", + "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.strftime", "positional": "_input, second, utc", "short_description": "date formating", "version_added": "2.4", "version_added_collection": "ansible.builtin" }, - "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(1441357287) }} # => 2015-09-04\n", + "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(seconds=1441357287, utc=true) }} # => 2015-09-04\n", "metadata": null, "return": { "_value": { @@ -5337,6 +5408,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.subelements", "positional": "_input, _subelement, skip_missing", "short_description": "returns a product of a list and its elements", "version_added": "2.7", @@ -5374,6 +5446,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.symmetric_difference", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5439,6 +5512,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.ternary", "positional": "true_val, false_val", "short_description": "Ternary operation filter", "version_added": "1.9", @@ -5475,6 +5549,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_datetime", "positional": "_input", "short_description": "Get C(datetime) from string", "version_added": "2.4", @@ -5560,6 +5635,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_json", "short_description": "Convert variable to JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5629,6 +5705,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_nice_json", "short_description": "Convert variable to 'nicely formatted' JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5673,6 +5750,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_nice_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5707,6 +5785,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_uuid", "positional": "_input, namespace", "short_description": "namespaced UUID generator", "version_added": "2.9", @@ -5751,6 +5830,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5781,6 +5861,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.type_debug", "short_description": "show input data type", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -5816,6 +5897,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.union", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5863,6 +5945,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.unique", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5920,6 +6003,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.unvault", "positional": "secret", "short_description": "Open an Ansible Vault", "version_added": "2.12", @@ -5950,6 +6034,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urldecode", "positional": "_input", "short_description": "Decode percent-encoded sequences", "version_added": "2.4", @@ -5996,6 +6081,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urlsplit", "positional": "_input, query", "short_description": "get components from URL", "version_added": "2.4", @@ -6054,6 +6140,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.vault", "positional": "secret", "short_description": "vault your secrets", "version_added": "2.12", @@ -6084,6 +6171,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_basename", "seealso": [ { "plugin": "ansible.builtin.win_dirname", @@ -6119,6 +6207,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_dirname", "seealso": [ { "plugin": "ansible.builtin.win_basename", @@ -6154,6 +6243,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_splitdrive", "short_description": "Split a Windows path by the drive letter", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -6196,6 +6286,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.zip", "positional": "_input, _additional_lists", "short_description": "combine list elements", "version_added": "2.3", @@ -6240,6 +6331,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.zip_longest", "positional": "_input, _additional_lists", "short_description": "combine list elements, with filler", "version_added": "2.3", @@ -6295,6 +6387,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -6334,6 +6427,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -6359,6 +6453,7 @@ ], "filename": "/ansible/plugins/inventory/advanced_host_list.py", "name": "advanced_host_list", + "plugin_name": "ansible.builtin.advanced_host_list", "short_description": "Parses a 'host list' with ranges", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6379,6 +6474,7 @@ ], "filename": "/ansible/plugins/inventory/auto.py", "name": "auto", + "plugin_name": "ansible.builtin.auto", "short_description": "Loads and executes an inventory plugin specified in a YAML config", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -6519,6 +6615,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.constructed", "short_description": "Uses Jinja2 to construct vars and groups based on existing inventory.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6560,6 +6657,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.generator", "short_description": "Uses Jinja2 to construct hosts and groups from patterns", "version_added": "2.6", "version_added_collection": "ansible.builtin" @@ -6577,6 +6675,7 @@ ], "filename": "/ansible/plugins/inventory/host_list.py", "name": "host_list", + "plugin_name": "ansible.builtin.host_list", "short_description": "Parses a 'host list' string", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6607,6 +6706,7 @@ "Enabled in configuration by default.", "Consider switching to YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." ], + "plugin_name": "ansible.builtin.ini", "short_description": "Uses an Ansible INI file as inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6650,6 +6750,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "short_description": "Executes an inventory script that returns JSON", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6670,6 +6771,7 @@ "notes": [ "Requires one of the following python libraries: 'toml', 'tomli', or 'tomllib'\n" ], + "plugin_name": "ansible.builtin.toml", "short_description": "Uses a specific TOML file as an inventory source.", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -6724,6 +6826,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.yaml", "short_description": "Uses a specific YAML file as an inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6746,6 +6849,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -6770,7 +6874,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -6791,7 +6896,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -6800,7 +6906,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -6810,7 +6917,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -6822,7 +6930,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6834,7 +6943,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6846,7 +6956,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -6858,7 +6969,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -6870,7 +6982,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -6888,7 +7001,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -6900,7 +7014,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -6912,7 +7027,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -6924,7 +7040,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -6936,7 +7053,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -6945,7 +7063,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6956,7 +7075,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -6967,7 +7087,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -6979,7 +7100,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -6991,7 +7113,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -7009,7 +7132,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -7075,7 +7199,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -7087,7 +7212,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -7096,7 +7222,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -7105,7 +7232,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -7126,7 +7254,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -7138,7 +7267,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -7150,7 +7280,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -7160,7 +7291,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -7178,7 +7310,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -7190,7 +7323,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -7217,7 +7351,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -7229,7 +7364,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -7247,7 +7383,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -7268,7 +7405,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -7298,7 +7436,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -7319,7 +7458,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -7331,7 +7471,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -7340,7 +7481,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -7352,7 +7494,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -7381,7 +7524,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -7451,6 +7595,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.config", "short_description": "Display the 'resolved' Ansible option values.", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -7511,6 +7656,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.csvfile", "seealso": [ { "description": "Search paths used for relative files.", @@ -7549,6 +7695,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.dict", "short_description": "returns key/value pair items from dictionaries", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -7591,6 +7738,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.env", "short_description": "Read the value of environment variables", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7637,6 +7785,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "description": "Search paths used for relative files.", @@ -7680,6 +7829,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.fileglob", "seealso": [ { "description": "Search paths used for relative files.", @@ -7745,6 +7895,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.first_found", "seealso": [ { "description": "Search paths used for relative paths/files.", @@ -7783,6 +7934,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.indexed_items", "short_description": "rewrites lists to return 'indexed items'", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7862,6 +8014,7 @@ "description": "Type of the file. 'properties' refers to the Java properties files." } }, + "plugin_name": "ansible.builtin.ini", "seealso": [ { "description": "Search paths used for relative files.", @@ -7899,6 +8052,7 @@ "notes": [ "this is only worth for 'hostname patterns' it is easier to loop over the group/group_names variables otherwise." ], + "plugin_name": "ansible.builtin.inventory_hostnames", "short_description": "list of inventory hosts matching a host pattern", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7932,6 +8086,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.items", "short_description": "list of items", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -7967,6 +8122,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.lines", "short_description": "read lines from command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7992,6 +8148,7 @@ ], "filename": "/ansible/plugins/lookup/list.py", "name": "list", + "plugin_name": "ansible.builtin.list", "short_description": "simply returns what it is given.", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -8022,6 +8179,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.nested", "short_description": "composes a list with nested elements of other lists", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8121,6 +8279,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.password", "short_description": "retrieve or generate a random password, stored in a file", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8158,6 +8317,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.pipe", "short_description": "read output from a command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -8184,6 +8344,7 @@ ], "filename": "/ansible/plugins/lookup/random_choice.py", "name": "random_choice", + "plugin_name": "ansible.builtin.random_choice", "short_description": "return random element from list", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -8237,6 +8398,7 @@ "type": "integer" } }, + "plugin_name": "ansible.builtin.sequence", "short_description": "generate a list based on a number sequence", "version_added": "1.0", "version_added_collection": "ansible.builtin" @@ -8276,6 +8438,7 @@ ] } }, + "plugin_name": "ansible.builtin.subelements", "short_description": "traverse nested key from a list of dictionaries", "version_added": "1.4", "version_added_collection": "ansible.builtin" @@ -8358,6 +8521,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "description": "Search paths used for relative templates.", @@ -8396,6 +8560,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.together", "short_description": "merges lists into synchronized list", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -8428,6 +8593,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.unvault", "seealso": [ { "description": "Search paths used for relative files.", @@ -8769,6 +8935,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.url", "short_description": "return contents from URL", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -8798,6 +8965,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.varnames", "short_description": "Lookup matching variable names", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -8834,6 +9002,7 @@ ] } }, + "plugin_name": "ansible.builtin.vars", "short_description": "Lookup templated value of variables", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -8872,6 +9041,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -9000,6 +9170,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.add_host", "seealso": [ { "module": "ansible.builtin.group_by" @@ -9305,6 +9476,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9440,6 +9612,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.apt_key", "requirements": [ "gpg" ], @@ -9623,6 +9796,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt_repository", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9885,6 +10059,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.assemble", "seealso": [ { "module": "ansible.builtin.copy" @@ -10001,6 +10176,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.assert", "seealso": [ { "module": "ansible.builtin.debug" @@ -10086,6 +10262,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.async_status", "seealso": [ { "description": "Detailed information on how to use asynchronous actions and polling.", @@ -10397,6 +10574,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.blockinfile", "short_description": "Insert/update/remove a text block surrounded by marker lines", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -10537,6 +10715,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.command", "seealso": [ { "module": "ansible.builtin.raw" @@ -10898,6 +11077,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.copy", "seealso": [ { "module": "ansible.builtin.assemble" @@ -11186,6 +11366,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.cron", "requirements": [ "cron (any 'vixie cron' conformant variant, like cronie)" ], @@ -11365,6 +11546,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.deb822_repository", "requirements": [ "python3-debian / python-debian" ], @@ -11491,6 +11673,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.debconf", "requirements": [ "debconf", "debconf-utils" @@ -11588,6 +11771,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.debug", "seealso": [ { "module": "ansible.builtin.assert" @@ -11684,6 +11868,17 @@ "version_added": "2.4", "version_added_collection": "ansible.builtin" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11850,9 +12045,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool", @@ -11959,6 +12154,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dnf", "requirements": [ "python >= 2.6", "python-dnf", @@ -12038,6 +12234,17 @@ ], "type": "bool" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -12183,9 +12390,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool" @@ -12259,6 +12466,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.dnf5", "requirements": [ "python3", "python3-libdnf5" @@ -12352,6 +12560,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.dpkg_selections", "short_description": "Dpkg package selection selections", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -12443,6 +12652,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.expect", "requirements": [ "python >= 2.6", "pexpect >= 3.3" @@ -12531,6 +12741,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.fail", "seealso": [ { "module": "ansible.builtin.assert" @@ -12659,6 +12870,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.fetch", "seealso": [ { "module": "ansible.builtin.copy" @@ -12902,6 +13114,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "module": "ansible.builtin.assemble" @@ -13145,6 +13358,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.find", "seealso": [ { "module": "ansible.windows.win_find" @@ -13267,6 +13481,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.gather_facts", "short_description": "Gathers facts about remote hosts", "version_added": 2.8, "version_added_collection": "ansible.builtin" @@ -13604,6 +13819,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.get_url", "seealso": [ { "module": "ansible.builtin.uri" @@ -13800,6 +14016,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.getent", "short_description": "A wrapper to the unix getent utility", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -14080,6 +14297,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.git", "requirements": [ "git>=1.7.1 (the command line tool)" ], @@ -14220,6 +14438,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.group", "requirements": [ "groupadd", "groupdel", @@ -14367,6 +14586,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.group_by", "seealso": [ { "module": "ansible.builtin.add_host" @@ -14452,6 +14672,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.hostname", "requirements": [ "hostname" ], @@ -14554,6 +14775,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_playbook", "seealso": [ { "module": "ansible.builtin.import_role" @@ -14732,6 +14954,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.import_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14857,6 +15080,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15040,6 +15264,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.include_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15168,6 +15393,7 @@ ] } }, + "plugin_name": "ansible.builtin.include_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -15377,6 +15603,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.include_vars", "seealso": [ { "module": "ansible.builtin.set_fact" @@ -15670,7 +15897,7 @@ "match_set": { "description": [ "Specifies a set name that can be defined by ipset.", - "Must be used together with the match_set_flags parameter.", + "Must be used together with the O(match_set_flags) parameter.", "When the V(!) argument is prepended then it inverts the rule.", "Uses the iptables set extension." ], @@ -15683,12 +15910,15 @@ "src", "dst", "src,dst", - "dst,src" + "dst,src", + "dst,dst", + "src,src" ], "description": [ "Specifies the necessary flags for the match_set parameter.", - "Must be used together with the match_set parameter.", - "Uses the iptables set extension." + "Must be used together with the O(match_set) parameter.", + "Uses the iptables set extension.", + "Choices V(dst,dst) and V(src,src) added in version 2.17." ], "type": "str", "version_added": "2.11", @@ -15923,6 +16153,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.iptables", "short_description": "Modify iptables rules", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -16014,6 +16245,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.known_hosts", "short_description": "Add or remove a host from the C(known_hosts) file", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -16296,6 +16528,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.lineinfile", "seealso": [ { "module": "ansible.builtin.blockinfile" @@ -16438,6 +16671,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.meta", "seealso": [ { "module": "ansible.builtin.assert" @@ -16530,6 +16764,7 @@ ] } }, + "plugin_name": "ansible.builtin.package", "requirements": [ "Whatever is required for the package plugins specific for each system." ], @@ -16613,6 +16848,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.package_facts", "requirements": [ "For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'.", "For Debian-based systems C(python-apt) package must be installed on targeted hosts.", @@ -16751,6 +16987,7 @@ ] } }, + "plugin_name": "ansible.builtin.pause", "short_description": "Pause playbook execution", "version_added": "0.8", "version_added_collection": "ansible.builtin" @@ -16837,6 +17074,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.ping", "seealso": [ { "module": "ansible.netcommon.net_ping" @@ -17015,6 +17253,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.pip", "requirements": [ "pip", "virtualenv", @@ -17124,6 +17363,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.raw", "seealso": [ { "module": "ansible.builtin.command" @@ -17280,6 +17520,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.reboot", "seealso": [ { "module": "ansible.windows.win_reboot" @@ -17351,7 +17592,8 @@ "If specified, only content after this match will be replaced/removed.", "Can be used in combination with O(before).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17383,7 +17625,8 @@ "If specified, only content before this match will be replaced/removed.", "Can be used in combination with O(after).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17518,11 +17761,12 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.replace", "short_description": "Replace all instances of a particular string in a file using a back-referenced regular expression", "version_added": "1.6", "version_added_collection": "ansible.builtin" }, - "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: ''\n before: ''\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", + "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression from the beginning of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n# Note (?m) which turns on MULTILINE mode so ^ matches any line's beginning\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: '(?m)^'\n before: '(?m)^'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", "metadata": null, "return": null }, @@ -17590,6 +17834,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.rpm_key", "short_description": "Adds or removes a gpg key from the rpm db", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -17707,6 +17952,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "seealso": [ { "module": "ansible.builtin.shell" @@ -17860,6 +18106,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.service", "seealso": [ { "module": "ansible.windows.win_service" @@ -17908,6 +18155,7 @@ "When accessing the RV(ansible_facts.services) facts collected by this module, it is recommended to not use \"dot notation\" because services can have a C(-) character in their name which would result in invalid \"dot notation\", such as C(ansible_facts.services.zuul-gateway). It is instead recommended to using the string value of the service name as the key in order to obtain the fact data value like C(ansible_facts.services['zuul-gateway'])", "AIX SRC was added in version 2.11." ], + "plugin_name": "ansible.builtin.service_facts", "requirements": [ "Any of the following supported init systems: systemd, sysv, upstart, openrc, AIX SRC" ], @@ -18079,6 +18327,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.set_fact", "seealso": [ { "module": "ansible.builtin.include_vars" @@ -18198,6 +18447,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.set_stats", "short_description": "Define and display stats for the current ansible run", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -18287,6 +18537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.setup", "short_description": "Gathers facts about remote hosts", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -18402,6 +18653,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.shell", "seealso": [ { "module": "ansible.builtin.command" @@ -18536,6 +18788,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.slurp", "seealso": [ { "module": "ansible.builtin.fetch" @@ -18675,6 +18928,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.stat", "seealso": [ { "module": "ansible.builtin.file" @@ -19110,6 +19364,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.subversion", "requirements": [ "subversion (the command line tool with C(svn) entrypoint)" ], @@ -19251,6 +19506,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.systemd_service", "requirements": [ "A system managed by systemd." ], @@ -19492,6 +19748,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.sysvinit", "requirements": [ "That the service managed has a corresponding init script." ], @@ -19598,6 +19855,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.tempfile", "seealso": [ { "module": "ansible.builtin.file" @@ -19925,6 +20183,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "module": "ansible.builtin.copy" @@ -20278,6 +20537,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.unarchive", "seealso": [ { "module": "community.general.archive" @@ -20769,6 +21029,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.uri", "seealso": [ { "module": "ansible.builtin.get_url" @@ -21229,6 +21490,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.user", "seealso": [ { "module": "ansible.posix.authorized_key" @@ -21431,6 +21693,7 @@ ] } }, + "plugin_name": "ansible.builtin.validate_argument_spec", "short_description": "Validate role argument specs.", "version_added": "2.11", "version_added_collection": "ansible.builtin" @@ -21633,6 +21896,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for", "seealso": [ { "module": "ansible.builtin.wait_for_connection" @@ -21754,6 +22018,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for_connection", "seealso": [ { "module": "ansible.builtin.wait_for" @@ -22277,6 +22542,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.yum_repository", "short_description": "Add or remove YUM repositories", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -22371,6 +22637,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -22457,6 +22724,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -22519,6 +22787,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -22667,6 +22936,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.cmd", "short_description": "Windows Command Prompt", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -22750,6 +23020,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.powershell", "short_description": "Windows PowerShell", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -22938,6 +23209,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.sh", "short_description": "POSIX shell (/bin/sh)", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -22987,6 +23259,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -23006,6 +23279,7 @@ ], "filename": "/ansible/plugins/strategy/debug.py", "name": "debug", + "plugin_name": "ansible.builtin.debug", "short_description": "Executes tasks in interactive debug session.", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -23024,6 +23298,7 @@ ], "filename": "/ansible/plugins/strategy/free.py", "name": "free", + "plugin_name": "ansible.builtin.free", "short_description": "Executes tasks without waiting for all hosts", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23041,6 +23316,7 @@ ], "filename": "/ansible/plugins/strategy/host_pinned.py", "name": "host_pinned", + "plugin_name": "ansible.builtin.host_pinned", "short_description": "Executes tasks on each host without interruption", "version_added": "2.7", "version_added_collection": "ansible.builtin" @@ -23061,6 +23337,7 @@ "notes": [ "This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0." ], + "plugin_name": "ansible.builtin.linear", "short_description": "Executes tasks in a linear fashion", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -23078,6 +23355,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -23108,6 +23386,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23139,6 +23418,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.all", "short_description": "are all conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23170,6 +23450,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.any", "short_description": "is any conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23203,6 +23484,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.change", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23236,6 +23518,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.changed", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23271,6 +23554,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.contains", "short_description": "does the list contain this element", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23299,6 +23583,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.directory", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23328,11 +23613,12 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.exists", "short_description": "does the path exist, follow symlinks", "version_added": "2.5", "version_added_collection": "ansible.builtin" }, - "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exist }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", + "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exists }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", "metadata": null, "return": { "_value": { @@ -23362,6 +23648,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failed", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23396,6 +23683,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failure", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23431,6 +23719,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.falsy", "short_description": "Pythonic false", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -23462,6 +23751,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23492,6 +23782,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.finished", "short_description": "Did async task finish", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23525,6 +23816,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23553,6 +23845,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_dir", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23584,6 +23877,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23615,6 +23909,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23646,6 +23941,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23681,6 +23977,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23713,6 +24010,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.isnan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23752,6 +24050,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issubset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23791,6 +24090,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issuperset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23822,6 +24122,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23851,6 +24152,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link_exists", "short_description": "does the path exist, no follow", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23895,6 +24197,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.match", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is match(\"https://example.com/users/.*/resources\")\nnomatch: url is match(\"/users/.*/resources\")\n", @@ -23924,6 +24227,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23956,6 +24260,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.nan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23986,6 +24291,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.reachable", "short_description": "Task did not end due to unreachable host", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24039,6 +24345,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.regex", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is regex(\"example\\.com/\\w+/foo\")\n", @@ -24072,6 +24379,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -24116,6 +24424,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.search", "short_description": "Does string match a regular expression" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is search(\"https://example.com/users/.*/resources\")\nalsomatch: url is search(\"users/.*/resources\")\n", @@ -24147,6 +24456,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skip", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24180,6 +24490,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skipped", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24210,6 +24521,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.started", "short_description": "Was async task started", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24249,6 +24561,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.subset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24283,6 +24596,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.succeeded", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24317,6 +24631,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.success", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24351,6 +24666,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.successful", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24390,6 +24706,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.superset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -24425,6 +24742,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.truthy", "short_description": "Pythonic true", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24455,6 +24773,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.unreachable", "short_description": "Did task end due to the host was unreachable", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -24490,6 +24809,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.uri", "short_description": "is the string a valid URI", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24524,6 +24844,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.url", "short_description": "is the string a valid URL", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24553,6 +24874,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.urn", "short_description": "is the string a valid URN", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -24582,6 +24904,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.vault_encrypted", "short_description": "Is this an encrypted vault", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24666,6 +24989,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -24750,6 +25074,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version_compare", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -24781,6 +25106,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -24812,6 +25138,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -24841,6 +25168,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -24920,6 +25248,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.host_group_vars", "requirements": [ "Enabled in configuration" ], @@ -24968,6 +25297,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-ansible.builtin-ns2.flatcol.json b/tests/functional/ansible-doc-cache-ansible.builtin-ns2.flatcol.json index 2184b7a7..d61ff930 100644 --- a/tests/functional/ansible-doc-cache-ansible.builtin-ns2.flatcol.json +++ b/tests/functional/ansible-doc-cache-ansible.builtin-ns2.flatcol.json @@ -115,6 +115,7 @@ ] } }, + "plugin_name": "ansible.builtin.runas", "short_description": "Run As user", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -294,6 +295,7 @@ ] } }, + "plugin_name": "ansible.builtin.su", "short_description": "Substitute User", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -447,6 +449,7 @@ ] } }, + "plugin_name": "ansible.builtin.sudo", "short_description": "Substitute User DO", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -516,6 +519,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.jsonfile", "short_description": "JSON formatted files.", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -535,6 +539,7 @@ ], "filename": "/ansible/plugins/cache/memory.py", "name": "memory", + "plugin_name": "ansible.builtin.memory", "short_description": "RAM backed, non persistent", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -738,6 +743,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.default", "requirements": [ "set as stdout in configuration" ], @@ -859,6 +865,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.junit", "requirements": [ "enable in configuration" ], @@ -932,6 +939,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.minimal", "short_description": "minimal Ansible screen output", "type": "stdout", "version_added": "historical", @@ -949,6 +957,7 @@ ], "filename": "/ansible/plugins/callback/oneline.py", "name": "oneline", + "plugin_name": "ansible.builtin.oneline", "short_description": "oneline Ansible screen output", "type": "stdout", "version_added": "historical", @@ -987,6 +996,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.tree", "requirements": [ "invoked in the command line" ], @@ -1045,6 +1055,7 @@ ] } }, + "plugin_name": "ansible.builtin.local", "short_description": "execute on controller", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -1608,6 +1619,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.paramiko_ssh", "short_description": "Run tasks via Python SSH (paramiko)", "version_added": "0.1", "version_added_collection": "ansible.builtin" @@ -2086,6 +2098,7 @@ ] } }, + "plugin_name": "ansible.builtin.psrp", "requirements": [ "pypsrp>=0.4.0 (Python library)" ], @@ -2842,6 +2855,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.ssh", "short_description": "connect via SSH client binary", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3092,6 +3106,7 @@ ] } }, + "plugin_name": "ansible.builtin.winrm", "requirements": [ "pywinrm (python library)" ], @@ -3123,6 +3138,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64decode", "positional": "_input", "short_description": "Decode a base64 string", "version_added": "historical", @@ -3153,6 +3169,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.b64encode", "positional": "_input", "short_description": "Encode a string as base64", "version_added": "historical", @@ -3186,6 +3203,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.basename", "seealso": [ { "plugin": "ansible.builtin.dirname", @@ -3220,6 +3238,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.bool", "positional": "_input", "short_description": "cast into a boolean", "version_added": "historical", @@ -3249,6 +3268,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.checksum", "positional": "_input", "short_description": "checksum of input data", "version_added": "1.9", @@ -3283,6 +3303,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.combinations", "positional": "_input, set_size", "short_description": "combinations from the elements of a list", "version_added": "historical", @@ -3336,6 +3357,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.combine", "positional": "_input, _dicts", "short_description": "combine two dictionaries", "version_added": "2.0", @@ -3413,6 +3435,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.comment", "positional": "_input, style", "short_description": "comment out a string", "version_added": "historical", @@ -3444,6 +3467,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.commonpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3495,6 +3519,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dict2items", "positional": "_input, key_name, value_name", "seealso": [ { @@ -3538,6 +3563,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.difference", "seealso": [ { "plugin": "ansible.builtin.intersect", @@ -3588,6 +3614,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.dirname", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -3623,6 +3650,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.expanduser", "short_description": "Returns a path with C(~) translation.", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3652,6 +3680,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.expandvars", "short_description": "expand environment variables", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -3693,6 +3722,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.extract", "positional": "_input, container, morekeys", "short_description": "extract a value based on an index or key", "version_added": "2.1", @@ -3723,6 +3753,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.fileglob", "positional": "_input", "short_description": "explode a path glob to matching files" }, @@ -3760,6 +3791,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.flatten", "positional": "_input, levels, skip_nulls", "short_description": "flatten lists within a list", "version_added": "2.5", @@ -3793,6 +3825,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_json", "short_description": "Convert JSON string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3825,6 +3858,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml", "short_description": "Convert YAML string into variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3859,6 +3893,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.from_yaml_all", "short_description": "Convert a series of YAML documents into a variable structure", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -3895,6 +3930,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.hash", "positional": "_input", "short_description": "hash of input data", "version_added": "1.9", @@ -3944,6 +3980,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.human_readable", "positional": "_input, isbits, unit", "short_description": "Make bytes/bits human-readable", "version_added": "historical", @@ -3992,6 +4029,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.human_to_bytes", "positional": "_input, default_unit, isbits", "short_description": "Get bytes from string", "version_added": "historical", @@ -4028,6 +4066,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.intersect", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -4089,6 +4128,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.items2dict", "positional": "_input, key_name, value_name", "seealso": [ { @@ -4133,6 +4173,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.log", "positional": "_input, base", "short_description": "log of (math operation)", "version_added": "1.9", @@ -4167,6 +4208,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.mandatory", "positional": "_input", "short_description": "make a variable's existence mandatory", "version_added": "historical", @@ -4200,6 +4242,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.md5", "positional": "_input", "short_description": "MD5 hash of input data", "version_added": "historical", @@ -4230,6 +4273,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.normpath", "seealso": [ { "plugin": "ansible.builtin.basename", @@ -4291,6 +4335,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.password_hash", "positional": "_input", "short_description": "convert input password into password_hash", "version_added": "historical", @@ -4323,6 +4368,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.path_join", "positional": "_input", "short_description": "Join one or more path components", "version_added": "2.10", @@ -4358,6 +4404,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.permutations", "positional": "_input, list_size", "short_description": "permutations from the elements of a list", "version_added": "historical", @@ -4395,6 +4442,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.pow", "positional": "_input, _power", "short_description": "power of (math operation)", "version_added": "1.9", @@ -4438,6 +4486,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.product", "positional": "_input, _additional_lists, repeat", "short_description": "cartesian product of lists", "version_added": "historical", @@ -4471,6 +4520,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.quote", "positional": "_input", "short_description": "shell quoting", "version_added": "2.10", @@ -4513,6 +4563,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.random", "positional": "_input, start, step, seed", "short_description": "random number or list item", "version_added": "2.6", @@ -4544,6 +4595,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.realpath", "short_description": "Turn path into real path", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -4584,6 +4636,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.regex_escape", "positional": "_input, re_type", "short_description": "escape regex chars", "version_added": "2.8", @@ -4627,6 +4680,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_findall", "positional": "_input, _regex", "short_description": "extract all regex matches from string", "version_added": "2.0", @@ -4694,6 +4748,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_replace", "positional": "_input, _regex_match, _regex_replace", "short_description": "replace a string via regex", "version_added": "2.0", @@ -4740,6 +4795,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.regex_search", "positional": "_input, _regex", "short_description": "extract regex match from string", "version_added": "2.0", @@ -4781,6 +4837,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.rekey_on_member", "positional": "_input, '_key', duplicates", "short_description": "Rekey a list of dicts into a dict using a member", "version_added": "2.13", @@ -4815,6 +4872,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.relpath", "positional": "_input, start", "short_description": "Make a path relative", "version_added": "1.7", @@ -4849,6 +4907,7 @@ "type": "float" } }, + "plugin_name": "ansible.builtin.root", "positional": "_input, base", "short_description": "root of (math operation)", "version_added": "1.9", @@ -4882,6 +4941,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.sha1", "positional": "_input", "short_description": "SHA-1 hash of input data", "version_added": "historical", @@ -4916,6 +4976,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.shuffle", "positional": "_input", "short_description": "randomize a list", "version_added": "2.6", @@ -4954,6 +5015,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.split", "positional": "_input, _split_string", "short_description": "split a string into a list", "version_added": 2.11, @@ -4985,6 +5047,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.splitext", "positional": "_input", "short_description": "split a path into root and file extension", "version_added": "2.0", @@ -5027,15 +5090,18 @@ "utc": { "default": false, "description": "Whether time supplied is in UTC.", - "type": "bool" + "type": "bool", + "version_added": "2.14", + "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.strftime", "positional": "_input, second, utc", "short_description": "date formating", "version_added": "2.4", "version_added_collection": "ansible.builtin" }, - "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(1441357287) }} # => 2015-09-04\n", + "examples": "# for a complete set of features go to https://strftime.org/\n\n# Display year-month-day\n{{ '%Y-%m-%d' | strftime }}\n# => \"2021-03-19\"\n\n# Display hour:min:sec\n{{ '%H:%M:%S' | strftime }}\n# => \"21:51:04\"\n\n# Use ansible_date_time.epoch fact\n{{ '%Y-%m-%d %H:%M:%S' | strftime(ansible_date_time.epoch) }}\n# => \"2021-03-19 21:54:09\"\n\n# Use arbitrary epoch value\n{{ '%Y-%m-%d' | strftime(0) }} # => 1970-01-01\n{{ '%Y-%m-%d' | strftime(seconds=1441357287, utc=true) }} # => 2015-09-04\n", "metadata": null, "return": { "_value": { @@ -5070,6 +5136,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.subelements", "positional": "_input, _subelement, skip_missing", "short_description": "returns a product of a list and its elements", "version_added": "2.7", @@ -5107,6 +5174,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.symmetric_difference", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5172,6 +5240,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.ternary", "positional": "true_val, false_val", "short_description": "Ternary operation filter", "version_added": "1.9", @@ -5208,6 +5277,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_datetime", "positional": "_input", "short_description": "Get C(datetime) from string", "version_added": "2.4", @@ -5293,6 +5363,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_json", "short_description": "Convert variable to JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5362,6 +5433,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.to_nice_json", "short_description": "Convert variable to 'nicely formatted' JSON string", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -5406,6 +5478,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_nice_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5440,6 +5513,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.to_uuid", "positional": "_input, namespace", "short_description": "namespaced UUID generator", "version_added": "2.9", @@ -5484,6 +5558,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.to_yaml", "positional": "_input", "short_description": "Convert variable to YAML string", "version_added": "historical", @@ -5514,6 +5589,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.type_debug", "short_description": "show input data type", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -5549,6 +5625,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.union", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5596,6 +5673,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.unique", "seealso": [ { "plugin": "ansible.builtin.difference", @@ -5653,6 +5731,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.unvault", "positional": "secret", "short_description": "Open an Ansible Vault", "version_added": "2.12", @@ -5683,6 +5762,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urldecode", "positional": "_input", "short_description": "Decode percent-encoded sequences", "version_added": "2.4", @@ -5729,6 +5809,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.urlsplit", "positional": "_input, query", "short_description": "get components from URL", "version_added": "2.4", @@ -5787,6 +5868,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.vault", "positional": "secret", "short_description": "vault your secrets", "version_added": "2.12", @@ -5817,6 +5899,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_basename", "seealso": [ { "plugin": "ansible.builtin.win_dirname", @@ -5852,6 +5935,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_dirname", "seealso": [ { "plugin": "ansible.builtin.win_basename", @@ -5887,6 +5971,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.win_splitdrive", "short_description": "Split a Windows path by the drive letter", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -5929,6 +6014,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.zip", "positional": "_input, _additional_lists", "short_description": "combine list elements", "version_added": "2.3", @@ -5973,6 +6059,7 @@ "type": "any" } }, + "plugin_name": "ansible.builtin.zip_longest", "positional": "_input, _additional_lists", "short_description": "combine list elements, with filler", "version_added": "2.3", @@ -6000,6 +6087,7 @@ ], "filename": "/ansible/plugins/inventory/advanced_host_list.py", "name": "advanced_host_list", + "plugin_name": "ansible.builtin.advanced_host_list", "short_description": "Parses a 'host list' with ranges", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6020,6 +6108,7 @@ ], "filename": "/ansible/plugins/inventory/auto.py", "name": "auto", + "plugin_name": "ansible.builtin.auto", "short_description": "Loads and executes an inventory plugin specified in a YAML config", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -6160,6 +6249,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.constructed", "short_description": "Uses Jinja2 to construct vars and groups based on existing inventory.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6201,6 +6291,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.generator", "short_description": "Uses Jinja2 to construct hosts and groups from patterns", "version_added": "2.6", "version_added_collection": "ansible.builtin" @@ -6218,6 +6309,7 @@ ], "filename": "/ansible/plugins/inventory/host_list.py", "name": "host_list", + "plugin_name": "ansible.builtin.host_list", "short_description": "Parses a 'host list' string", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6248,6 +6340,7 @@ "Enabled in configuration by default.", "Consider switching to YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." ], + "plugin_name": "ansible.builtin.ini", "short_description": "Uses an Ansible INI file as inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6291,6 +6384,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "short_description": "Executes an inventory script that returns JSON", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6311,6 +6405,7 @@ "notes": [ "Requires one of the following python libraries: 'toml', 'tomli', or 'tomllib'\n" ], + "plugin_name": "ansible.builtin.toml", "short_description": "Uses a specific TOML file as an inventory source.", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -6365,6 +6460,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.yaml", "short_description": "Uses a specific YAML file as an inventory source.", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -6389,7 +6485,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -6410,7 +6507,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -6419,7 +6517,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -6429,7 +6528,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -6441,7 +6541,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6453,7 +6554,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -6465,7 +6567,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -6477,7 +6580,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -6489,7 +6593,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -6507,7 +6612,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -6519,7 +6625,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -6531,7 +6638,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -6543,7 +6651,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -6555,7 +6664,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -6564,7 +6674,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6575,7 +6686,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -6586,7 +6698,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -6598,7 +6711,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -6610,7 +6724,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -6628,7 +6743,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -6694,7 +6810,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -6706,7 +6823,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -6715,7 +6833,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -6724,7 +6843,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -6745,7 +6865,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -6757,7 +6878,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -6769,7 +6891,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -6779,7 +6902,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -6797,7 +6921,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -6809,7 +6934,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -6836,7 +6962,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -6848,7 +6975,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -6866,7 +6994,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -6887,7 +7016,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -6917,7 +7047,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -6938,7 +7069,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -6950,7 +7082,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -6959,7 +7092,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -6971,7 +7105,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -7000,7 +7135,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -7070,6 +7206,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.config", "short_description": "Display the 'resolved' Ansible option values.", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -7130,6 +7267,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.csvfile", "seealso": [ { "description": "Search paths used for relative files.", @@ -7168,6 +7306,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.dict", "short_description": "returns key/value pair items from dictionaries", "version_added": "1.5", "version_added_collection": "ansible.builtin" @@ -7210,6 +7349,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.env", "short_description": "Read the value of environment variables", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7256,6 +7396,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "description": "Search paths used for relative files.", @@ -7299,6 +7440,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.fileglob", "seealso": [ { "description": "Search paths used for relative files.", @@ -7364,6 +7506,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.first_found", "seealso": [ { "description": "Search paths used for relative paths/files.", @@ -7402,6 +7545,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.indexed_items", "short_description": "rewrites lists to return 'indexed items'", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7481,6 +7625,7 @@ "description": "Type of the file. 'properties' refers to the Java properties files." } }, + "plugin_name": "ansible.builtin.ini", "seealso": [ { "description": "Search paths used for relative files.", @@ -7518,6 +7663,7 @@ "notes": [ "this is only worth for 'hostname patterns' it is easier to loop over the group/group_names variables otherwise." ], + "plugin_name": "ansible.builtin.inventory_hostnames", "short_description": "list of inventory hosts matching a host pattern", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -7551,6 +7697,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.items", "short_description": "list of items", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -7586,6 +7733,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.lines", "short_description": "read lines from command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7611,6 +7759,7 @@ ], "filename": "/ansible/plugins/lookup/list.py", "name": "list", + "plugin_name": "ansible.builtin.list", "short_description": "simply returns what it is given.", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -7641,6 +7790,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.nested", "short_description": "composes a list with nested elements of other lists", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -7740,6 +7890,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.password", "short_description": "retrieve or generate a random password, stored in a file", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -7777,6 +7928,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.pipe", "short_description": "read output from a command", "version_added": "0.9", "version_added_collection": "ansible.builtin" @@ -7803,6 +7955,7 @@ ], "filename": "/ansible/plugins/lookup/random_choice.py", "name": "random_choice", + "plugin_name": "ansible.builtin.random_choice", "short_description": "return random element from list", "version_added": "1.1", "version_added_collection": "ansible.builtin" @@ -7856,6 +8009,7 @@ "type": "integer" } }, + "plugin_name": "ansible.builtin.sequence", "short_description": "generate a list based on a number sequence", "version_added": "1.0", "version_added_collection": "ansible.builtin" @@ -7895,6 +8049,7 @@ ] } }, + "plugin_name": "ansible.builtin.subelements", "short_description": "traverse nested key from a list of dictionaries", "version_added": "1.4", "version_added_collection": "ansible.builtin" @@ -7977,6 +8132,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "description": "Search paths used for relative templates.", @@ -8015,6 +8171,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.together", "short_description": "merges lists into synchronized list", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -8047,6 +8204,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.unvault", "seealso": [ { "description": "Search paths used for relative files.", @@ -8388,6 +8546,7 @@ "type": "boolean" } }, + "plugin_name": "ansible.builtin.url", "short_description": "return contents from URL", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -8417,6 +8576,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.varnames", "short_description": "Lookup matching variable names", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -8453,6 +8613,7 @@ ] } }, + "plugin_name": "ansible.builtin.vars", "short_description": "Lookup templated value of variables", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -8581,6 +8742,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.add_host", "seealso": [ { "module": "ansible.builtin.group_by" @@ -8886,6 +9048,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9021,6 +9184,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.apt_key", "requirements": [ "gpg" ], @@ -9204,6 +9368,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.apt_repository", "requirements": [ "python-apt (python 2)", "python3-apt (python 3)", @@ -9466,6 +9631,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.assemble", "seealso": [ { "module": "ansible.builtin.copy" @@ -9582,6 +9748,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.assert", "seealso": [ { "module": "ansible.builtin.debug" @@ -9667,6 +9834,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.async_status", "seealso": [ { "description": "Detailed information on how to use asynchronous actions and polling.", @@ -9978,6 +10146,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.blockinfile", "short_description": "Insert/update/remove a text block surrounded by marker lines", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -10118,6 +10287,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.command", "seealso": [ { "module": "ansible.builtin.raw" @@ -10479,6 +10649,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.copy", "seealso": [ { "module": "ansible.builtin.assemble" @@ -10767,6 +10938,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.cron", "requirements": [ "cron (any 'vixie cron' conformant variant, like cronie)" ], @@ -10946,6 +11118,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.deb822_repository", "requirements": [ "python3-debian / python-debian" ], @@ -11072,6 +11245,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.debconf", "requirements": [ "debconf", "debconf-utils" @@ -11169,6 +11343,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.debug", "seealso": [ { "module": "ansible.builtin.assert" @@ -11265,6 +11440,17 @@ "version_added": "2.4", "version_added_collection": "ansible.builtin" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11431,9 +11617,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool", @@ -11540,6 +11726,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.dnf", "requirements": [ "python >= 2.6", "python-dnf", @@ -11619,6 +11806,17 @@ ], "type": "bool" }, + "best": { + "description": [ + "When set to V(true), either use a package with the highest version available or fail.", + "When set to V(false), if the latest version cannot be installed go with the lower version.", + "Default is set by the operating system distribution." + ], + "required": false, + "type": "bool", + "version_added": "2.17", + "version_added_collection": "ansible.builtin" + }, "bugfix": { "default": "no", "description": [ @@ -11764,9 +11962,9 @@ "type": "list" }, "nobest": { - "default": "no", "description": [ - "Set best option to False, so that transactions are not limited to best candidates only." + "This is the opposite of the O(best) option kept for backwards compatibility.", + "Since ansible-core 2.17 the default value is set by the operating system distribution." ], "required": false, "type": "bool" @@ -11840,6 +12038,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.dnf5", "requirements": [ "python3", "python3-libdnf5" @@ -11933,6 +12132,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.dpkg_selections", "short_description": "Dpkg package selection selections", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -12024,6 +12224,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.expect", "requirements": [ "python >= 2.6", "pexpect >= 3.3" @@ -12112,6 +12313,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.fail", "seealso": [ { "module": "ansible.builtin.assert" @@ -12240,6 +12442,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.fetch", "seealso": [ { "module": "ansible.builtin.copy" @@ -12483,6 +12686,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.file", "seealso": [ { "module": "ansible.builtin.assemble" @@ -12726,6 +12930,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.find", "seealso": [ { "module": "ansible.windows.win_find" @@ -12848,6 +13053,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.gather_facts", "short_description": "Gathers facts about remote hosts", "version_added": 2.8, "version_added_collection": "ansible.builtin" @@ -13185,6 +13391,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.get_url", "seealso": [ { "module": "ansible.builtin.uri" @@ -13381,6 +13588,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.getent", "short_description": "A wrapper to the unix getent utility", "version_added": "1.8", "version_added_collection": "ansible.builtin" @@ -13661,6 +13869,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.git", "requirements": [ "git>=1.7.1 (the command line tool)" ], @@ -13801,6 +14010,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.group", "requirements": [ "groupadd", "groupdel", @@ -13948,6 +14158,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.group_by", "seealso": [ { "module": "ansible.builtin.add_host" @@ -14033,6 +14244,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.hostname", "requirements": [ "hostname" ], @@ -14135,6 +14347,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_playbook", "seealso": [ { "module": "ansible.builtin.import_role" @@ -14313,6 +14526,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.import_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14438,6 +14652,7 @@ ] } }, + "plugin_name": "ansible.builtin.import_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14621,6 +14836,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.include_role", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14749,6 +14965,7 @@ ] } }, + "plugin_name": "ansible.builtin.include_tasks", "seealso": [ { "module": "ansible.builtin.import_playbook" @@ -14958,6 +15175,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.include_vars", "seealso": [ { "module": "ansible.builtin.set_fact" @@ -15251,7 +15469,7 @@ "match_set": { "description": [ "Specifies a set name that can be defined by ipset.", - "Must be used together with the match_set_flags parameter.", + "Must be used together with the O(match_set_flags) parameter.", "When the V(!) argument is prepended then it inverts the rule.", "Uses the iptables set extension." ], @@ -15264,12 +15482,15 @@ "src", "dst", "src,dst", - "dst,src" + "dst,src", + "dst,dst", + "src,src" ], "description": [ "Specifies the necessary flags for the match_set parameter.", - "Must be used together with the match_set parameter.", - "Uses the iptables set extension." + "Must be used together with the O(match_set) parameter.", + "Uses the iptables set extension.", + "Choices V(dst,dst) and V(src,src) added in version 2.17." ], "type": "str", "version_added": "2.11", @@ -15504,6 +15725,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.iptables", "short_description": "Modify iptables rules", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -15595,6 +15817,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.known_hosts", "short_description": "Add or remove a host from the C(known_hosts) file", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -15877,6 +16100,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.lineinfile", "seealso": [ { "module": "ansible.builtin.blockinfile" @@ -16019,6 +16243,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.meta", "seealso": [ { "module": "ansible.builtin.assert" @@ -16111,6 +16336,7 @@ ] } }, + "plugin_name": "ansible.builtin.package", "requirements": [ "Whatever is required for the package plugins specific for each system." ], @@ -16194,6 +16420,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.package_facts", "requirements": [ "For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'.", "For Debian-based systems C(python-apt) package must be installed on targeted hosts.", @@ -16332,6 +16559,7 @@ ] } }, + "plugin_name": "ansible.builtin.pause", "short_description": "Pause playbook execution", "version_added": "0.8", "version_added_collection": "ansible.builtin" @@ -16418,6 +16646,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.ping", "seealso": [ { "module": "ansible.netcommon.net_ping" @@ -16596,6 +16825,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.pip", "requirements": [ "pip", "virtualenv", @@ -16705,6 +16935,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.raw", "seealso": [ { "module": "ansible.builtin.command" @@ -16861,6 +17092,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.reboot", "seealso": [ { "module": "ansible.windows.win_reboot" @@ -16932,7 +17164,8 @@ "If specified, only content after this match will be replaced/removed.", "Can be used in combination with O(before).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -16964,7 +17197,8 @@ "If specified, only content before this match will be replaced/removed.", "Can be used in combination with O(after).", "Uses Python regular expressions; see U(https://docs.python.org/3/library/re.html).", - "Uses DOTALL, which means the V(.) special character I(can match newlines)." + "Uses DOTALL, which means the V(.) special character I(can match newlines).", + "Does not use MULTILINE, so V(^) and V($) will only match the beginning and end of the file." ], "type": "str", "version_added": "2.4", @@ -17099,11 +17333,12 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.replace", "short_description": "Replace all instances of a particular string in a file using a back-referenced regular expression", "version_added": "1.6", "version_added_collection": "ansible.builtin" }, - "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression till the begin of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: ''\n before: ''\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", + "examples": "\n- name: Replace old hostname with new hostname (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '(\\s+)old\\.host\\.name(\\s+.*)?$'\n replace: '\\1new.host.name\\2'\n\n- name: Replace after the expression till the end of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n after: 'NameVirtualHost [*]'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Replace before the expression from the beginning of the file (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/apache2/sites-available/default.conf\n before: '# live site config'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n# Prior to Ansible 2.7.10, using before and after in combination did the opposite of what was intended.\n# see https://github.com/ansible/ansible/issues/31354 for details.\n# Note (?m) which turns on MULTILINE mode so ^ matches any line's beginning\n- name: Replace between the expressions (requires Ansible >= 2.4)\n ansible.builtin.replace:\n path: /etc/hosts\n after: '(?m)^'\n before: '(?m)^'\n regexp: '^(.+)$'\n replace: '# \\1'\n\n- name: Supports common file attributes\n ansible.builtin.replace:\n path: /home/jdoe/.ssh/known_hosts\n regexp: '^old\\.host\\.name[^\\n]*\\n'\n owner: jdoe\n group: jdoe\n mode: '0644'\n\n- name: Supports a validate command\n ansible.builtin.replace:\n path: /etc/apache/ports\n regexp: '^(NameVirtualHost|Listen)\\s+80\\s*$'\n replace: '\\1 127.0.0.1:8080'\n validate: '/usr/sbin/apache2ctl -f %s -t'\n\n- name: Short form task (in ansible 2+) necessitates backslash-escaped sequences\n ansible.builtin.replace: path=/etc/hosts regexp='\\\\b(localhost)(\\\\d*)\\\\b' replace='\\\\1\\\\2.localdomain\\\\2 \\\\1\\\\2'\n\n- name: Long form task does not\n ansible.builtin.replace:\n path: /etc/hosts\n regexp: '\\b(localhost)(\\d*)\\b'\n replace: '\\1\\2.localdomain\\2 \\1\\2'\n\n- name: Explicitly specifying positional matched groups in replacement\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(ListenAddress[ ]+)[^\\n]+$'\n replace: '\\g<1>0.0.0.0'\n\n- name: Explicitly specifying named matched groups\n ansible.builtin.replace:\n path: /etc/ssh/sshd_config\n regexp: '^(?PListenAddress[ ]+)(?P[^\\n]+)$'\n replace: '#\\g\\g\\n\\g0.0.0.0'\n", "metadata": null, "return": null }, @@ -17171,6 +17406,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.rpm_key", "short_description": "Adds or removes a gpg key from the rpm db", "version_added": "1.3", "version_added_collection": "ansible.builtin" @@ -17288,6 +17524,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.script", "seealso": [ { "module": "ansible.builtin.shell" @@ -17441,6 +17678,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.service", "seealso": [ { "module": "ansible.windows.win_service" @@ -17489,6 +17727,7 @@ "When accessing the RV(ansible_facts.services) facts collected by this module, it is recommended to not use \"dot notation\" because services can have a C(-) character in their name which would result in invalid \"dot notation\", such as C(ansible_facts.services.zuul-gateway). It is instead recommended to using the string value of the service name as the key in order to obtain the fact data value like C(ansible_facts.services['zuul-gateway'])", "AIX SRC was added in version 2.11." ], + "plugin_name": "ansible.builtin.service_facts", "requirements": [ "Any of the following supported init systems: systemd, sysv, upstart, openrc, AIX SRC" ], @@ -17660,6 +17899,7 @@ "required": true } }, + "plugin_name": "ansible.builtin.set_fact", "seealso": [ { "module": "ansible.builtin.include_vars" @@ -17779,6 +18019,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.set_stats", "short_description": "Define and display stats for the current ansible run", "version_added": "2.3", "version_added_collection": "ansible.builtin" @@ -17868,6 +18109,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.setup", "short_description": "Gathers facts about remote hosts", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -17983,6 +18225,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.shell", "seealso": [ { "module": "ansible.builtin.command" @@ -18117,6 +18360,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.slurp", "seealso": [ { "module": "ansible.builtin.fetch" @@ -18256,6 +18500,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.stat", "seealso": [ { "module": "ansible.builtin.file" @@ -18691,6 +18936,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.subversion", "requirements": [ "subversion (the command line tool with C(svn) entrypoint)" ], @@ -18832,6 +19078,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.systemd_service", "requirements": [ "A system managed by systemd." ], @@ -19073,6 +19320,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.sysvinit", "requirements": [ "That the service managed has a corresponding init script." ], @@ -19179,6 +19427,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.tempfile", "seealso": [ { "module": "ansible.builtin.file" @@ -19506,6 +19755,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.template", "seealso": [ { "module": "ansible.builtin.copy" @@ -19859,6 +20109,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.unarchive", "seealso": [ { "module": "community.general.archive" @@ -20350,6 +20601,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.uri", "seealso": [ { "module": "ansible.builtin.get_url" @@ -20810,6 +21062,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.user", "seealso": [ { "module": "ansible.posix.authorized_key" @@ -21012,6 +21265,7 @@ ] } }, + "plugin_name": "ansible.builtin.validate_argument_spec", "short_description": "Validate role argument specs.", "version_added": "2.11", "version_added_collection": "ansible.builtin" @@ -21214,6 +21468,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for", "seealso": [ { "module": "ansible.builtin.wait_for_connection" @@ -21335,6 +21590,7 @@ "type": "int" } }, + "plugin_name": "ansible.builtin.wait_for_connection", "seealso": [ { "module": "ansible.builtin.wait_for" @@ -21858,6 +22114,7 @@ "type": "str" } }, + "plugin_name": "ansible.builtin.yum_repository", "short_description": "Add or remove YUM repositories", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -21937,6 +22194,7 @@ "version_added_collection": "ns2.flatcol" } }, + "plugin_name": "ns2.flatcol.foo", "short_description": "Do some foo O(bar)", "version_added": "2.0.0", "version_added_collection": "ns2.flatcol" @@ -21978,6 +22236,7 @@ "type": "str" } }, + "plugin_name": "ns2.flatcol.sub.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.flatcol.foo2:\n bar: foo\n", @@ -22073,6 +22332,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.cmd", "short_description": "Windows Command Prompt", "version_added": "2.8", "version_added_collection": "ansible.builtin" @@ -22156,6 +22416,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.powershell", "short_description": "Windows PowerShell", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -22344,6 +22605,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.sh", "short_description": "POSIX shell (/bin/sh)", "version_added": "historical", "version_added_collection": "ansible.builtin" @@ -22363,6 +22625,7 @@ ], "filename": "/ansible/plugins/strategy/debug.py", "name": "debug", + "plugin_name": "ansible.builtin.debug", "short_description": "Executes tasks in interactive debug session.", "version_added": "2.1", "version_added_collection": "ansible.builtin" @@ -22381,6 +22644,7 @@ ], "filename": "/ansible/plugins/strategy/free.py", "name": "free", + "plugin_name": "ansible.builtin.free", "short_description": "Executes tasks without waiting for all hosts", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -22398,6 +22662,7 @@ ], "filename": "/ansible/plugins/strategy/host_pinned.py", "name": "host_pinned", + "plugin_name": "ansible.builtin.host_pinned", "short_description": "Executes tasks on each host without interruption", "version_added": "2.7", "version_added_collection": "ansible.builtin" @@ -22418,6 +22683,7 @@ "notes": [ "This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0." ], + "plugin_name": "ansible.builtin.linear", "short_description": "Executes tasks in a linear fashion", "version_added": "2.0", "version_added_collection": "ansible.builtin" @@ -22448,6 +22714,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22479,6 +22746,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.all", "short_description": "are all conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -22510,6 +22778,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.any", "short_description": "is any conditions in a list true", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -22543,6 +22812,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.change", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -22576,6 +22846,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.changed", "short_description": "did the task require changes", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -22611,6 +22882,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.contains", "short_description": "does the list contain this element", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -22639,6 +22911,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.directory", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22668,11 +22941,12 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.exists", "short_description": "does the path exist, follow symlinks", "version_added": "2.5", "version_added_collection": "ansible.builtin" }, - "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exist }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", + "examples": "vars:\n my_etc_hosts_exists: \"{{ '/etc/hosts' is exists }}\"\n list_of_local_files_to_copy_to_remote: \"{{ list_of_all_possible_files | select('exists') }}\"\n", "metadata": null, "return": { "_value": { @@ -22702,6 +22976,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failed", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -22736,6 +23011,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.failure", "short_description": "did the task fail", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -22771,6 +23047,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.falsy", "short_description": "Pythonic false", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -22802,6 +23079,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22832,6 +23110,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.finished", "short_description": "Did async task finish", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -22865,6 +23144,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_abs", "short_description": "is the path absolute", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22893,6 +23173,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_dir", "short_description": "does the path resolve to an existing directory", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22924,6 +23205,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_file", "short_description": "does the path resolve to an existing file", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22955,6 +23237,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -22986,6 +23269,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23021,6 +23305,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.is_same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23053,6 +23338,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.isnan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23092,6 +23378,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issubset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23131,6 +23418,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.issuperset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23162,6 +23450,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link", "short_description": "does the path reference existing symbolic link", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23191,6 +23480,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.link_exists", "short_description": "does the path exist, no follow", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23235,6 +23525,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.match", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is match(\"https://example.com/users/.*/resources\")\nnomatch: url is match(\"/users/.*/resources\")\n", @@ -23264,6 +23555,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.mount", "short_description": "does the path resolve to mount point", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23296,6 +23588,7 @@ "type": "raw" } }, + "plugin_name": "ansible.builtin.nan", "short_description": "is this not a number (NaN)", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23326,6 +23619,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.reachable", "short_description": "Task did not end due to unreachable host", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23379,6 +23673,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.regex", "short_description": "Does string match regular expression from the start" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is regex(\"example\\.com/\\w+/foo\")\n", @@ -23412,6 +23707,7 @@ "type": "path" } }, + "plugin_name": "ansible.builtin.same_file", "short_description": "compares two paths to see if they resolve to the same filesystem object", "version_added": "2.5", "version_added_collection": "ansible.builtin" @@ -23456,6 +23752,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.search", "short_description": "Does string match a regular expression" }, "examples": "url: \"https://example.com/users/foo/resources/bar\"\nfoundmatch: url is search(\"https://example.com/users/.*/resources\")\nalsomatch: url is search(\"users/.*/resources\")\n", @@ -23487,6 +23784,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skip", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23520,6 +23818,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.skipped", "short_description": "Was task skipped", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23550,6 +23849,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.started", "short_description": "Was async task started", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23589,6 +23889,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.subset", "short_description": "is the list a subset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23623,6 +23924,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.succeeded", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23657,6 +23959,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.success", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23691,6 +23994,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.successful", "short_description": "check task success", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23730,6 +24034,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.superset", "short_description": "is the list a superset of this other list", "version_added": "2.4", "version_added_collection": "ansible.builtin" @@ -23765,6 +24070,7 @@ "type": "bool" } }, + "plugin_name": "ansible.builtin.truthy", "short_description": "Pythonic true", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -23795,6 +24101,7 @@ "type": "dictionary" } }, + "plugin_name": "ansible.builtin.unreachable", "short_description": "Did task end due to the host was unreachable", "version_added": "1.9", "version_added_collection": "ansible.builtin" @@ -23830,6 +24137,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.uri", "short_description": "is the string a valid URI", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -23864,6 +24172,7 @@ "type": "list" } }, + "plugin_name": "ansible.builtin.url", "short_description": "is the string a valid URL", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -23893,6 +24202,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.urn", "short_description": "is the string a valid URN", "version_added": "2.14", "version_added_collection": "ansible.builtin" @@ -23922,6 +24232,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.vault_encrypted", "short_description": "Is this an encrypted vault", "version_added": "2.10", "version_added_collection": "ansible.builtin" @@ -24006,6 +24317,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -24090,6 +24402,7 @@ "type": "string" } }, + "plugin_name": "ansible.builtin.version_compare", "short_description": "compare version strings", "version_added": "1.6", "version_added_collection": "ansible.builtin" @@ -24171,6 +24484,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ansible.builtin.host_group_vars", "requirements": [ "Enabled in configuration" ], diff --git a/tests/functional/ansible-doc-cache-ns.col1-ns.col2-ns2.col-ns2.flatcol.json b/tests/functional/ansible-doc-cache-ns.col1-ns.col2-ns2.col-ns2.flatcol.json index 14e2c858..5069a988 100644 --- a/tests/functional/ansible-doc-cache-ns.col1-ns.col2-ns2.col-ns2.flatcol.json +++ b/tests/functional/ansible-doc-cache-ns.col1-ns.col2-ns2.col-ns2.flatcol.json @@ -132,6 +132,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -175,6 +176,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -199,6 +201,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -219,6 +222,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -267,6 +271,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -317,6 +322,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -356,6 +362,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -386,6 +393,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -410,7 +418,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -431,7 +440,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -440,7 +450,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -450,7 +461,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -462,7 +474,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -474,7 +487,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -486,7 +500,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -498,7 +513,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -510,7 +526,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -528,7 +545,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -540,7 +558,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -552,7 +571,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -564,7 +584,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -576,7 +597,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -585,7 +607,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -596,7 +619,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -607,7 +631,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -619,7 +644,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -631,7 +657,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -649,7 +676,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -715,7 +743,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -727,7 +756,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -736,7 +766,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -745,7 +776,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -766,7 +798,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -778,7 +811,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -790,7 +824,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -800,7 +835,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -818,7 +854,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -830,7 +867,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -857,7 +895,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -869,7 +908,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -887,7 +927,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -908,7 +949,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -938,7 +980,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -959,7 +1002,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -971,7 +1015,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -980,7 +1025,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -992,7 +1038,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -1021,7 +1068,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -1052,6 +1100,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1139,6 +1188,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo", "requirements": "Foo.", "seealso": { "foo": "bar" @@ -1228,6 +1278,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo2", "requirements": "Foo.", "seealso": [ { @@ -1331,6 +1382,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo3", "requirements": "Foo.", "short_description": "Foo III" }, @@ -1439,6 +1491,7 @@ ] } }, + "plugin_name": "ns.col2.foo4", "short_description": "Markup reference linting test" }, "examples": null, @@ -1518,6 +1571,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -1604,6 +1658,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -1666,6 +1721,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -1741,6 +1797,7 @@ "version_added_collection": "ns2.flatcol" } }, + "plugin_name": "ns2.flatcol.foo", "short_description": "Do some foo O(bar)", "version_added": "2.0.0", "version_added_collection": "ns2.flatcol" @@ -1782,6 +1839,7 @@ "type": "str" } }, + "plugin_name": "ns2.flatcol.sub.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.flatcol.foo2:\n bar: foo\n", @@ -1930,6 +1988,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1949,6 +2008,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -1977,6 +2037,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -2008,6 +2069,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -2037,6 +2099,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -2087,6 +2150,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-ns.col1-ns2.col-ns2.flatcol.json b/tests/functional/ansible-doc-cache-ns.col1-ns2.col-ns2.flatcol.json index b0cb3391..11921b15 100644 --- a/tests/functional/ansible-doc-cache-ns.col1-ns2.col-ns2.flatcol.json +++ b/tests/functional/ansible-doc-cache-ns.col1-ns2.col-ns2.flatcol.json @@ -132,6 +132,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -175,6 +176,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -199,6 +201,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -219,6 +222,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -267,6 +271,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -317,6 +322,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -356,6 +362,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -386,6 +393,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -410,7 +418,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -431,7 +440,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -440,7 +450,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -450,7 +461,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -462,7 +474,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -474,7 +487,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -486,7 +500,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -498,7 +513,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -510,7 +526,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -528,7 +545,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -540,7 +558,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -552,7 +571,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -564,7 +584,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -576,7 +597,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -585,7 +607,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -596,7 +619,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -607,7 +631,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -619,7 +644,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -631,7 +657,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -649,7 +676,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -715,7 +743,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -727,7 +756,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -736,7 +766,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -745,7 +776,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -766,7 +798,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -778,7 +811,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -790,7 +824,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -800,7 +835,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -818,7 +854,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -830,7 +867,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -857,7 +895,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -869,7 +908,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -887,7 +927,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -908,7 +949,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -938,7 +980,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -959,7 +1002,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -971,7 +1015,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -980,7 +1025,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -992,7 +1038,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -1021,7 +1068,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -1052,6 +1100,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1143,6 +1192,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -1229,6 +1279,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -1291,6 +1342,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -1366,6 +1418,7 @@ "version_added_collection": "ns2.flatcol" } }, + "plugin_name": "ns2.flatcol.foo", "short_description": "Do some foo O(bar)", "version_added": "2.0.0", "version_added_collection": "ns2.flatcol" @@ -1407,6 +1460,7 @@ "type": "str" } }, + "plugin_name": "ns2.flatcol.sub.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.flatcol.foo2:\n bar: foo\n", @@ -1522,6 +1576,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1541,6 +1596,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -1569,6 +1625,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -1600,6 +1657,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -1629,6 +1687,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -1679,6 +1738,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-doc-cache-ns.col2.json b/tests/functional/ansible-doc-cache-ns.col2.json index e6ac0a90..3f8c3525 100644 --- a/tests/functional/ansible-doc-cache-ns.col2.json +++ b/tests/functional/ansible-doc-cache-ns.col2.json @@ -23,7 +23,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -44,7 +45,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -53,7 +55,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -63,7 +66,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -75,7 +79,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -87,7 +92,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -99,7 +105,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -111,7 +118,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -123,7 +131,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -141,7 +150,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -153,7 +163,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -165,7 +176,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -177,7 +189,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -189,7 +202,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -198,7 +212,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -209,7 +224,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -220,7 +236,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -232,7 +249,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -244,7 +262,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -262,7 +281,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -328,7 +348,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -340,7 +361,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -349,7 +371,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -358,7 +381,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -379,7 +403,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -391,7 +416,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -403,7 +429,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -413,7 +440,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -431,7 +459,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -443,7 +472,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -470,7 +500,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -482,7 +513,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -500,7 +532,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -521,7 +554,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -551,7 +585,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -572,7 +607,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -584,7 +620,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -593,7 +630,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -605,7 +643,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -634,7 +673,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -713,6 +753,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo", "requirements": "Foo.", "seealso": { "foo": "bar" @@ -802,6 +843,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo2", "requirements": "Foo.", "seealso": [ { @@ -905,6 +947,7 @@ "type": "dict" } }, + "plugin_name": "ns.col2.foo3", "requirements": "Foo.", "short_description": "Foo III" }, @@ -1013,6 +1056,7 @@ ] } }, + "plugin_name": "ns.col2.foo4", "short_description": "Markup reference linting test" }, "examples": null, diff --git a/tests/functional/ansible-doc-cache-ns2.col.json b/tests/functional/ansible-doc-cache-ns2.col.json index 2b288c8d..9b055602 100644 --- a/tests/functional/ansible-doc-cache-ns2.col.json +++ b/tests/functional/ansible-doc-cache-ns2.col.json @@ -132,6 +132,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Use foo O(bar)", "version_added": "historical", "version_added_collection": "ns2.col" @@ -175,6 +176,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo files O(bar)", "version_added": "1.9.0", "version_added_collection": "ns2.col" @@ -199,6 +201,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo output O(bar)", "type": "stdout", "version_added": "0.0.1", @@ -219,6 +222,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/cliconf/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Foo router CLI config" }, "examples": null, @@ -267,6 +271,7 @@ ] } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo connection O(bar)", "version_added": "1.2.0", "version_added_collection": "ns2.col" @@ -317,6 +322,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.bar", "positional": "foo, bar", "short_description": "The bar filter", "version_added": "2.0.0", @@ -356,6 +362,7 @@ "type": "list" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo filter O(bar)", "version_added": "1.3.0", "version_added_collection": "ns2.col" @@ -386,6 +393,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "The foo inventory O(bar)", "version_added": "0.5.0", "version_added_collection": "ns2.col" @@ -410,7 +418,8 @@ }, "action": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "The 'action' to execute for a task, it normally translates into a C(module) or action plugin.", "priority": 0, @@ -431,7 +440,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Force any un-handled task errors on any host to propagate to all hosts and end the play.", "priority": 0, @@ -440,7 +450,8 @@ }, "args": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "A secondary way to add arguments into a task. Takes a dictionary in which keys map to options and values.", "priority": 0, @@ -450,7 +461,8 @@ "async": { "alias": "async", "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Run a task asynchronously if the C(action) supports this; the value is the maximum runtime in seconds.", "priority": 0, @@ -462,7 +474,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls if privilege escalation is used or not on :term:`Task` execution. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -474,7 +487,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Path to the executable used to elevate privileges. Implemented by the become plugin. See :ref:`become_plugins`.", "priority": 0, @@ -486,7 +500,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A string of flag(s) to pass to the privilege escalation program when :term:`become` is True.", "priority": 0, @@ -498,7 +513,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Which method of privilege escalation to use (such as sudo or su).", "priority": 0, @@ -510,7 +526,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User that you 'become' after using privilege escalation. The remote/login user must have permissions to become this user.", "priority": 0, @@ -528,7 +545,8 @@ }, "changed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'changed' status.", "priority": 0, @@ -540,7 +558,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A boolean that controls if a task is executed in 'check' mode. See :ref:`check_mode_dry`.", "priority": 0, @@ -552,7 +571,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "List of collection namespaces to search for modules, plugins, and roles. See :ref:`collections_using_playbook`\n\n.. note::\n\n Tasks within a role do not inherit the value of ``collections`` from the play. To have a role search a list of collections, use the ``collections`` keyword in ``meta/main.yml`` within a role.\n", "priority": 100, @@ -564,7 +584,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Allows you to change the connection plugin used for tasks to execute on the target. See :ref:`using_connection`.", "priority": 0, @@ -576,7 +597,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Enable debugging tasks based on the state of the task result. See :ref:`playbook_debugger`.", "priority": 0, @@ -585,7 +607,8 @@ }, "delay": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of seconds to delay between retries. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -596,7 +619,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to apply facts to a delegated host instead of inventory_hostname.", "priority": 0, @@ -607,7 +631,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Host to execute task instead of the target (inventory_hostname). Connection vars from the delegated host will also be used for the task.", "priority": 0, @@ -619,7 +644,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Toggle to make tasks return 'diff' information or not.", "priority": 0, @@ -631,7 +657,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "A dictionary that gets converted into environment vars to be provided for the task upon execution. This can ONLY be used with modules. This is not supported for any other type of plugins nor Ansible itself nor its configuration, it just sets the variables for the code responsible for executing the task. This is not a recommended way to pass in confidential data.", "priority": 0, @@ -649,7 +676,8 @@ }, "failed_when": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Conditional expression that overrides the task's normal 'failed' status.", "priority": 0, @@ -715,7 +743,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures and continue with play. It does not affect connection errors.", "priority": 0, @@ -727,7 +756,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that allows you to ignore task failures due to an unreachable host and continue with the play. This does not affect other task errors (see :term:`ignore_errors`) but is useful for groups of volatile/ephemeral hosts.", "priority": 0, @@ -736,7 +766,8 @@ }, "loop": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Takes a list for the task to iterate over, saving each list element into the ``item`` variable (configurable via loop_control)", "priority": 0, @@ -745,7 +776,8 @@ }, "loop_control": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Several keys here allow you to modify/set loop behavior in a task. See :ref:`loop_control`.", "priority": 0, @@ -766,7 +798,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Specifies default parameter values for modules.", "priority": 0, @@ -778,7 +811,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Identifier. Can be used for documentation, or in tasks/handlers.", "priority": 0, @@ -790,7 +824,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that controls information disclosure.", "priority": 0, @@ -800,7 +835,8 @@ "notify": { "applies_to": [ "Block", - "Task" + "Task", + "Handler" ], "description": "List of handlers to notify when the task returns a 'changed=True' status.", "priority": 0, @@ -818,7 +854,8 @@ }, "poll": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Sets the polling interval in seconds for async tasks (default 10s).", "priority": 0, @@ -830,7 +867,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Used to override the default port used in a connection.", "priority": 0, @@ -857,7 +895,8 @@ }, "register": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Name of variable that will contain task status and module return data.", "priority": 0, @@ -869,7 +908,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "User used to log into the target via the connection plugin.", "priority": 0, @@ -887,7 +927,8 @@ }, "retries": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "Number of retries before giving up in a :term:`until` loop. This setting is only used in combination with :term:`until`.", "priority": 0, @@ -908,7 +949,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterward apply any results and facts to all active hosts in the same batch.", "priority": 0, @@ -938,7 +980,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Tags applied to the task or included tasks, this allows selecting subsets of tasks from the command line.", "priority": 0, @@ -959,7 +1002,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Limit the number of concurrent task runs on task, block and playbook level. This is independent of the forks and serial settings, but cannot be set higher than those limits. For example, if forks is set to 10 and the throttle is set to 15, at most 10 hosts will be operated on in parallel.", "priority": 0, @@ -971,7 +1015,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Time limit for the task to execute in, if exceeded Ansible will interrupt and fail the task.", "priority": 0, @@ -980,7 +1025,8 @@ }, "until": { "applies_to": [ - "Task" + "Task", + "Handler" ], "description": "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit.", "priority": 0, @@ -992,7 +1038,8 @@ "Play", "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Dictionary/map of variables", "priority": 100, @@ -1021,7 +1068,8 @@ "applies_to": [ "Role", "Block", - "Task" + "Task", + "Handler" ], "description": "Conditional expression, determines if an iteration of a task is run or not.", "priority": 0, @@ -1052,6 +1100,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Look up some foo O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1143,6 +1192,7 @@ "version_added_collection": "ns2.col" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Foo on remote." ], @@ -1229,6 +1279,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.foo2", "short_description": "Another foo" }, "examples": "\n- name: Do some foo\n ns2.col.foo2:\n bar: foo\n", @@ -1291,6 +1342,7 @@ "type": "str" } }, + "plugin_name": "ns2.col.sub.foo3", "short_description": "A sub-foo" }, "examples": "\n- name: Do some foobar\n ns2.col.sub.foo3:\n bar: baz\n", @@ -1406,6 +1458,7 @@ "version_added_collection": "ansible.builtin" } }, + "plugin_name": "ns2.col.foo", "short_description": "Foo shell O(bar)", "version_added": "1.0.0", "version_added_collection": "ns2.col" @@ -1425,6 +1478,7 @@ ], "filename": "ansible_collections/ns2/col/plugins/strategy/foo.py", "name": "foo", + "plugin_name": "ns2.col.foo", "short_description": "Executes tasks in foo", "version_added": "1.1.0", "version_added_collection": "ns2.col" @@ -1453,6 +1507,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -1484,6 +1539,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "short_description": "Is something a foo O(bar)" }, "examples": "\nsome_var: \"{{ {'a': 1} is ns2.col.foo }}\"\n", @@ -1513,6 +1569,7 @@ "type": "path" } }, + "plugin_name": "ns2.col.is_bar", "short_description": "Is something a bar" }, "examples": "is_path_bar: \"{{ '/etc/hosts' is ns2.col.bar }}}\"\n", @@ -1563,6 +1620,7 @@ "type": "string" } }, + "plugin_name": "ns2.col.foo", "requirements": [ "Enabled in Ansible's configuration." ], diff --git a/tests/functional/ansible-version.output b/tests/functional/ansible-version.output index 55b01688..12e510b0 100644 --- a/tests/functional/ansible-version.output +++ b/tests/functional/ansible-version.output @@ -1,9 +1,9 @@ -ansible [core 2.17.0.dev0] (devel 13e6d8487a) last updated 2024/01/26 22:22:45 (GMT +200) +ansible [core 2.17.0.dev0] (devel f1ded0f417) last updated 2024/03/10 17:40:38 (GMT +200) config file = None configured module search path = ['<<<<>>>>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = <<<<>>>> ansible collection location = <<<<>>>> executable location = <<<<>>>>/.local/bin/ansible - python version = 3.11.6 (main, Nov 14 2023, 09:36:21) [GCC 13.2.1 20230801] (/usr/bin/python) + python version = 3.11.8 (main, Feb 12 2024, 14:50:05) [GCC 13.2.1 20230801] (/usr/bin/python) jinja version = 3.1.3 libyaml = True