---

- name: Fail if no configurations specified
  ansible.builtin.fail:
    msg: >-
      You need to define at least one configuration in `matrix_dynamic_dns_domain_configurations` for using matrix-dynamic-dns.
  when: "matrix_dynamic_dns_domain_configurations | length == 0"

- name: Fail if required settings not defined in configuration blocks
  ansible.builtin.fail:
    msg: >-
      One of the configurations in matrix_dynamic_dns_domain_configurations is missing a required key (domain, provider, protocol).
  when: "'domain' not in configuration or 'provider' not in configuration or 'protocol' not in configuration"
  with_items: "{{ matrix_dynamic_dns_domain_configurations }}"
  loop_control:
    loop_var: configuration

- name: Fail if required mautrix-dynamic-dns settings not defined
  ansible.builtin.fail:
    msg: >-
      You need to define a required configuration setting (`{{ item.name }}`).
  when: "item.when | bool and vars[item.name] == ''"
  with_items:
    - {'name': 'matrix_dynamic_dns_container_network', when: true}