From 18c6b40e196decd8c7f2b9ecba2cd7254ecd03db Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 8 Oct 2024 12:09:07 -0700 Subject: [PATCH] Update unique filter docs (#84078) * Correct case_sensitive example * Add attribute docs Signed-off-by: Abhijeet Kasurde --- lib/ansible/plugins/filter/unique.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/ansible/plugins/filter/unique.yml b/lib/ansible/plugins/filter/unique.yml index 83a4f92bace..25e0bf30b47 100644 --- a/lib/ansible/plugins/filter/unique.yml +++ b/lib/ansible/plugins/filter/unique.yml @@ -14,6 +14,9 @@ DOCUMENTATION: description: Whether to consider case when comparing elements. default: false type: bool + attribute: + description: Filter objects with unique values for this attribute. + type: str seealso: - plugin_type: filter plugin: ansible.builtin.difference @@ -28,14 +31,27 @@ EXAMPLES: | # list1: [1, 2, 5, 1, 3, 4, 10] {{ list1 | unique }} # => [1, 2, 5, 3, 4, 10] - + # return case sensitive unique elements - {{ ['a', 'A', 'a'] | unique('case_sensitive=true') }} + {{ ['a', 'A', 'a'] | unique(case_sensitive='true') }} # => ['a', 'A'] - + # return case insensitive unique elements {{ ['b', 'B', 'b'] | unique() }} # => ['b'] + + # return unique elements of list based on attribute + # => [{"age": 12, "name": "a" }, { "age": 14, "name": "b"}] + - debug: + msg: "{{ sample | unique(attribute='age') }}" + vars: + sample: + - name: a + age: 12 + - name: b + age: 14 + - name: c + age: 14 RETURN: _value: description: A list with unique elements, also known as a set.