<?xml version="1.0"?>
<interfaceDefinition>
  <node name="service">
    <children>
      <node name="aws">
        <properties>
          <help>Amazon Web Service</help>
          <priority>1280</priority>
        </properties>
        <children>
          <node name="glb" owner="${vyos_conf_scripts_dir}/service_aws_glb.py">
            <properties>
              <help>Gateway load-balancer tunnel handler</help>
            </properties>
            <children>
              <node name="script">
                <properties>
                  <help>Script executed on create or destroy tunnel</help>
                </properties>
                <children>
                  <leafNode name="on-create">
                    <properties>
                      <help>Script to run when interface is created</help>
                      <constraint>
                        <validator name="script"/>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="on-destroy">
                    <properties>
                      <help>Script to run when interface is destroyed</help>
                      <constraint>
                        <validator name="script"/>
                      </constraint>
                    </properties>
                  </leafNode>
                </children>
              </node>
              <node name="status">
                <properties>
                  <help>Status</help>
                </properties>
                <children>
                  <leafNode name="format">
                    <properties>
                      <help>Statistic format</help>
                      <completionHelp>
                        <list>simple full</list>
                      </completionHelp>
                      <valueHelp>
                        <format>simple</format>
                        <description>Simple format</description>
                      </valueHelp>
                      <valueHelp>
                        <format>full</format>
                        <description>Full format</description>
                      </valueHelp>
                      <constraint>
                        <regex>(simple|full)</regex>
                      </constraint>
                    </properties>
                  </leafNode>
                  #include <include/port-number.xml.i>
                </children>
              </node>
              <node name="threads">
                <properties>
                  <help>Threads settings</help>
                </properties>
                <children>
                  <leafNode name="tunnel">
                    <properties>
                      <help>Number of threads for each tunnel processor</help>
                      <valueHelp>
                        <format>u32:1-256</format>
                        <description>Number of threads</description>
                      </valueHelp>
                      <constraint>
                        <validator name="numeric" argument="--range 1-256"/>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="tunnel-affinity">
                    <properties>
                      <help>List of cores worker threads</help>
                      <valueHelp>
                        <format>&lt;idN&gt;-&lt;idM&gt;</format>
                        <description>CPU core id range (use '-' as delimiter)</description>
                      </valueHelp>
                      <constraint>
                        <validator name="numeric" argument="--allow-range --range 0-255"/>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="udp">
                    <properties>
                      <help>Number of threads for UDP receiver</help>
                      <valueHelp>
                        <format>u32:1-256</format>
                        <description>Number of threads</description>
                      </valueHelp>
                      <constraint>
                        <validator name="numeric" argument="--range 1-256"/>
                      </constraint>
                    </properties>
                  </leafNode>
                  <leafNode name="udp-affinity">
                    <properties>
                      <help>List of cores worker threads</help>
                      <valueHelp>
                        <format>&lt;idN&gt;-&lt;idM&gt;</format>
                        <description>CPU core id range (use '-' as delimiter)</description>
                      </valueHelp>
                      <constraint>
                        <validator name="numeric" argument="--allow-range --range 0-255"/>
                      </constraint>
                    </properties>
                  </leafNode>
                </children>
              </node>
            </children>
          </node>
        </children>
      </node>
    </children>
  </node>
</interfaceDefinition>