15_aliases.ymlΒΆ

---
- 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