<?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"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <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=""/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantDictMap"/>
      <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="AddConnectionUnsaved">
      <tp:docstring>
        Add new connection but do not save it to disk immediately.  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.

        Use the 'Save' method on the connection to save these changes
        to disk. Note that unsaved changes will be lost if the
        connection is reloaded from disk (either automatically on file
        change or due to an explicit ReloadConnections call).
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_add_connection_unsaved"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantDictMap"/>
      <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="LoadConnections">
      <tp:docstring>
        Loads or reloads the indicated connections from disk. You
        should call this after making changes directly to an on-disk
        connection file to make sure that NetworkManager sees the
        changes. (If "monitor-connection-files" in NetworkManager.conf
        is "true", then this will have no real effect, but is
        harmless.) As with AddConnection(), this operation does not
        necessarily start the network connection.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_load_connections"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="filenames" type="as" direction="in">
        <tp:docstring>
          Array of paths to on-disk connection profiles in directories
          monitored by NetworkManager.
        </tp:docstring>
      </arg>
      <arg name="status" type="b" direction="out">
        <tp:docstring>
          Success or failure of the operation as a whole. True if
          NetworkManager at least tried to load the indicated
          connections, even if it did not succeed. False if an error
          occurred before trying to load the connections (eg,
          permission denied).
        </tp:docstring>
      </arg>
      <arg name="failures" type="as" direction="out">
        <tp:docstring>
          Paths of connection files that could not be loaded.
        </tp:docstring>
      </arg>
    </method>

    <method name="ReloadConnections">
      <tp:docstring>
        Tells NetworkManager to reload all connection files from disk,
        including noticing any added or deleted connection files. By
        default, connections are re-read automatically any time they
        change, so you only need to use this command if you have set
        "monitor-connection-files=false" in NetworkManager.conf.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_reload_connections"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="status" type="b" direction="out">
        <tp:docstring>
          Success or failure.
        </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="Connections" type="ao" access="read">
      <tp:docstring>
        List of object paths of available network connection profiles.
      </tp:docstring>
    </property>

    <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">
        <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>

    <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>

    <signal name="ConnectionRemoved">
      <tp:docstring>
        Emitted when a connection is no longer available.  This happens when
        the connection is deleted or if it is no longer accessible by any of
        the system's logged-in users.  After receipt of this signal, the
        connection no longer exists and cannot be used.  Also see the
        Settings.Connection.Removed signal.
      </tp:docstring>
      <arg name="connection" type="o">
        <tp:docstring>
          Object path of the removed connection.
        </tp:docstring>
      </arg>
    </signal>

  </interface>
</node>

