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

<node name="/org/freedesktop/NetworkManager/Settings" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.NetworkManager.Settings">
    <tp:docstring>
      The Settings interface allows clients to view and administrate the connections stored and used by NetworkManager.
    </tp:docstring>

    <method name="ListConnections">
      <tp:docstring>
        List the saved network connections known to NetworkManager.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_list_connections"/>
      <arg name="connections" type="ao" direction="out">
        <tp:docstring>
          List of connections.
        </tp:docstring>
      </arg>
    </method>

    <method name="GetConnectionByUuid">
      <tp:docstring>
        Retrieve the object path of a connection, given that connection's UUID.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_get_connection_by_uuid"/>
      <arg name="uuid" type="s" direction="in">
        <tp:docstring>
          The UUID to find the connection object path for.
        </tp:docstring>
      </arg>
      <arg name="connection" type="o" direction="out">
        <tp:docstring>
          The connection's object path.
        </tp:docstring>
      </arg>
    </method>

    <method name="AddConnection">
      <tp:docstring>
        Add new connection and save it to disk.  This operation does not start
        the network connection unless (1) device is idle and able to connect to
        the network described by the new connection, and (2) the connection
        is allowed to be started automatically.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_add_connection"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="connection" type="a{sa{sv}}" direction="in">
        <tp:docstring>
          Connection settings and properties.
        </tp:docstring>
      </arg>
      <arg name="path" type="o" direction="out">
        <tp:docstring>
          Object path of the new connection that was just added.
        </tp:docstring>
      </arg>
    </method>

    <method name="SaveHostname">
      <tp:docstring>
        Save the hostname to persistent configuration.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_save_hostname"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="hostname" type="s" direction="in">
        <tp:docstring>
          The hostname to save to persistent configuration.  If blank, the persistent hostname is cleared.
        </tp:docstring>
      </arg>
    </method>

    <property name="Hostname" type="s" access="read">
      <tp:docstring>
        The machine hostname stored in persistent configuration.
      </tp:docstring>
    </property>

    <property name="CanModify" type="b" access="read">
      <tp:docstring>
        If true, adding and modifying connections is supported.
      </tp:docstring>
    </property>

    <signal name="PropertiesChanged">
        <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>

    <signal name="NewConnection">
      <tp:docstring>
        Emitted when a new connection has been added after NetworkManager has
        started up and initialized.  This signal is not emitted for connections
        read while starting up, because NetworkManager's D-Bus service is only
        available after all connections have been read, and to prevent spamming
        listeners with too many signals at one time.  To retrieve the initial
        connection list, call the ListConnections() method once, and then listen
        for individual Settings.NewConnection and Settings.Connection.Deleted
        signals for further updates.
      </tp:docstring>
      <arg name="connection" type="o">
        <tp:docstring>
          Object path of the new connection.
        </tp:docstring>
      </arg>
    </signal>

  </interface>
</node>

