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

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.NetworkManager.Device">
    <property name="Udi" type="s" access="read">
      <tp:docstring>
        Unique Device Identifier.
      </tp:docstring>
    </property>
    <property name="Interface" type="s" access="read">
      <tp:docstring>
        The network interface offered by the device.
      </tp:docstring>
    </property>
    <property name="Driver" type="s" access="read">
      <tp:docstring>
        The driver handling the device.
      </tp:docstring>
    </property>
    <property name="Capabilities" type="u" access="read" tp:type="NM_DEVICE_CAP">
      <tp:docstring>
        Flags describing the capabilities of the device.
      </tp:docstring>
    </property>
    <property name="Ip4Address" type="i" access="read">
      <tp:docstring>
        The IPv4 address bound to the device. FIXME: what about devices with >1 IP address?
      </tp:docstring>
    </property>
    <property name="State" type="u" access="read" tp:type="NM_DEVICE_STATE">
      <tp:docstring>
        The current state of the device.
      </tp:docstring>
    </property>
    <property name="Ip4Config" type="o" access="read">
      <tp:docstring>
        Object path of the Ip4Config object describing the configuration of the device.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
      </tp:docstring>
    </property>
    <property name="Dhcp4Config" type="o" access="read">
      <tp:docstring>
        Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server.  Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
      </tp:docstring>
    </property>
    <property name="Managed" type="b" access="read">
      <tp:docstring>
        Whether or not this device is managed by NetworkManager.
      </tp:docstring>
    </property>
    <property name="DeviceType" type="u" access="read" tp:type="NM_DEVICE_TYPE">
      <tp:docstring>
        The general type of the network device; ie Ethernet, WiFi, etc.
      </tp:docstring>
    </property>


    <signal name="StateChanged">
      <arg name="new_state" type="u" tp:type="NM_DEVICE_STATE">
        <tp:docstring>
          The new state of the device.
        </tp:docstring>
      </arg>
      <arg name="old_state" type="u" tp:type="NM_DEVICE_STATE">
        <tp:docstring>
          The previous state of the device.
        </tp:docstring>
      </arg>
      <arg name="reason" type="u" tp:type="NM_DEVICE_STATE_REASON">
        <tp:docstring>
          A reason for the state transition.
        </tp:docstring>
      </arg>
    </signal>

    <tp:enum name="NM_DEVICE_STATE" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>
          The device is in an unknown state.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="UNMANAGED" value="1">
        <tp:docstring>
          The device is not managed by NetworkManager.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="UNAVAILABLE" value="2">
        <tp:docstring>
          The device cannot be used (carrier off, rfkill, etc).
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DISCONNECTED" value="3">
        <tp:docstring>
          The device is not connected.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PREPARE" value="4">
        <tp:docstring>
          The device is preparing to connect.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONFIG" value="5">
        <tp:docstring>
          The device is being configured.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NEED_AUTH" value="6">
        <tp:docstring>
          The device is awaiting secrets necessary to continue connection.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="IP_CONFIG" value="7">
        <tp:docstring>
          The IP settings of the device are being requested and configured.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ACTIVATED" value="8">
        <tp:docstring>
          The device is active.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="FAILED" value="9">
        <tp:docstring>
          The device is in a failure state following an attempt to activate it.
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>

    <tp:enum name="NM_DEVICE_TYPE" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>
          The device type is unknown.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ETHERNET" value="1">
        <tp:docstring>
          The device is wired Ethernet device.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="WIFI" value="2">
        <tp:docstring>
          The device is an 802.11 WiFi device.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM" value="3">
        <tp:docstring>
          The device is a GSM-based cellular WAN device.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CDMA" value="4">
        <tp:docstring>
          The device is a CDMA/IS-95-based cellular WAN device.
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>

    <tp:flags name="NM_DEVICE_CAP" value-prefix="NM_DEVICE_CAP" type="u">
      <tp:flag suffix="NONE" value="0x0">
        <tp:docstring>Null capability.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="NM_SUPPORTED" value="0x1">
        <tp:docstring>The device is supported by NetworkManager.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="CARRIER_DETECT" value="0x2">
        <tp:docstring>The device supports carrier detection.</tp:docstring>
      </tp:flag>
    </tp:flags>

    <tp:enum name="NM_DEVICE_STATE_REASON" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>
          The reason for the device state change is unknown.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NONE" value="1">
        <tp:docstring>
          The state change is normal.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NOW_MANAGED" value="2">
        <tp:docstring>
          The device is now managed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NOW_UNMANAGED" value="3">
        <tp:docstring>
          The device is no longer managed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONFIG_FAILED" value="4">
        <tp:docstring>
          The device could not be readied for configuration.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONFIG_UNAVAILABLE" value="5">
        <tp:docstring>
          IP configuration could not be reserved (no available address, timeout, etc).
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONFIG_EXPIRED" value="6">
        <tp:docstring>
          The IP configuration is no longer valid.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NO_SECRETS" value="7">
        <tp:docstring>
          Secrets were required, but not provided.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SUPPLICANT_DISCONNECT" value="8">
        <tp:docstring>
          The 802.1X supplicant disconnected from the access point or authentication server.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SUPPLICANT_CONFIG_FAILED" value="9">
        <tp:docstring>
          Configuration of the 802.1X supplicant failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SUPPLICANT_FAILED" value="10">
        <tp:docstring>
          The 802.1X supplicant quit or failed unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SUPPLICANT_TIMEOUT" value="11">
        <tp:docstring>
          The 802.1X supplicant took too long to authenticate.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PPP_START_FAILED" value="12">
        <tp:docstring>
          The PPP service failed to start within the allowed time.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PPP_DISCONNECT" value="13">
        <tp:docstring>
          The PPP service disconnected unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PPP_FAILED" value="14">
        <tp:docstring>
          The PPP service quit or failed unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DHCP_START_FAILED" value="15">
        <tp:docstring>
          The DHCP service failed to start within the allowed time.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DHCP_ERROR" value="16">
        <tp:docstring>
          The DHCP service reported an unexpected error.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="DHCP_FAILED" value="17">
        <tp:docstring>
          The DHCP service quit or failed unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SHARED_START_FAILED" value="18">
        <tp:docstring>
          The shared connection service failed to start.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SHARED_FAILED" value="19">
        <tp:docstring>
          The shared connection service quit or failed unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="AUTOIP_START_FAILED" value="20">
        <tp:docstring>
          The AutoIP service failed to start.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="AUTOIP_ERROR" value="21">
        <tp:docstring>
          The AutoIP service reported an unexpected error.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="AUTOIP_FAILED" value="22">
        <tp:docstring>
          The AutoIP service quit or failed unexpectedly.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_BUSY" value="23">
        <tp:docstring>
          Dialing failed because the line was busy.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_NO_DIAL_TONE" value="24">
        <tp:docstring>
          Dialing failed because there was no dial tone.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_NO_CARRIER" value="25">
        <tp:docstring>
          Dialing failed because there was carrier.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_DIAL_TIMEOUT" value="26">
        <tp:docstring>
          Dialing timed out.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_DIAL_FAILED" value="27">
        <tp:docstring>
          Dialing failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="MODEM_INIT_FAILED" value="28">
        <tp:docstring>
          Modem initialization failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_APN_FAILED" value="29">
        <tp:docstring>
          Failed to select the specified GSM APN.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_REGISTRATION_NOT_SEARCHING" value="30">
        <tp:docstring>
          Not searching for networks.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_REGISTRATION_DENIED" value="31">
        <tp:docstring>
          Network registration was denied.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_REGISTRATION_TIMEOUT" value="32">
        <tp:docstring>
          Network registration timed out.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_REGISTRATION_FAILED" value="33">
        <tp:docstring>
          Failed to register with the requested GSM network.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="GSM_PIN_CHECK_FAILED" value="34">
        <tp:docstring>
          PIN check failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="FIRMWARE_MISSING" value="35">
        <tp:docstring>
          Necessary firmware for the device may be missing.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="REMOVED" value="36">
        <tp:docstring>
          The device was removed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SLEEPING" value="37">
        <tp:docstring>
          NetworkManager went to sleep.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CONNECTION_REMOVED" value="38">
        <tp:docstring>
          The device's active connection was removed or disappeared.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="USER_REQUESTED" value="39">
        <tp:docstring>
          A user or client requested the disconnection.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="CARRIER" value="40">
        <tp:docstring>
          The device's carrier/link changed.
        </tp:docstring>
      </tp:enumvalue>
	</tp:enum>

  </interface>
</node>
