[[inputs.contrail]]
{%- if values.interval is defined %}
  interval = "{{ values.interval }}"
{%- endif %}
  ifmap_count = {{ values.ifmap_count|default("false")|lower }}
{%- for tag_name, tag_value in values.get('checks', {}).iteritems() %}
  {%- if tag_value.url is defined and tag_value.xml_element is defined %}
  [[inputs.contrail.checks]]
    url = "{{ tag_value.url }}"
    xml_element = "{{ tag_value.xml_element }}"
    name = "{{ tag_name }}"
      {%- if tag_value.result_type is defined %}
    result_type = "{{ tag_value.result_type }}"
      {%- endif %}
      {%- if tag_value.state is defined %}
    state = "{{ tag_value.state }}"
      {%- endif %}
  {%- endif %}
{%- endfor %}
