---
- name: "π List the Stalwart domains the aliases live in and the mailing lists"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:Domain/get', {'ids': none}, 'Domain'],
['x:MailingList/get', {'ids': none}, 'MailingList']]} | to_json }}
- name: "π Plan the alias changes"
ansible.builtin.set_fact:
stalwart_alias_plan: >-
{{ STALWART_ALIASES | stalwart_alias_plan(stalwart_jmap.methodResponses[0][1].list,
stalwart_jmap.methodResponses[1][1].list, STALWART_ALIAS_DESCRIPTION) }}
- name: "π Create, update and retire the alias mailing lists"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:MailingList/set', {
'create': stalwart_alias_plan['create'],
'update': stalwart_alias_plan['update'],
'destroy': stalwart_alias_plan['destroy']}, 'c0']]} | to_json }}
when: >-
(stalwart_alias_plan['create'] | length > 0)
or (stalwart_alias_plan['update'] | length > 0)
or (stalwart_alias_plan['destroy'] | length > 0)
- name: "π Point the declared catch-all addresses"
include_tasks: jmap_call.yml
vars:
stalwart_jmap_body: >-
{{ {'using': ['urn:ietf:params:jmap:core', 'urn:stalwart:jmap'],
'methodCalls': [['x:Domain/set', {'update': stalwart_alias_plan['domains']}, 'c0']]} | to_json }}
when: stalwart_alias_plan['domains'] | length > 0