---

- name: Check Matrix Federation API
  uri:
    url: "{{ matrix_synapse_federation_api_url_endpoint_public }}"
    follow_redirects: false
    validate_certs: false
  register: result_matrix_synapse_federation_api
  ignore_errors: true

- name: Fail if Matrix Federation API not working
  fail:
    msg: "Failed checking Matrix Federation API is up at `{{ hostname_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`). Is Synapse running? Is port 8448 open in your firewall? Full error: {{ result_matrix_synapse_federation_api }}"
  when: "result_matrix_synapse_federation_api.failed or 'json' not in result_matrix_synapse_federation_api"

- name: Report working Matrix Federation API
  debug:
    msg: "The Matrix Federation API at `{{ hostname_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) is working"