<?xml version="1.0" encoding="UTF-8"?>
<node name="/">
  <interface name="org.freedesktop.nm_dispatcher">
    <annotation name="org.gtk.GDBus.C.Name" value="Dispatcher"/>

    <!--
        Action:
        @action: The action being performed.
        @connection: The connection for which this action was triggered.
        @connection_properties: Properties of the connection, including service and path.
        @device_properties: Properties of the device, including type, path, interface, and state.
        @device_ip4_config: Properties of the device's IPv4 configuration.
        @device_ip6_config: Properties of the device's IPv6 configuration.
        @device_dhcp4_config: Properties of the device's DHCPv4 configuration.
        @device_dhcp6_config: Properties of the device's DHCPv6 configuration.
        @vpn_ip_iface: VPN interface name.
        @vpn_ip4_config: Properties of the VPN's IPv4 configuration.
        @vpn_ip6_config: Properties of the VPN's IPv6 configuration.
        @debug: Whether to log debug output.
        @results: Results of dispatching operations. Each element of the returned array is a struct containing the path of an executed script (s), the result of running that script (u), and a description of the result (s).

        INTERNAL; not public API. Perform an action.
    -->
    <method name="Action">
      <arg name="action" type="s" direction="in"/>
      <arg name="connection" type="a{sa{sv}}" direction="in"/>
      <arg name="connection_properties" type="a{sv}" direction="in"/>
      <arg name="device_properties" type="a{sv}" direction="in"/>
      <arg name="device_ip4_config" type="a{sv}" direction="in"/>
      <arg name="device_ip6_config" type="a{sv}" direction="in"/>
      <arg name="device_dhcp4_config" type="a{sv}" direction="in"/>
      <arg name="device_dhcp6_config" type="a{sv}" direction="in"/>
      <arg name="vpn_ip_iface" type="s" direction="in"/>
      <arg name="vpn_ip4_config" type="a{sv}" direction="in"/>
      <arg name="vpn_ip6_config" type="a{sv}" direction="in"/>
      <arg name="debug" type="b" direction="in"/>
      <arg name="results" type="a(sus)" direction="out"/>
    </method>
  </interface>
</node>
