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

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.ModemManager.Modem.Gsm.Contacts">
    <method name="Add">
      <tp:docstring>
	Add a new contact to the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_add"/>
      <arg name="name" type="s" direction="in">
	<tp:docstring>
	  The name of the contact.
	</tp:docstring>
      </arg>
      <arg name="number" type="s" direction="in">
	<tp:docstring>
	  The phone number of the contact.
	</tp:docstring>
      </arg>
      <arg name="index" type="u" direction="out">
	<tp:docstring>
	  The index of the new contact.
	</tp:docstring>
      </arg>
    </method>

    <method name="Delete">
      <tp:docstring>
	Delete a contact from the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_delete"/>
      <arg name="index" type="u" direction="in">
	<tp:docstring>
	  The index of the contact.
	</tp:docstring>
      </arg>
    </method>

    <method name="Get">
      <tp:docstring>
	Retrieve a contact from the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_get"/>
      <arg name="index" type="u" direction="in">
	<tp:docstring>
	  The index of the contact.
	</tp:docstring>
      </arg>
      <arg name="contact" type="(uss)" direction="out">
	<tp:docstring>
	  The contact structure containing index, name, and number.
	</tp:docstring>
      </arg>
    </method>

    <method name="List">
      <tp:docstring>
	List all contacts on the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_list"/>
      <arg name="results" type="a(uss)" direction="out">
	<tp:docstring>
	  The list of contacts where each contact has an index, name, and number.
	</tp:docstring>
      </arg>
    </method>

    <method name="Find">
      <tp:docstring>
	Find a contact from the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_find"/>
      <arg name="pattern" type="s" direction="in">
	<tp:docstring>
	  The pattern to search for.
	</tp:docstring>
      </arg>
      <arg name="results" type="a(uss)" direction="out">
	<tp:docstring>
	  The list of matching contacts where a contact has an index, name, and number.
	</tp:docstring>
      </arg>
    </method>

    <method name="GetCount">
      <tp:docstring>
	Get the number of contacts stored on the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_contacts_count"/>
      <arg name="count" type="u" direction="out">
	<tp:docstring>
	  The number of contacts.
	</tp:docstring>
      </arg>
    </method>

  </interface>
</node>
