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

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.NetworkManagerSettings.System">
    <tp:docstring>
      Implemented by the system settings service to provide additional settings to NetworkManager.
    </tp:docstring>

    <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="CheckPermissions">
      <tp:docstring>
        Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.
      </tp:docstring>
    </signal>

    <method name="GetPermissions">
      <tp:docstring>
        Returns a bitfield indicating certain operations the caller is permitted to perform.  Some of these operations may require authorization by the user.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_settings_get_permissions"/>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="permissions" type="u" direction="out" tp:type="NM_SETTINGS_SYSTEM_PERMISSIONS">
        <tp:docstring>
          A bitfield of permitted operations.  Some of these operations may require the user to authorize via password entry or other means.
        </tp:docstring>
      </arg>
    </method>

    <tp:flags name="NM_SETTINGS_SYSTEM_PERMISSIONS" value-prefix="NM_SETTINGS_SYSTEM_PERMISSION" type="u">
      <tp:flag suffix="NONE" value="0x0">
        <tp:docstring>No permissions.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="CONNECTION_MODIFY" value="0x1">
        <tp:docstring>Can modify/add/delete connections.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="WIFI_SHARING_PROTECTED" value="0x2">
        <tp:docstring>Can share connections via a encrypted user-created WiFi network.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="WIFI_SHARING_OPEN" value="0x4">
        <tp:docstring>Can share connections via a open/unencrypted user-created WiFi network.</tp:docstring>
      </tp:flag>
      <tp:flag suffix="HOSTNAME_MODIFY" value="0x8">
        <tp:docstring>Can modify the persistent system hostname.</tp:docstring>
      </tp:flag>
    </tp:flags>

  </interface>
</node>

