<?xml version="1.0" encoding="UTF-8" ?>

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.NetworkManager.VPN.Connection">
    <annotation name="org.gtk.GDBus.C.Name" value="VpnConnection"/>

    <tp:docstring>
      Represents an active connection to a Virtual Private Network.
    </tp:docstring>

    <signal name="PropertiesChanged">
        <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap"/>
        <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
        <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
            <tp:docstring>
                A dictionary mapping property names to variant boxed values
            </tp:docstring>
        </arg>
    </signal>

    <property name="VpnState" type="u" access="read" tp:type="NM_VPN_CONNECTION_STATE">
      <tp:docstring>The VPN-specific state of the connection.</tp:docstring>
    </property>
    <property name="Banner" type="s" access="read">
      <tp:docstring>The banner string of the VPN connection.</tp:docstring>
    </property>

    <signal name="VpnStateChanged">
      <tp:docstring>
        Emitted when the state of the VPN connection has changed.
      </tp:docstring>
      <arg name="state" type="u" tp:type="NM_VPN_CONNECTION_STATE">
        <tp:docstring>
          The new state of the VPN connection.
        </tp:docstring>
      </arg>
      <arg name="reason" type="u" tp:type="NM_VPN_CONNECTION_STATE_REASON">
        <tp:docstring>
          Reason code describing the change to the new state.
        </tp:docstring>
      </arg>
    </signal>

    <tp:enum name="NM_VPN_CONNECTION_STATE" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>
          The state of the VPN connection is unknown.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PREPARE" value="1">
        <tp:docstring>
          The VPN connection is preparing to connect.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NEED_AUTH" value="2">
        <tp:docstring>
          The VPN connection needs authorization credentials.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONNECT" value="3">
        <tp:docstring>
          The VPN connection is being established.  FIXME: Should be CONNECTING or CONNECTED.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="IP_CONFIG_GET" value="4">
        <tp:docstring>
          The VPN connection is getting an IP address.  FIXME: Should be an -ING 
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ACTIVATED" value="5">
        <tp:docstring>
          The VPN connection is active.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="FAILED" value="6">
        <tp:docstring>
          The VPN connection failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DISCONNECTED" value="7">
        <tp:docstring>
          The VPN connection is disconnected.
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>
    <tp:enum name="NM_VPN_CONNECTION_STATE_REASON" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>
          The reason for the VPN connection state change is unknown.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NONE" value="1">
        <tp:docstring>
          No reason was given for the VPN connection state change.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="USER_DISCONNECTED" value="2">
        <tp:docstring>
          The VPN connection changed state because the user disconnected it.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DEVICE_DISCONNECTED" value="3">
        <tp:docstring>
          The VPN connection changed state because the device it was using was disconnected.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SERVICE_STOPPED" value="4">
        <tp:docstring>
          The service providing the VPN connection was stopped.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="IP_CONFIG_INVALID" value="5">
        <tp:docstring>
          The IP config of the VPN connection was invalid.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONNECT_TIMEOUT" value="6">
        <tp:docstring>
          The connection attempt to the VPN service timed out.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SERVICE_START_TIMEOUT" value="7">
        <tp:docstring>
          A timeout occurred while starting the service providing the VPN connection.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SERVICE_START_FAILED" value="8">
        <tp:docstring>
          Starting the service starting the service providing the VPN connection failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NO_SECRETS" value="9">
        <tp:docstring>
          Necessary secrets for the VPN connection were not provided.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="LOGIN_FAILED" value="10">
        <tp:docstring>
          Authentication to the VPN server failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONNECTION_REMOVED" value="11">
        <tp:docstring>
          The connection was deleted from settings.
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>
  </interface>
</node>

