# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev
# SPDX-FileCopyrightText: 2019 Dan Arnfield
# SPDX-FileCopyrightText: 2019 Lyubomir Popov
# SPDX-FileCopyrightText: 2021 MDAD project contributors
# SPDX-FileCopyrightText: 2022 Marko Weltzer
#
# SPDX-License-Identifier: AGPL-3.0-or-later

---

- tags:
    - setup-all
    - setup-synapse
    - install-all
    - install-synapse
    - setup-synapse-reverse-proxy-companion
    - install-synapse-reverse-proxy-companion
    - start
    - start-all
    - start-group
    - restart
    - restart-all
    - restart-group
    - stop
    - stop-all
    - stop-group
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/init.yml"

- tags:
    - setup-all
    - setup-synapse
    - install-all
    - install-synapse
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"

    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"

- tags:
    - setup-all
    - setup-synapse
  block:
    # This always runs because it handles uninstallation for sub-components too.
    - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"

- tags:
    - setup-all
    - setup-synapse-reverse-proxy-companion
    - setup-synapse
    - install-all
    - install-synapse-reverse-proxy-companion
    - install-synapse
  block:
    - ansible.builtin.include_tasks: "{{ role_path }}/tasks/reverse_proxy_companion/main.yml"

- tags:
    - import-synapse-media-store
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/import_media_store.yml"

- tags:
    - import-synapse-sqlite-db
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/import_synapse_sqlite_db.yml"

- tags:
    - register-user
  block:
    - when: matrix_synapse_enabled and not matrix_synapse_matrix_authentication_service_enabled
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/register_user.yml"

- tags:
    - update-user-password
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/update_user_password.yml"

- tags:
    - rust-synapse-compress-state
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/rust-synapse-compress-state/main.yml"

- tags:
    - self-check
  block:
    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_client_api.yml"

    - when: matrix_synapse_enabled | bool
      ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_federation_api.yml"
