ruleset(name="{{ item.name }}") {
    action(name="{{ item.name }}"
           type="omrelp"
           target="{{ item.target }}"
           port="{{ item.port | d(20514) | int }}"
{% if item.tls | default(true) %}
{%   if item.ca_cert is defined %}
{%     set __cacert = item.ca_cert %}
{%   elif item.ca_cert_src is defined %}
{%     set __cacert = __rsyslog_default_pki_path + __rsyslog_default_pki_cert_dir + item.ca_cert_src | basename %}
{%   else %}
{%     set __cacert = __rsyslog_default_pki_path + __rsyslog_default_pki_cert_dir + 'relp-ca.crt' %}
{%   endif %}
{%   if item.cert is defined %}
{%     set __mycert = item.cert %}
{%   elif item.cert_src is defined %}
{%     set __mycert = __rsyslog_default_pki_path + __rsyslog_default_pki_cert_dir + item.cert_src | basename %}
{%   else %}
{%     set __mycert = __rsyslog_default_pki_path + __rsyslog_default_pki_cert_dir + 'relp-cert.pem' %}
{%   endif %}
{%   if item.private_key is defined %}
{%     set __myprivkey = item.private_key %}
{%   elif item.private_key_src is defined %}
{%     set __myprivkey = __rsyslog_default_pki_path + __rsyslog_default_pki_key_dir + item.private_key_src | basename %}
{%   else %}
{%     set __myprivkey = __rsyslog_default_pki_path + __rsyslog_default_pki_key_dir + 'relp-key.pem' %}
{%   endif %}
           tls="on"
           tls.cacert="{{ __cacert }}"
           tls.mycert="{{ __mycert }}"
           tls.myprivkey="{{ __myprivkey }}"
           tls.authmode="{{ item.pki_authmode | d('name') }}"
{%   if item.permitted_servers is defined %}
           tls.permittedpeer=["{{ item.permitted_servers | join('","') }}"]
{%   else %}
           tls.permittedpeer=["{{ '*.' + logging_domain }}"]
{%   endif %}
{% endif %}
    )
}
