<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="libsecret-1"/>
  <c:include name="libsecret/secret.h"/>
  <namespace name="Secret"
             version="1"
             shared-library="libsecret-1.so.0"
             c:identifier-prefixes="Secret"
             c:symbol-prefixes="secret">
    <constant name="COLLECTION_DEFAULT"
              value="default"
              c:type="SECRET_COLLECTION_DEFAULT">
      <doc xml:space="preserve">An alias to the default collection. This can be passed to secret_password_store()
secret_collection_for_alias().</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="COLLECTION_SESSION"
              value="session"
              c:type="SECRET_COLLECTION_SESSION">
      <doc xml:space="preserve">An alias to the session collection, which will be cleared when the user ends
the session. This can be passed to secret_password_store(),
secret_collection_for_alias() or similar functions.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Collection"
           c:symbol-prefix="collection"
           c:type="SecretCollection"
           parent="Gio.DBusProxy"
           glib:type-name="SecretCollection"
           glib:get-type="secret_collection_get_type"
           glib:type-struct="CollectionClass">
      <doc xml:space="preserve">A proxy object representing a collection of secrets in the Secret Service.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new_for_dbus_path_finish"
                   c:identifier="secret_collection_new_for_dbus_path_finish"
                   introspectable="0"
                   throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to get a new collection proxy for a
collection in the secret service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new collection, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_dbus_path_sync"
                   c:identifier="secret_collection_new_for_dbus_path_sync"
                   introspectable="0"
                   stability="Unstable"
                   throws="1">
        <doc xml:space="preserve">Get a new collection proxy for a collection in the secret service.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new collection, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="collection_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of the collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">options for the collection initialization</doc>
            <type name="CollectionFlags" c:type="SecretCollectionFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="create" c:identifier="secret_collection_create">
        <doc xml:space="preserve">Create a new collection in the secret service.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that are required.

An @alias is a well-known tag for a collection, such as 'default' (ie: the
default collection to store items in). This allows other applications to
easily identify and share a collection. If you specify an @alias, and a
collection with that alias already exists, then a new collection will not
be created. The previous one will be returned instead.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the new collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="alias"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">alias to assign to the collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">currently unused</doc>
            <type name="CollectionCreateFlags"
                  c:type="SecretCollectionCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_finish"
                c:identifier="secret_collection_create_finish"
                throws="1">
        <doc xml:space="preserve">Finish operation to create a new collection in the secret service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new collection, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_sync"
                c:identifier="secret_collection_create_sync"
                throws="1">
        <doc xml:space="preserve">Create a new collection in the secret service.

This method may block indefinitely and should not be used in user interface
threads. The secret service may prompt the user. secret_service_prompt()
will be used to handle any prompts that are required.

An @alias is a well-known tag for a collection, such as 'default' (ie: the
default collection to store items in). This allows other applications to
easily identify and share a collection. If you specify an @alias, and a
collection with that alias already exists, then a new collection will not
be created. The previous one will be returned instead.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new collection, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the new collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="alias"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">alias to assign to the collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">currently unused</doc>
            <type name="CollectionCreateFlags"
                  c:type="SecretCollectionCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="for_alias" c:identifier="secret_collection_for_alias">
        <doc xml:space="preserve">Lookup which collection is assigned to this alias. Aliases help determine
well known collections, such as 'default'.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">options for the collection initialization</doc>
            <type name="CollectionFlags" c:type="SecretCollectionFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="for_alias_finish"
                c:identifier="secret_collection_for_alias_finish"
                throws="1">
        <doc xml:space="preserve">Finish an asynchronous operation to lookup which collection is assigned
to an alias.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the collection, or %NULL if none assigned to the alias</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="for_alias_sync"
                c:identifier="secret_collection_for_alias_sync"
                throws="1">
        <doc xml:space="preserve">Lookup which collection is assigned to this alias. Aliases help determine
well known collections, such as 'default'.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block and should not be used in user interface threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the collection, or %NULL if none assigned to the alias</doc>
          <type name="Collection" c:type="SecretCollection*"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">options for the collection initialization</doc>
            <type name="CollectionFlags" c:type="SecretCollectionFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_dbus_path"
                c:identifier="secret_collection_new_for_dbus_path"
                introspectable="0"
                stability="Unstable">
        <doc xml:space="preserve">Get a new collection proxy for a collection in the secret service.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="collection_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of the collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">options for the collection initialization</doc>
            <type name="CollectionFlags" c:type="SecretCollectionFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="delete" c:identifier="secret_collection_delete">
        <doc xml:space="preserve">Delete this collection.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_finish"
              c:identifier="secret_collection_delete_finish"
              throws="1">
        <doc xml:space="preserve">Complete operation to delete this collection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the collection was successfully deleted or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_sync"
              c:identifier="secret_collection_delete_sync"
              throws="1">
        <doc xml:space="preserve">Delete this collection.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the collection was successfully deleted or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_created" c:identifier="secret_collection_get_created">
        <doc xml:space="preserve">Get the created date and time of the collection. The return value is
the number of seconds since the unix epoch, January 1st 1970.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the created date and time</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="secret_collection_get_flags">
        <doc xml:space="preserve">Get the flags representing what features of the #SecretCollection proxy
have been initialized.

Use secret_collection_load_items()  to initialize further features
and change the flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the flags for features initialized</doc>
          <type name="CollectionFlags" c:type="SecretCollectionFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection proxy</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_items" c:identifier="secret_collection_get_items">
        <doc xml:space="preserve">Get the list of items in this collection.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of items,
when done, the list should be freed with g_list_free, and each item should
be released with g_object_unref()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Item"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label" c:identifier="secret_collection_get_label">
        <doc xml:space="preserve">Get the label of this collection.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the label, which should be freed with g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locked" c:identifier="secret_collection_get_locked">
        <doc xml:space="preserve">Get whether the collection is locked or not.

Use secret_service_lock() or secret_service_unlock() to lock or unlock the
collection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the collection is locked or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified"
              c:identifier="secret_collection_get_modified">
        <doc xml:space="preserve">Get the modified date and time of the collection. The return value is
the number of seconds since the unix epoch, January 1st 1970.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the modified date and time</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_service" c:identifier="secret_collection_get_service">
        <doc xml:space="preserve">Get the Secret Service object that this collection was created with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the Secret Service object</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_items" c:identifier="secret_collection_load_items">
        <doc xml:space="preserve">Ensure that the #SecretCollection proxy has loaded all the items present
in the Secret Service. This affects the result of
secret_collection_get_items().

For collections returned from secret_service_get_collections() the items
will have already been loaded.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_items_finish"
              c:identifier="secret_collection_load_items_finish"
              throws="1">
        <doc xml:space="preserve">Complete an asynchronous operation to ensure that the #SecretCollection proxy
has loaded all the items present in the Secret Service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the load was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_items_sync"
              c:identifier="secret_collection_load_items_sync"
              throws="1">
        <doc xml:space="preserve">Ensure that the #SecretCollection proxy has loaded all the items present
in the Secret Service. This affects the result of
secret_collection_get_items().

For collections returned from secret_service_get_collections() the items
will have already been loaded.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the load was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh" c:identifier="secret_collection_refresh">
        <doc xml:space="preserve">Refresh the properties on this collection. This fires off a request to
refresh, and the properties will be updated later.

Calling this method is not normally necessary, as the secret service
will notify the client when properties change.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search" c:identifier="secret_collection_search">
        <doc xml:space="preserve">Search for items matching the @attributes in the @collection.
The @attributes should be a table of string keys and string values.

If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the
search will be returned. Otherwise only the first item will be returned.
This is almost always the unlocked item that was most recently stored.

If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked
if necessary. In either case, locked and unlocked items will match the
search and be returned. If the unlock fails, the search does not fail.

If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have
their secret values loaded and available via secret_item_get_secret().

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">search option flags</doc>
            <type name="SearchFlags" c:type="SecretSearchFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_finish"
              c:identifier="secret_collection_search_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to search for items in a collection.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
         a list of items that matched the search</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Item"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths"
              c:identifier="secret_collection_search_for_dbus_paths"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Search for items in @collection matching the @attributes, and return their
DBus object paths. Only the specified collection is searched. The @attributes
should be a table of string keys and string values.

This function returns immediately and completes asynchronously.

When your callback is called use secret_collection_search_for_dbus_paths_finish()
to get the results of this function. Only the DBus object paths of the
items will be returned. If you would like #SecretItem objects to be returned
instead, then use the secret_collection_search() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths_finish"
              c:identifier="secret_collection_search_for_dbus_paths_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to search for items in a collection.

DBus object paths of the items will be returned. If you would to have
#SecretItem objects to be returned instead, then use the
secret_collection_search() and secret_collection_search_finish() functions.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an array of DBus object
         paths for matching items.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths_sync"
              c:identifier="secret_collection_search_for_dbus_paths_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Search for items matching the @attributes in @collection, and return their
DBus object paths. The @attributes should be a table of string keys and
string values.

This function may block indefinetely. Use the asynchronous version
in user interface threads.

DBus object paths of the items will be returned. If you would to have
#SecretItem objects to be returned instead, then use the
secret_collection_search_sync() function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an array of DBus object
         paths for matching items.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">the secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_sync"
              c:identifier="secret_collection_search_sync"
              throws="1">
        <doc xml:space="preserve">Search for items matching the @attributes in the @collection.
The @attributes should be a table of string keys and string values.

If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the
search will be returned. Otherwise only the first item will be returned.
This is almost always the unlocked item that was most recently stored.

If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked
if necessary. In either case, locked and unlocked items will match the
search and be returned. If the unlock fails, the search does not fail.

If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have
their secret values loaded and available via secret_item_get_secret().

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
         a list of items that matched the search</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Item"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">search option flags</doc>
            <type name="SearchFlags" c:type="SecretSearchFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="secret_collection_set_label">
        <doc xml:space="preserve">Set the label of this collection.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a new label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_finish"
              c:identifier="secret_collection_set_label_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to set the label of this collection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_sync"
              c:identifier="secret_collection_set_label_sync"
              throws="1">
        <doc xml:space="preserve">Set the label of this collection.

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a new label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="created" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The date and time (in seconds since the UNIX epoch) that this
collection was created.</doc>
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="flags"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A set of flags describing which parts of the secret collection have
been initialized.</doc>
        <type/>
      </property>
      <property name="items" introspectable="0" transfer-ownership="none">
        <doc xml:space="preserve">A list of #SecretItem objects representing the items that are in
this collection. This list will be empty if the collection is locked.</doc>
        <type/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The human readable label for the collection.

Setting this property will result in the label of the collection being
set asynchronously. To properly track the changing of the label use the
secret_collection_set_label() function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="locked" transfer-ownership="none">
        <doc xml:space="preserve">Whether the collection is locked or not.

To lock or unlock a collection use the secret_service_lock() or
secret_service_unlock() functions.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="modified" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The date and time (in seconds since the UNIX epoch) that this
collection was last modified.</doc>
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="service"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #SecretService object that this collection is associated with and
uses to interact with the actual D-Bus Secret Service.</doc>
        <type name="Service"/>
      </property>
      <field name="parent">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="CollectionPrivate" c:type="SecretCollectionPrivate*"/>
      </field>
    </class>
    <record name="CollectionClass"
            c:type="SecretCollectionClass"
            glib:is-gtype-struct-for="Collection">
      <doc xml:space="preserve">The class for #SecretCollection.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">the parent class</doc>
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="CollectionCreateFlags"
              c:type="SecretCollectionCreateFlags">
      <doc xml:space="preserve">Flags for secret_collection_create().</doc>
      <member name="collection_create_none"
              value="0"
              c:identifier="SECRET_COLLECTION_CREATE_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
    </bitfield>
    <bitfield name="CollectionFlags" c:type="SecretCollectionFlags">
      <doc xml:space="preserve">Flags which determine which parts of the #SecretCollection proxy are initialized.</doc>
      <member name="none" value="0" c:identifier="SECRET_COLLECTION_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
      <member name="load_items"
              value="2"
              c:identifier="SECRET_COLLECTION_LOAD_ITEMS">
        <doc xml:space="preserve">items have or should be loaded</doc>
      </member>
    </bitfield>
    <record name="CollectionPrivate"
            c:type="SecretCollectionPrivate"
            disguised="1">
    </record>
    <enumeration name="Error" c:type="SecretError">
      <member name="protocol" value="1" c:identifier="SECRET_ERROR_PROTOCOL">
      </member>
      <member name="is_locked" value="2" c:identifier="SECRET_ERROR_IS_LOCKED">
      </member>
      <member name="no_such_object"
              value="3"
              c:identifier="SECRET_ERROR_NO_SUCH_OBJECT">
      </member>
      <member name="already_exists"
              value="4"
              c:identifier="SECRET_ERROR_ALREADY_EXISTS">
      </member>
    </enumeration>
    <class name="Item"
           c:symbol-prefix="item"
           c:type="SecretItem"
           parent="Gio.DBusProxy"
           glib:type-name="SecretItem"
           glib:get-type="secret_item_get_type"
           glib:type-struct="ItemClass">
      <doc xml:space="preserve">A proxy object representing a secret item in the Secret Service.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new_for_dbus_path_finish"
                   c:identifier="secret_item_new_for_dbus_path_finish"
                   introspectable="0"
                   stability="Unstable"
                   throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to get a new item proxy for an secret
item in the secret service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new item, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Item" c:type="SecretItem*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_dbus_path_sync"
                   c:identifier="secret_item_new_for_dbus_path_sync"
                   introspectable="0"
                   stability="Unstable"
                   throws="1">
        <doc xml:space="preserve">Get a new item proxy for a secret item in the secret service.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new item, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Item" c:type="SecretItem*"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of the item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">initialization flags for the new item</doc>
            <type name="ItemFlags" c:type="SecretItemFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="create" c:identifier="secret_item_create">
        <doc xml:space="preserve">Create a new item in the secret service.

If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret
service will search for an item matching the @attributes, and update that item
instead of creating a new one.

This method may block indefinitely and should not be used in user interface
threads. The secret service may prompt the user. secret_service_prompt()
will be used to handle any prompts that are required.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">a secret collection to create this item in</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">attributes for the new item</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the new item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">secret value for the new item</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the creation of the new item</doc>
            <type name="ItemCreateFlags" c:type="SecretItemCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="8">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_finish"
                c:identifier="secret_item_create_finish"
                throws="1">
        <doc xml:space="preserve">Finish operation to create a new item in the secret service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new item, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Item" c:type="SecretItem*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_sync"
                c:identifier="secret_item_create_sync"
                throws="1">
        <doc xml:space="preserve">Create a new item in the secret service.

If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret
service will search for an item matching the @attributes, and update that item
instead of creating a new one.

This method may block indefinitely and should not be used in user interface
threads. The secret service may prompt the user. secret_service_prompt()
will be used to handle any prompts that are required.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new item, which should be unreferenced
         with g_object_unref()</doc>
          <type name="Item" c:type="SecretItem*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">a secret collection to create this item in</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">attributes for the new item</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the new item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">secret value for the new item</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the creation of the new item</doc>
            <type name="ItemCreateFlags" c:type="SecretItemCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="load_secrets" c:identifier="secret_item_load_secrets">
        <doc xml:space="preserve">Load the secret values for an secret items stored in the service.

The @items must all have the same SecretItem::service property.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">the items to retrieve secrets for</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Item"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="load_secrets_finish"
                c:identifier="secret_item_load_secrets_finish"
                throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to load the secret values for
secret items stored in the service.

Items that are locked will not have their secrets loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the operation succeeded or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="load_secrets_sync"
                c:identifier="secret_item_load_secrets_sync"
                throws="1">
        <doc xml:space="preserve">Load the secret values for an secret items stored in the service.

The @items must all have the same SecretItem::service property.

This method may block indefinitely and should not be used in user interface
threads.

Items that are locked will not have their secrets loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the operation succeeded or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">the items to retrieve secrets for</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Item"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_dbus_path"
                c:identifier="secret_item_new_for_dbus_path"
                introspectable="0"
                stability="Unstable">
        <doc xml:space="preserve">Get a new item proxy for a secret item in the secret service.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of the collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">initialization flags for the new item</doc>
            <type name="ItemFlags" c:type="SecretItemFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="delete" c:identifier="secret_item_delete">
        <doc xml:space="preserve">Delete this item.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_finish"
              c:identifier="secret_item_delete_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to delete the secret item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the item was successfully deleted or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_sync"
              c:identifier="secret_item_delete_sync"
              throws="1">
        <doc xml:space="preserve">Delete this secret item.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the item was successfully deleted or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attributes" c:identifier="secret_item_get_attributes">
        <doc xml:space="preserve">Set the attributes of this item.

The @attributes are a mapping of string keys to string values.
Attributes are used to search for items. Attributes are not stored
or transferred securely by the secret service.

Do not modify the attributes returned by this method. Use
secret_item_set_attributes() instead.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new reference
         to the attributes, which should not be modified, and
         released with g_hash_table_unref()</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created" c:identifier="secret_item_get_created">
        <doc xml:space="preserve">Get the created date and time of the item. The return value is
the number of seconds since the unix epoch, January 1st 1970.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the created date and time</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="secret_item_get_flags">
        <doc xml:space="preserve">Get the flags representing what features of the #SecretItem proxy
have been initialized.

Use secret_item_load_secret() to initialize further features
and change the flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the flags for features initialized</doc>
          <type name="ItemFlags" c:type="SecretItemFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret item proxy</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label" c:identifier="secret_item_get_label">
        <doc xml:space="preserve">Get the label of this item.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the label, which should be freed with g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locked" c:identifier="secret_item_get_locked">
        <doc xml:space="preserve">Get whether the item is locked or not.

Depending on the secret service an item may not be able to be locked
independently from the collection that it is in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the item is locked or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified" c:identifier="secret_item_get_modified">
        <doc xml:space="preserve">Get the modified date and time of the item. The return value is
the number of seconds since the unix epoch, January 1st 1970.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the modified date and time</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_schema_name"
              c:identifier="secret_item_get_schema_name">
        <doc xml:space="preserve">Gets the name of the schema that this item was stored with. This is also
available at the &lt;literal&gt;xdg:schema&lt;/literal&gt; attribute.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the schema name</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_secret" c:identifier="secret_item_get_secret">
        <doc xml:space="preserve">Get the secret value of this item. If this item is locked or the secret
has not yet been loaded then this will return %NULL.

To load the secret call the secret_item_load_secret() method.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the secret value which should be
         released with secret_value_unref(), or %NULL</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_service" c:identifier="secret_item_get_service">
        <doc xml:space="preserve">Get the Secret Service object that this item was created with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the Secret Service object</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_secret" c:identifier="secret_item_load_secret">
        <doc xml:space="preserve">Load the secret value of this item.

Each item has a single secret which might be a password or some
other secret binary value.

This function will fail if the secret item is locked.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item proxy</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_secret_finish"
              c:identifier="secret_item_load_secret_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to load the secret value of this item.

The newly loaded secret value can be accessed by calling
secret_item_get_secret().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the secret item successfully loaded or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item proxy</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_secret_sync"
              c:identifier="secret_item_load_secret_sync"
              throws="1">
        <doc xml:space="preserve">Load the secret value of this item.

Each item has a single secret which might be a password or some
other secret binary value.

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the secret item successfully loaded or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh" c:identifier="secret_item_refresh">
        <doc xml:space="preserve">Refresh the properties on this item. This fires off a request to
refresh, and the properties will be updated later.

Calling this method is not normally necessary, as the secret service
will notify the client when properties change.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the collection</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_attributes" c:identifier="secret_item_set_attributes">
        <doc xml:space="preserve">Set the attributes of this item.

The @attributes are a mapping of string keys to string values.
Attributes are used to search for items. Attributes are not stored
or transferred securely by the secret service.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">a new set of attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the asynchronous operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes_finish"
              c:identifier="secret_item_set_attributes_finish"
              throws="1">
        <doc xml:space="preserve">Complete operation to set the attributes of this item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes_sync"
              c:identifier="secret_item_set_attributes_sync"
              throws="1">
        <doc xml:space="preserve">Set the attributes of this item.

The @attributes are a mapping of string keys to string values.
Attributes are used to search for items. Attributes are not stored
or transferred securely by the secret service.

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">a new set of attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="secret_item_set_label">
        <doc xml:space="preserve">Set the label of this item.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a new label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_finish"
              c:identifier="secret_item_set_label_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to set the label of this collection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_sync"
              c:identifier="secret_item_set_label_sync"
              throws="1">
        <doc xml:space="preserve">Set the label of this item.

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">a new label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secret" c:identifier="secret_item_set_secret">
        <doc xml:space="preserve">Set the secret value of this item.

Each item has a single secret which might be a password or some
other secret binary value.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a new secret value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secret_finish"
              c:identifier="secret_item_set_secret_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to set the secret value of this item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secret_sync"
              c:identifier="secret_item_set_secret_sync"
              throws="1">
        <doc xml:space="preserve">Set the secret value of this item.

Each item has a single secret which might be a password or some
other secret binary value.

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the change was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an item</doc>
            <type name="Item" c:type="SecretItem*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">a new secret value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attributes" writable="1" transfer-ownership="full">
        <doc xml:space="preserve">The attributes set on this item. Attributes are used to locate an
item. They are not guaranteed to be stored or transferred securely.</doc>
        <type name="GLib.HashTable">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </property>
      <property name="created" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The date and time (in seconds since the UNIX epoch) that this
item was created.</doc>
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="flags"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A set of flags describing which parts of the secret item have
been initialized.</doc>
        <type/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The human readable label for the item.

Setting this property will result in the label of the item being
set asynchronously. To properly track the changing of the label use the
secret_item_set_label() function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="locked" transfer-ownership="none">
        <doc xml:space="preserve">Whether the item is locked or not. An item may not be independently
lockable separate from other items in its collection.

To lock or unlock a item use the secret_service_lock() or
secret_service_unlock() functions.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="modified" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The date and time (in seconds since the UNIX epoch) that this
item was last modified.</doc>
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="service"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #SecretService object that this item is associated with and
uses to interact with the actual D-Bus Secret Service.</doc>
        <type name="Service"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="ItemPrivate" c:type="SecretItemPrivate*"/>
      </field>
    </class>
    <record name="ItemClass"
            c:type="SecretItemClass"
            glib:is-gtype-struct-for="Item">
      <doc xml:space="preserve">The class for #SecretItem.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">the parent class</doc>
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="ItemCreateFlags" c:type="SecretItemCreateFlags">
      <doc xml:space="preserve">Flags for secret_item_create().</doc>
      <member name="none" value="0" c:identifier="SECRET_ITEM_CREATE_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
      <member name="replace"
              value="2"
              c:identifier="SECRET_ITEM_CREATE_REPLACE">
        <doc xml:space="preserve">replace an item with the same attributes.</doc>
      </member>
    </bitfield>
    <bitfield name="ItemFlags" c:type="SecretItemFlags">
      <doc xml:space="preserve">Flags which determine which parts of the #SecretItem proxy are initialized.</doc>
      <member name="none" value="0" c:identifier="SECRET_ITEM_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
      <member name="load_secret"
              value="2"
              c:identifier="SECRET_ITEM_LOAD_SECRET">
        <doc xml:space="preserve">a secret has been (or should be) loaded for #SecretItem</doc>
      </member>
    </bitfield>
    <record name="ItemPrivate" c:type="SecretItemPrivate" disguised="1">
    </record>
    <class name="Prompt"
           c:symbol-prefix="prompt"
           c:type="SecretPrompt"
           parent="Gio.DBusProxy"
           glib:type-name="SecretPrompt"
           glib:get-type="secret_prompt_get_type"
           glib:type-struct="PromptClass">
      <doc xml:space="preserve">A proxy object representing a prompt that the Secret Service will display
to the user.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <method name="perform" c:identifier="secret_prompt_perform">
        <doc xml:space="preserve">Runs a prompt and performs the prompting. Returns %TRUE if the prompt
was completed and not dismissed.

If @window_id is non-null then it is used as an XWindow id on Linux. The API
expects this id to be converted to a string using the &lt;literal&gt;%d&lt;/literal&gt;
printf format. The Secret Service can make its prompt transient for the window
with this id. In some Secret Service implementations this is not possible, so
the behavior depending on this should degrade gracefully.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </instance-parameter>
          <parameter name="window_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">string form of XWindow id for parent window to be transient for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="perform_finish"
              c:identifier="secret_prompt_perform_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to run a prompt and perform the prompting.

Returns a variant result if the prompt was completed and not dismissed. The
type of result depends on the action the prompt is completing, and is
defined in the Secret Service DBus API specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="perform_sync"
              c:identifier="secret_prompt_perform_sync"
              throws="1">
        <doc xml:space="preserve">Runs a prompt and performs the prompting. Returns a variant result if the
prompt was completed and not dismissed. The type of result depends on the
action the prompt is completing, and is defined in the Secret Service DBus
API specification.

If @window_id is non-null then it is used as an XWindow id on Linux. The API
expects this id to be converted to a string using the &lt;literal&gt;%d&lt;/literal&gt;
printf format. The Secret Service can make its prompt transient for the window
with this id. In some Secret Service implementations this is not possible,
so the behavior depending on this should degrade gracefully.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </instance-parameter>
          <parameter name="window_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">string form of XWindow id for parent window to be transient for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="run" c:identifier="secret_prompt_run" throws="1">
        <doc xml:space="preserve">Runs a prompt and performs the prompting. Returns a variant result if the
prompt was completed and not dismissed. The type of result depends on the
action the prompt is completing, and is defined in the Secret Service DBus
API specification.

If @window_id is non-null then it is used as an XWindow id on Linux. The API
expects this id to be converted to a string using the &lt;literal&gt;%d&lt;/literal&gt;
printf format. The Secret Service can make its prompt transient for the window
with this id. In some Secret Service implementations this is not possible, so
the behavior depending on this should degrade gracefully.

This runs the dialog in a recursive mainloop. When run from a user interface
thread, this means the user interface will remain responsive. Care should be
taken that appropriate user interface actions are disabled while running the
prompt.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </instance-parameter>
          <parameter name="window_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">string form of XWindow id for parent window to be transient for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="PromptPrivate" c:type="SecretPromptPrivate*"/>
      </field>
    </class>
    <record name="PromptClass"
            c:type="SecretPromptClass"
            glib:is-gtype-struct-for="Prompt">
      <doc xml:space="preserve">The class for #SecretPrompt.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">the parent class</doc>
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PromptPrivate" c:type="SecretPromptPrivate" disguised="1">
    </record>
    <record name="Schema"
            c:type="SecretSchema"
            stability="Stable"
            glib:type-name="SecretSchema"
            glib:get-type="secret_schema_get_type"
            c:symbol-prefix="schema">
      <doc xml:space="preserve">Represents a set of attributes that are stored with an item. These schemas
are used for interoperability between various services storing the same types
of items.

Each schema has a name like "org.gnome.keyring.NetworkPassword", and defines
a set of attributes, and types (string, integer, boolean) for those attributes.

Attributes are stored as strings in the Secret Service, and the attribute
types simply define standard ways to store integer and boolean values as strings.
Attributes are represented in libsecret via a #GHashTable with string keys and
values. Even for values that defined as an integer or boolean in the schema,
the attribute values in the #GHashTable are strings. Boolean values are stored
as the strings 'true' and 'false'. Integer values are stored in decimal, with
a preceding negative sign for negative integers.

Schemas are handled entirely on the client side by this library. The name of the
schema is automatically stored as an attribute on the item.

Normally when looking up passwords only those with matching schema names are
returned. If the schema @flags contain the %SECRET_SCHEMA_DONT_MATCH_NAME flag,
then lookups will not check that the schema name matches that on the item, only
the schema's attributes are matched. This is useful when you are looking up items
that are not stored by the libsecret library. Other libraries such as libgnome-keyring
don't store the schema name.</doc>
      <field name="name" writable="1">
        <doc xml:space="preserve">the dotted name of the schema</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="flags" writable="1">
        <doc xml:space="preserve">flags for the schema</doc>
        <type name="SchemaFlags" c:type="SecretSchemaFlags"/>
      </field>
      <field name="attributes" writable="1">
        <doc xml:space="preserve">the attribute names and types of those attributes</doc>
        <array zero-terminated="0"
               c:type="SecretSchemaAttribute"
               fixed-size="32">
          <type name="SchemaAttribute" c:type="SecretSchemaAttribute"/>
        </array>
      </field>
      <field name="reserved" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="reserved1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved5" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved6" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved7" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <constructor name="new"
                   c:identifier="secret_schema_new"
                   shadowed-by="newv"
                   introspectable="0">
        <doc xml:space="preserve">Using this function is not normally necessary from C code.

A schema represents a set of attributes that are stored with an item. These
schemas are used for interoperability between various services storing the
same types of items.

Each schema has an @name like "org.gnome.keyring.NetworkPassword", and
defines a set of attributes names, and types (string, integer, boolean) for
those attributes.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) integers from the
#SecretSchemaAttributeType enumeration, representing the attribute type for
each attribute name. The list of attribtues should be terminated with a %NULL.

Normally when looking up passwords only those with matching schema names are
returned. If the schema @flags contain the %SECRET_SCHEMA_DONT_MATCH_NAME flag,
then lookups will not check that the schema name matches that on the item, only
the schema's attributes are matched. This is useful when you are looking up items
that are not stored by the libsecret library. Other libraries such as libgnome-keyring
don't store the schema name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new schema, which should be unreferenced with
         secret_schema_unref() when done</doc>
          <type name="Schema" c:type="SecretSchema*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the dotted name of the schema</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags for the schema</doc>
            <type name="SchemaFlags" c:type="SecretSchemaFlags"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">the attribute names and types, terminated with %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="newv" c:identifier="secret_schema_newv" shadows="new">
        <doc xml:space="preserve">Using this function is not normally necessary from C code. This is useful
for constructing #SecretSchema structures in bindings.

A schema represents a set of attributes that are stored with an item. These
schemas are used for interoperability between various services storing the
same types of items.

Each schema has an @name like "org.gnome.keyring.NetworkPassword", and
defines a set of attributes names, and types (string, integer, boolean) for
those attributes.

Each key in the @attributes table should be a attribute name strings, and
the values in the table should be integers from the #SecretSchemaAttributeType
enumeration, representing the attribute type for each attribute name.

Normally when looking up passwords only those with matching schema names are
returned. If the schema @flags contain the %SECRET_SCHEMA_DONT_MATCH_NAME flag,
then lookups will not check that the schema name matches that on the item, only
the schema's attributes are matched. This is useful when you are looking up items
that are not stored by the libsecret library. Other libraries such as libgnome-keyring
don't store the schema name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new schema, which should be unreferenced with
         secret_schema_unref() when done</doc>
          <type name="Schema" c:type="SecretSchema*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the dotted name of the schema</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags for the schema</doc>
            <type name="SchemaFlags" c:type="SecretSchemaFlags"/>
          </parameter>
          <parameter name="attribute_names_and_types"
                     transfer-ownership="none">
            <doc xml:space="preserve">the attribute names and types of those attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="SchemaAttributeType"/>
            </type>
          </parameter>
        </parameters>
      </constructor>
      <method name="ref" c:identifier="secret_schema_ref">
        <doc xml:space="preserve">Adds a reference to the #SecretSchema.

It is not normally necessary to call this function from C code, and is
mainly present for the sake of bindings. If the @schema was statically
allocated, then this function will copy the schema.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the referenced schema, which should be later
         unreferenced with secret_schema_unref()</doc>
          <type name="Schema" c:type="SecretSchema*"/>
        </return-value>
        <parameters>
          <instance-parameter name="schema" transfer-ownership="none">
            <doc xml:space="preserve">the schema to reference</doc>
            <type name="Schema" c:type="SecretSchema*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="secret_schema_unref">
        <doc xml:space="preserve">Releases a reference to the #SecretSchema. If the last reference is
released then the schema will be freed.

It is not normally necessary to call this function from C code, and is
mainly present for the sake of bindings. It is an error to call this for
a @schema that was statically allocated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="schema" transfer-ownership="none">
            <doc xml:space="preserve">the schema to reference</doc>
            <type name="Schema" c:type="SecretSchema*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="SchemaAttribute"
            c:type="SecretSchemaAttribute"
            glib:type-name="SecretSchemaAttribute"
            glib:get-type="secret_schema_attribute_get_type"
            c:symbol-prefix="schema_attribute">
      <doc xml:space="preserve">An attribute in a #SecretSchema.</doc>
      <field name="name" writable="1">
        <doc xml:space="preserve">name of the attribute</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">the type of the attribute</doc>
        <type name="SchemaAttributeType" c:type="SecretSchemaAttributeType"/>
      </field>
    </record>
    <enumeration name="SchemaAttributeType" c:type="SecretSchemaAttributeType">
      <doc xml:space="preserve">The type of an attribute in a #SecretSchema. Attributes are stored as strings
in the Secret Service, and the attribute types simply define standard ways
to store integer and boolean values as strings.</doc>
      <member name="string"
              value="0"
              c:identifier="SECRET_SCHEMA_ATTRIBUTE_STRING">
        <doc xml:space="preserve">a utf-8 string attribute</doc>
      </member>
      <member name="integer"
              value="1"
              c:identifier="SECRET_SCHEMA_ATTRIBUTE_INTEGER">
        <doc xml:space="preserve">an integer attribute, stored as a decimal</doc>
      </member>
      <member name="boolean"
              value="2"
              c:identifier="SECRET_SCHEMA_ATTRIBUTE_BOOLEAN">
        <doc xml:space="preserve">a boolean attribute, stored as 'true' or 'false'</doc>
      </member>
    </enumeration>
    <bitfield name="SchemaFlags" c:type="SecretSchemaFlags">
      <doc xml:space="preserve">Flags for a #SecretSchema definition.</doc>
      <member name="none" value="0" c:identifier="SECRET_SCHEMA_NONE">
        <doc xml:space="preserve">no flags for the schema</doc>
      </member>
      <member name="dont_match_name"
              value="2"
              c:identifier="SECRET_SCHEMA_DONT_MATCH_NAME">
        <doc xml:space="preserve">don't match the schema name when looking up or
                                removing passwords</doc>
      </member>
    </bitfield>
    <bitfield name="SearchFlags" c:type="SecretSearchFlags">
      <doc xml:space="preserve">Various flags to be used with secret_service_search() and secret_service_search_sync().</doc>
      <member name="none" value="0" c:identifier="SECRET_SEARCH_NONE">
        <doc xml:space="preserve">no flags</doc>
      </member>
      <member name="all" value="2" c:identifier="SECRET_SEARCH_ALL">
        <doc xml:space="preserve">all the items matching the search will be returned, instead of just the first one</doc>
      </member>
      <member name="unlock" value="4" c:identifier="SECRET_SEARCH_UNLOCK">
        <doc xml:space="preserve">unlock locked items while searching</doc>
      </member>
      <member name="load_secrets"
              value="8"
              c:identifier="SECRET_SEARCH_LOAD_SECRETS">
        <doc xml:space="preserve">while searching load secrets for items that are not locked</doc>
      </member>
    </bitfield>
    <class name="Service"
           c:symbol-prefix="service"
           c:type="SecretService"
           parent="Gio.DBusProxy"
           glib:type-name="SecretService"
           glib:get-type="secret_service_get_type"
           glib:type-struct="ServiceClass">
      <doc xml:space="preserve">A proxy object representing the Secret Service.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <function name="disconnect" c:identifier="secret_service_disconnect">
        <doc xml:space="preserve">Disconnect the default #SecretService proxy returned by secret_service_get()
and secret_service_get_sync().

It is not necessary to call this function, but you may choose to do so at
program exit. It is useful for testing that memory is not leaked.

This function is safe to call at any time. But if other objects in this
library are still referenced, then this will not result in all memory
being freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="get" c:identifier="secret_service_get">
        <doc xml:space="preserve">Get a #SecretService proxy for the Secret Service. If such a proxy object
already exists, then the same proxy is returned.

If @flags contains any flags of which parts of the secret service to
ensure are initialized, then those will be initialized before completing.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for which service functionality to ensure is initialized</doc>
            <type name="ServiceFlags" c:type="SecretServiceFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_finish"
                c:identifier="secret_service_get_finish"
                throws="1">
        <doc xml:space="preserve">Complete an asynchronous operation to get a #SecretService proxy for the
Secret Service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new reference to a #SecretService proxy, which
         should be released with g_object_unref().</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_sync"
                c:identifier="secret_service_get_sync"
                throws="1">
        <doc xml:space="preserve">Get a #SecretService proxy for the Secret Service. If such a proxy object
already exists, then the same proxy is returned.

If @flags contains any flags of which parts of the secret service to
ensure are initialized, then those will be initialized before returning.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new reference to a #SecretService proxy, which
         should be released with g_object_unref().</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for which service functionality to ensure is initialized</doc>
            <type name="ServiceFlags" c:type="SecretServiceFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="open" c:identifier="secret_service_open">
        <doc xml:space="preserve">Create a new #SecretService proxy for the Secret Service.

This function is rarely used, see secret_service_get() instead.

The @service_gtype argument should be set to %SECRET_TYPE_SERVICE or a the type
of a derived class.

If @flags contains any flags of which parts of the secret service to
ensure are initialized, then those will be initialized before returning.

If @service_bus_name is %NULL then the default is used.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service_gtype" transfer-ownership="none">
            <doc xml:space="preserve">the GType of the new secret service</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="service_bus_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the D-Bus service name of the secret service</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for which service functionality to ensure is initialized</doc>
            <type name="ServiceFlags" c:type="SecretServiceFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="open_finish"
                c:identifier="secret_service_open_finish"
                throws="1">
        <doc xml:space="preserve">Complete an asynchronous operation to create a new #SecretService proxy for
the Secret Service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new reference to a #SecretService proxy, which
         should be released with g_object_unref().</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="open_sync"
                c:identifier="secret_service_open_sync"
                throws="1">
        <doc xml:space="preserve">Create a new #SecretService proxy for the Secret Service.

This function is rarely used, see secret_service_get_sync() instead.

The @service_gtype argument should be set to %SECRET_TYPE_SERVICE or a the
type of a derived class.

If @flags contains any flags of which parts of the secret service to
ensure are initialized, then those will be initialized before returning.

If @service_bus_name is %NULL then the default is used.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new reference to a #SecretService proxy, which
         should be released with g_object_unref().</doc>
          <type name="Service" c:type="SecretService*"/>
        </return-value>
        <parameters>
          <parameter name="service_gtype" transfer-ownership="none">
            <doc xml:space="preserve">the GType of the new secret service</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="service_bus_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the D-Bus service name of the secret service</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for which service functionality to ensure is initialized</doc>
            <type name="ServiceFlags" c:type="SecretServiceFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="get_collection_gtype"
                      invoker="get_collection_gtype">
        <doc xml:space="preserve">Get the GObject type for collections instantiated by this service.
This will always be either #SecretCollection or derived from it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the gobject type for collections</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_item_gtype" invoker="get_item_gtype">
        <doc xml:space="preserve">Get the GObject type for items instantiated by this service.
This will always be either #SecretItem or derived from it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the gobject type for items</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prompt_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt" transfer-ownership="none">
            <type name="Prompt" c:type="SecretPrompt*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="4">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prompt_finish" invoker="prompt_finish" throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to perform prompting for a #SecretPrompt.

Returns a variant result if the prompt was completed and not dismissed. The
type of result depends on the action the prompt is completing, and is defined
in the Secret Service DBus API specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prompt_sync" invoker="prompt_sync" throws="1">
        <doc xml:space="preserve">Perform prompting for a #SecretPrompt.

Runs a prompt and performs the prompting. Returns a variant result if the
prompt was completed and not dismissed. The type of result depends on the
action the prompt is completing, and is defined in the Secret Service DBus
API specification.

This function is called by other parts of this library to handle prompts
for the various actions that can require prompting.

Override the #SecretServiceClass &lt;literal&gt;prompt_sync&lt;/literal&gt; virtual method
to change the behavior of the prompting. The default behavior is to simply
run secret_prompt_perform_sync() on the prompt with a %NULL &lt;literal&gt;window_id&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt" transfer-ownership="none">
            <doc xml:space="preserve">the prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="clear" c:identifier="secret_service_clear">
        <doc xml:space="preserve">Remove unlocked items which match the attributes from the secret service.

The @attributes should be a set of key and value string pairs.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_finish"
              c:identifier="secret_service_clear_finish"
              throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to remove items from the secret
service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether items were removed or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_sync"
              c:identifier="secret_service_clear_sync"
              throws="1">
        <doc xml:space="preserve">Remove unlocked items which match the attributes from the secret service.

The @attributes should be a set of key and value string pairs.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether items were removed or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_collection_dbus_path"
              c:identifier="secret_service_create_collection_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Create a new collection in the secret service, and return its path.

Using this method requires that you setup a correct hash table of D-Bus
properties for the new collection. You may prefer to use
secret_collection_create() which does handles this for you.

An @alias is a well-known tag for a collection, such as 'default' (ie: the
default collection to store items in). This allows other applications to
easily identify and share a collection. If a collection with the @alias
already exists, then instead of creating a new collection, the existing
collection will be returned. If no collection with this alias exists, then a
new collection will be created and this alias will be assigned to it.

@properties is a set of properties for the new collection. The keys in the
hash table should be interface.property strings like
&lt;literal&gt;org.freedesktop.Secret.Collection.Label&lt;/literal&gt;. The values
in the hash table should be #GVariant values of the properties.

If you wish to have a

This method will return immediately and complete asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that are required.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:space="preserve">hash table of properties for
             the new collection</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="GLib.Variant"/>
            </type>
          </parameter>
          <parameter name="alias"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an alias to check for before creating the new
        collection, or to assign to the new collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">not currently used</doc>
            <type name="CollectionCreateFlags"
                  c:type="SecretCollectionCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_collection_dbus_path_finish"
              c:identifier="secret_service_create_collection_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to create a new collection in the secret
service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new string containing the D-Bus object path
         of the collection</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_collection_dbus_path_sync"
              c:identifier="secret_service_create_collection_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Create a new collection in the secret service and return its path.

Using this method requires that you setup a correct hash table of D-Bus
properties for the new collection. You may prefer to use
secret_collection_create() which does handles this for you.

An @alias is a well-known tag for a collection, such as 'default' (ie: the
default collection to store items in). This allows other applications to
easily identify and share a collection. If a collection with the @alias
already exists, then instead of creating a new collection, the existing
collection will be returned. If no collection with this alias exists, then
a new collection will be created and this alias will be assigned to it.

@properties is a set of properties for the new collection. The keys in the
hash table should be interface.property strings like
&lt;literal&gt;org.freedesktop.Secret.Collection.Label&lt;/literal&gt;. The values
in the hash table should be #GVariant values of the properties.

This method may block indefinitely and should not be used in user interface
threads. The secret service may prompt the user. secret_service_prompt()
will be used to handle any prompts that are required.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new string containing the D-Bus object path
         of the collection</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:space="preserve">hash table of D-Bus properties
             for the new collection</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="GLib.Variant"/>
            </type>
          </parameter>
          <parameter name="alias"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">an alias to check for before creating the new
        collection, or to assign to the new collection</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">not currently used</doc>
            <type name="CollectionCreateFlags"
                  c:type="SecretCollectionCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_item_dbus_path"
              c:identifier="secret_service_create_item_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Create a new item in a secret service collection and return its D-Bus
object path.

It is often easier to use secret_password_store() or secret_item_create()
rather than using this function. Using this method requires that you setup
a correct hash table of D-Bus @properties for the new collection.

If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret
service will search for an item matching the @attributes, and update that item
instead of creating a new one.

@properties is a set of properties for the new collection. The keys in the
hash table should be interface.property strings like
&lt;literal&gt;org.freedesktop.Secret.Item.Label&lt;/literal&gt;. The values
in the hash table should be #GVariant values of the properties.

This method will return immediately and complete asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that are required.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="collection_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus object path of the collection in which to create item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:space="preserve">hash table of D-Bus properties
             for the new collection</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="GLib.Variant"/>
            </type>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the secret value to store in the item</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the creation of the new item</doc>
            <type name="ItemCreateFlags" c:type="SecretItemCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_item_dbus_path_finish"
              c:identifier="secret_service_create_item_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to create a new item in the secret
service.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new string containing the D-Bus object path
         of the item</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_item_dbus_path_sync"
              c:identifier="secret_service_create_item_dbus_path_sync"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Create a new item in a secret service collection and return its D-Bus
object path.

It is often easier to use secret_password_store_sync() or secret_item_create_sync()
rather than using this function. Using this method requires that you setup
a correct hash table of D-Bus @properties for the new collection.

If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret
service will search for an item matching the @attributes, and update that item
instead of creating a new one.

@properties is a set of properties for the new collection. The keys in the
hash table should be interface.property strings like
&lt;literal&gt;org.freedesktop.Secret.Item.Label&lt;/literal&gt;. The values
in the hash table should be #GVariant values of the properties.

This method may block indefinitely and should not be used in user interface
threads. The secret service may prompt the user. secret_service_prompt()
will be used to handle any prompts that are required.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new string containing the D-Bus object path
         of the item</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="collection_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of the collection in which to create item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="properties" transfer-ownership="none">
            <doc xml:space="preserve">hash table of D-Bus properties
             for the new collection</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="GLib.Variant"/>
            </type>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the secret value to store in the item</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the creation of the new item</doc>
            <type name="ItemCreateFlags" c:type="SecretItemCreateFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="decode_dbus_secret"
              c:identifier="secret_service_decode_dbus_secret">
        <doc xml:space="preserve">Decode a #SecretValue into GVariant received with the Secret Service
DBus API.

The GVariant should have a &lt;literal&gt;(oayays)&lt;/literal&gt; signature.

A session must have already been established by the #SecretService, and
the encoded secret must be valid for that session.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the decoded secret value</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <doc xml:space="preserve">the service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the encoded secret</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_item_dbus_path"
              c:identifier="secret_service_delete_item_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Delete a secret item from the secret service.

The item is represented by its D-Bus object path. If you already have a
#SecretItem proxy objects, use use secret_item_delete() instead.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of item to delete</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_item_dbus_path_finish"
              c:identifier="secret_service_delete_item_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete an asynchronous operation to delete a secret item from the secret
service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the deletion was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_item_dbus_path_sync"
              c:identifier="secret_service_delete_item_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Delete a secret item from the secret service.

The item is represented by its D-Bus object path. If you already have a
#SecretItem proxy objects, use use secret_item_delete_sync() instead.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the deletion was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path of item to delete</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="encode_dbus_secret"
              c:identifier="secret_service_encode_dbus_secret">
        <doc xml:space="preserve">Encodes a #SecretValue into GVariant for use with the Secret Service
DBus API.

The resulting GVariant will have a &lt;literal&gt;(oayays)&lt;/literal&gt; signature.

A session must have already been established by the #SecretService.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the encoded secret</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <doc xml:space="preserve">the service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the secret value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_session"
              c:identifier="secret_service_ensure_session">
        <doc xml:space="preserve">Ensure that the #SecretService proxy has established a session with the
Secret Service. This session is used to transfer secrets.

It is not normally necessary to call this method, as the session is
established as necessary. You can also pass the %SECRET_SERVICE_OPEN_SESSION
to secret_service_get() in order to ensure that a session has been established
by the time you get the #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_session_finish"
              c:identifier="secret_service_ensure_session_finish"
              throws="1">
        <doc xml:space="preserve">Finish an asynchronous operation to ensure that the #SecretService proxy
has established a session with the Secret Service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether a session is established or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_session_sync"
              c:identifier="secret_service_ensure_session_sync"
              throws="1">
        <doc xml:space="preserve">Ensure that the #SecretService proxy has established a session with the
Secret Service. This session is used to transfer secrets.

It is not normally necessary to call this method, as the session is
established as necessary. You can also pass the %SECRET_SERVICE_OPEN_SESSION
to secret_service_get_sync() in order to ensure that a session has been
established by the time you get the #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether a session is established or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_collection_gtype"
              c:identifier="secret_service_get_collection_gtype">
        <doc xml:space="preserve">Get the GObject type for collections instantiated by this service.
This will always be either #SecretCollection or derived from it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the gobject type for collections</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_collections"
              c:identifier="secret_service_get_collections">
        <doc xml:space="preserve">Get a list of #SecretCollection objects representing all the collections
in the secret service.

If the %SECRET_SERVICE_LOAD_COLLECTIONS flag was not specified when
initializing #SecretService proxy object, then this method will return
%NULL. Use secret_service_load_collections() to load the collections.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a
         list of the collections in the secret service</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Collection"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service proxy</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="secret_service_get_flags">
        <doc xml:space="preserve">Get the flags representing what features of the #SecretService proxy
have been initialized.

Use secret_service_ensure_session() or secret_service_load_collections()
to initialize further features and change the flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the flags for features initialized</doc>
          <type name="ServiceFlags" c:type="SecretServiceFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service proxy</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_item_gtype"
              c:identifier="secret_service_get_item_gtype">
        <doc xml:space="preserve">Get the GObject type for items instantiated by this service.
This will always be either #SecretItem or derived from it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the gobject type for items</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_secret_for_dbus_path"
              c:identifier="secret_service_get_secret_for_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Get the secret value for an secret item stored in the service.

The item is represented by its D-Bus object path. If you already have a
#SecretItem proxy object, use use secret_item_get_secret() to more simply
get its secret value.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path to item to retrieve secret for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_secret_for_dbus_path_finish"
              c:identifier="secret_service_get_secret_for_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to get the secret value for an
secret item stored in the service.

Will return %NULL if the item is locked.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the newly allocated secret value
         for the item, which should be released with secret_value_unref()</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_secret_for_dbus_path_sync"
              c:identifier="secret_service_get_secret_for_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Get the secret value for an secret item stored in the service.

The item is represented by its D-Bus object path. If you already have a
#SecretItem proxy object, use use secret_item_load_secret_sync() to more simply
get its secret value.

This method may block indefinitely and should not be used in user interface
threads.

Will return %NULL if the item is locked.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">the newly allocated secret value
         for the item, which should be released with secret_value_unref()</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus path to item to retrieve secret for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_secrets_for_dbus_paths"
              c:identifier="secret_service_get_secrets_for_dbus_paths"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Get the secret values for an secret items stored in the service.

The items are represented by their D-Bus object paths. If you already have
#SecretItem proxy objects, use use secret_item_load_secrets() to more simply
get their secret values.

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus paths to items to retrieve secrets for</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_secrets_for_dbus_paths_finish"
              c:identifier="secret_service_get_secrets_for_dbus_paths_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to get the secret values for an
secret items stored in the service.

Items that are locked will not be included the results.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly
         allocated hash table of item_path keys to #SecretValue
         values.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="Value"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_secrets_for_dbus_paths_sync"
              c:identifier="secret_service_get_secrets_for_dbus_paths_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Get the secret values for an secret items stored in the service.

The items are represented by their D-Bus object paths. If you already have
#SecretItem proxy objects, use use secret_item_load_secrets_sync() to more
simply get their secret values.

This method may block indefinitely and should not be used in user interface
threads.

Items that are locked will not be included the results.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly
         allocated hash table of item_path keys to #SecretValue
         values.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="Value"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="item_paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus paths to items to retrieve secrets for</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_session_algorithms"
              c:identifier="secret_service_get_session_algorithms">
        <doc xml:space="preserve">Get the set of algorithms being used to transfer secrets between this
secret service proxy and the Secret Service itself.

This will be %NULL if no session has been established. Use
secret_service_ensure_session() to establish a session.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a string representing the algorithms for transferring
         secrets</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service proxy</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_dbus_path"
              c:identifier="secret_service_get_session_dbus_path">
        <doc xml:space="preserve">Get the D-Bus object path of the session object being used to transfer
secrets between this secret service proxy and the Secret Service itself.

This will be %NULL if no session has been established. Use
secret_service_ensure_session() to establish a session.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a string representing the D-Bus object path of the
         session</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service proxy</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_collections"
              c:identifier="secret_service_load_collections">
        <doc xml:space="preserve">Ensure that the #SecretService proxy has loaded all the collections present
in the Secret Service. This affects the result of
secret_service_get_collections().

You can also pass the %SECRET_SERVICE_LOAD_COLLECTIONS to
secret_service_get_sync() in order to ensure that the collections have been
loaded by the time you get the #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_collections_finish"
              c:identifier="secret_service_load_collections_finish"
              throws="1">
        <doc xml:space="preserve">Complete an asynchronous operation to ensure that the #SecretService proxy
has loaded all the collections present in the Secret Service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the load was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_collections_sync"
              c:identifier="secret_service_load_collections_sync"
              throws="1">
        <doc xml:space="preserve">Ensure that the #SecretService proxy has loaded all the collections present
in the Secret Service. This affects the result of
secret_service_get_collections().

You can also pass the %SECRET_SERVICE_LOAD_COLLECTIONS to
secret_service_get_sync() in order to ensure that the collections have been
loaded by the time you get the #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the load was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock" c:identifier="secret_service_lock">
        <doc xml:space="preserve">Lock items or collections in the secret service.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:space="preserve">the items or collections to lock</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock_dbus_paths"
              c:identifier="secret_service_lock_dbus_paths"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Lock items or collections in the secret service.

The items or collections are represented by their D-Bus object paths. If you
already have #SecretItem and #SecretCollection proxy objects, use use
secret_service_lock() instead.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus paths for items or collections to lock</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lock_dbus_paths_finish"
              c:identifier="secret_service_lock_dbus_paths_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to lock items or collections in the secret
service.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were locked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place array of D-Bus paths of items or collections
         that were locked</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="lock_dbus_paths_sync"
              c:identifier="secret_service_lock_dbus_paths_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Lock items or collections in the secret service.

The items or collections are represented by their D-Bus object paths. If you
already have #SecretItem and #SecretCollection proxy objects, use use
secret_service_lock_sync() instead.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were locked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus object paths of the items or collections to lock</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place array of D-Bus paths of items or collections
         that were locked</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="lock_finish"
              c:identifier="secret_service_lock_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to lock items or collections in the secret
service.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were locked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place list of items or collections that were locked</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="lock_sync"
              c:identifier="secret_service_lock_sync"
              throws="1">
        <doc xml:space="preserve">Lock items or collections in the secret service.

The secret service may not be able to lock items individually, and may
lock an entire collection instead.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were locked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:space="preserve">the items or collections to lock</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place list of items or collections that were locked</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="secret_service_lookup">
        <doc xml:space="preserve">Lookup a secret value in the secret service.

The @attributes should be a set of key and value string pairs.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_finish"
              c:identifier="secret_service_lookup_finish"
              throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to lookup a secret value in the secret service.

If no secret is found then %NULL is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #SecretValue, which should be
         released with secret_value_unref(), or %NULL if no secret found</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_sync"
              c:identifier="secret_service_lookup_sync"
              throws="1">
        <doc xml:space="preserve">Lookup a secret value in the secret service.

The @attributes should be a set of key and value string pairs.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #SecretValue, which should be
         released with secret_value_unref(), or %NULL if no secret found</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt" c:identifier="secret_service_prompt">
        <doc xml:space="preserve">Perform prompting for a #SecretPrompt.

This function is called by other parts of this library to handle prompts
for the various actions that can require prompting.

Override the #SecretServiceClass &lt;literal&gt;prompt_async&lt;/literal&gt; virtual method
to change the behavior of the prompting. The default behavior is to simply
run secret_prompt_perform() on the prompt.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt" transfer-ownership="none">
            <doc xml:space="preserve">the prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </parameter>
          <parameter name="return_type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt_at_dbus_path"
              c:identifier="secret_service_prompt_at_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Perform prompting for a #SecretPrompt.

This function is called by other parts of this library to handle prompts
for the various actions that can require prompting.

Override the #SecretServiceClass &lt;literal&gt;prompt_async&lt;/literal&gt; virtual method
to change the behavior of the propmting. The default behavior is to simply
run secret_prompt_perform() on the prompt.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus object path of the prompt</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="return_type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt_at_dbus_path_finish"
              c:identifier="secret_service_prompt_at_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to perform prompting for a #SecretPrompt.

Returns a variant result if the prompt was completed and not dismissed. The
type of result depends on the action the prompt is completing, and is defined
in the Secret Service DBus API specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt_at_dbus_path_sync"
              c:identifier="secret_service_prompt_at_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Perform prompting for a #SecretPrompt.

Override the #SecretServiceClass &lt;literal&gt;prompt_async&lt;/literal&gt; virtual method
to change the behavior of the propmting. The default behavior is to simply
run secret_prompt_perform() on the prompt.

Returns a variant result if the prompt was completed and not dismissed. The
type of result depends on the action the prompt is completing, and is defined
in the Secret Service DBus API specification.

This method may block and should not be used in user interface threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt_path" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus object path of the prompt</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt_finish"
              c:identifier="secret_service_prompt_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to perform prompting for a #SecretPrompt.

Returns a variant result if the prompt was completed and not dismissed. The
type of result depends on the action the prompt is completing, and is defined
in the Secret Service DBus API specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prompt_sync"
              c:identifier="secret_service_prompt_sync"
              throws="1">
        <doc xml:space="preserve">Perform prompting for a #SecretPrompt.

Runs a prompt and performs the prompting. Returns a variant result if the
prompt was completed and not dismissed. The type of result depends on the
action the prompt is completing, and is defined in the Secret Service DBus
API specification.

This function is called by other parts of this library to handle prompts
for the various actions that can require prompting.

Override the #SecretServiceClass &lt;literal&gt;prompt_sync&lt;/literal&gt; virtual method
to change the behavior of the prompting. The default behavior is to simply
run secret_prompt_perform_sync() on the prompt with a %NULL &lt;literal&gt;window_id&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="prompt" transfer-ownership="none">
            <doc xml:space="preserve">the prompt</doc>
            <type name="Prompt" c:type="SecretPrompt*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_type" transfer-ownership="none">
            <doc xml:space="preserve">the variant type of the prompt result</doc>
            <type name="GLib.VariantType" c:type="const GVariantType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_alias_dbus_path"
              c:identifier="secret_service_read_alias_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Lookup which collection is assigned to this alias. Aliases help determine
well known collections, such as 'default'. This method looks up the
dbus object path of the well known collection.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_alias_dbus_path_finish"
              c:identifier="secret_service_read_alias_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Finish an asynchronous operation to lookup which collection is assigned
to an alias. This method returns the DBus object path of the collection</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the collection dbus object path, or %NULL if
         none assigned to the alias</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_alias_dbus_path_sync"
              c:identifier="secret_service_read_alias_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Lookup which collection is assigned to this alias. Aliases help determine
well known collections, such as 'default'. This method returns the dbus
object path of the collection.

This method may block and should not be used in user interface threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the collection dbus object path, or %NULL if
         none assigned to the alias</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search" c:identifier="secret_service_search">
        <doc xml:space="preserve">Search for items matching the @attributes. All collections are searched.
The @attributes should be a table of string keys and string values.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the
search will be returned. Otherwise only the first item will be returned.
This is almost always the unlocked item that was most recently stored.

If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked
if necessary. In either case, locked and unlocked items will match the
search and be returned. If the unlock fails, the search does not fail.

If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have
their secret values loaded and available via secret_item_get_secret().

This function returns immediately and completes asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">search option flags</doc>
            <type name="SearchFlags" c:type="SecretSearchFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_finish"
              c:identifier="secret_service_search_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to search for items.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
         a list of items that matched the search</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Item"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths"
              c:identifier="secret_service_search_for_dbus_paths"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Search for items matching the @attributes, and return their D-Bus object paths.
All collections are searched. The @attributes should be a table of string keys
and string values.

This function returns immediately and completes asynchronously.

When your callback is called use secret_service_search_for_dbus_paths_finish()
to get the results of this function. Only the D-Bus object paths of the
items will be returned. If you would like #SecretItem objects to be returned
instead, then use the secret_service_search() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths_finish"
              c:identifier="secret_service_search_for_dbus_paths_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to search for items, and return their
D-Bus object paths.

Matching items that are locked or unlocked, have their D-Bus paths placed
in the @locked or @unlocked arrays respectively.

D-Bus object paths of the items will be returned in the @unlocked or
@locked arrays. If you would to have #SecretItem objects to be returned
instead, then us the secret_service_search() and
secret_service_search_finish() functions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the search was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place an array of D-Bus object paths for matching
           items which were locked.</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place an array of D-Bus object paths for matching
         items which were locked.</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="search_for_dbus_paths_sync"
              c:identifier="secret_service_search_for_dbus_paths_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Search for items matching the @attributes, and return their D-Bus object
paths. All collections are searched. The @attributes should be a table of
string keys and string values.

This function may block indefinetely. Use the asynchronous version
in user interface threads.

Matching items that are locked or unlocked, have their D-Bus paths placed
in the @locked or @unlocked arrays respectively.

D-Bus object paths of the items will be returned in the @unlocked or
@locked arrays. If you would to have #SecretItem objects to be returned
instead, then use the secret_service_search_sync() function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the search was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place an array of D-Bus object paths for matching
           items which were locked.</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
          <parameter name="locked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
         location to place an array of D-Bus object paths for matching
         items which were locked.</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="search_sync"
              c:identifier="secret_service_search_sync"
              throws="1">
        <doc xml:space="preserve">Search for items matching the @attributes. All collections are searched.
The @attributes should be a table of string keys and string values.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the
search will be returned. Otherwise only the first item will be returned.
This is almost always the unlocked item that was most recently stored.

If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked
if necessary. In either case, locked and unlocked items will match the
search and be returned. If the unlock fails, the search does not fail.

If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items' secret
values will be loaded for any unlocked items. Loaded item secret values
are available via secret_item_get_secret(). If the load of a secret values
fail, then the

This function may block indefinetely. Use the asynchronous version
in user interface threads.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
         a list of items that matched the search</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Item"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">search for items matching these attributes</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">search option flags</doc>
            <type name="SearchFlags" c:type="SecretSearchFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias" c:identifier="secret_service_set_alias">
        <doc xml:space="preserve">Assign a collection to this alias. Aliases help determine
well known collections, such as 'default'.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to assign the collection to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="collection"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the collection to assign to the alias</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias_finish"
              c:identifier="secret_service_set_alias_finish"
              throws="1">
        <doc xml:space="preserve">Finish an asynchronous operation to assign a collection to an alias.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias_sync"
              c:identifier="secret_service_set_alias_sync"
              throws="1">
        <doc xml:space="preserve">Assign a collection to this alias. Aliases help determine
well known collections, such as 'default'.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block and should not be used in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to assign the collection to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="collection"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the collection to assign to the alias</doc>
            <type name="Collection" c:type="SecretCollection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias_to_dbus_path"
              c:identifier="secret_service_set_alias_to_dbus_path"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Assign a collection to this alias. Aliases help determine
well known collections, such as 'default'. This method takes the dbus object
path of the collection to assign to the alias.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to assign the collection to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="collection_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the dbus object path of the collection to assign to the alias</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias_to_dbus_path_finish"
              c:identifier="secret_service_set_alias_to_dbus_path_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Finish an asynchronous operation to assign a collection to an alias.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alias_to_dbus_path_sync"
              c:identifier="secret_service_set_alias_to_dbus_path_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Assign a collection to this alias. Aliases help determine
well known collections, such as 'default'. This method takes the dbus object
path of the collection to assign to the alias.

This method may block and should not be used in user interface threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a secret service object</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="alias" transfer-ownership="none">
            <doc xml:space="preserve">the alias to assign the collection to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="collection_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the dbus object path of the collection to assign to the alias</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="store" c:identifier="secret_service_store">
        <doc xml:space="preserve">Store a secret value in the secret service.

The @attributes should be a set of key and value string pairs.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

If @collection is not specified, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

This method will return immediately and complete asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema to use to check attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="collection"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the secret</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the secret value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="7">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_finish"
              c:identifier="secret_service_store_finish"
              throws="1">
        <doc xml:space="preserve">Finish asynchronous operation to store a secret value in the secret service.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the storage was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_sync"
              c:identifier="secret_service_store_sync"
              throws="1">
        <doc xml:space="preserve">Store a secret value in the secret service.

The @attributes should be a set of key and value string pairs.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @collection is %NULL, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user interface
threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the storage was successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="schema"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the schema for the attributes</doc>
            <type name="Schema" c:type="const SecretSchema*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">the attribute keys and values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="utf8"/>
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="collection"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">label for the secret</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the secret value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock" c:identifier="secret_service_unlock">
        <doc xml:space="preserve">Unlock items or collections in the secret service.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.

If @service is NULL, then secret_service_get() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:space="preserve">the items or collections to unlock</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_dbus_paths"
              c:identifier="secret_service_unlock_dbus_paths"
              introspectable="0"
              stability="Unstable">
        <doc xml:space="preserve">Unlock items or collections in the secret service.

The items or collections are represented by their D-Bus object paths. If you
already have #SecretItem and #SecretCollection proxy objects, use use
secret_service_unlock() instead.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.

This method returns immediately and completes asynchronously. The secret
service may prompt the user. secret_service_prompt() will be used to handle
any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus paths for items or collections to unlock</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">called when the operation completes</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_dbus_paths_finish"
              c:identifier="secret_service_unlock_dbus_paths_finish"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to unlock items or collections in the secret
service.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were unlocked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place array of D-Bus paths of items or collections
           that were unlocked</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_dbus_paths_sync"
              c:identifier="secret_service_unlock_dbus_paths_sync"
              introspectable="0"
              stability="Unstable"
              throws="1">
        <doc xml:space="preserve">Unlock items or collections in the secret service.

The items or collections are represented by their D-Bus object paths. If you
already have #SecretItem and #SecretCollection proxy objects, use use
secret_service_unlock_sync() instead.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were unlocked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="paths" transfer-ownership="none">
            <doc xml:space="preserve">the D-Bus object paths of the items or collections to unlock</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place array of D-Bus paths of items or collections
           that were unlocked</doc>
            <array c:type="gchar***">
              <type name="utf8" c:type="gchar**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_finish"
              c:identifier="secret_service_unlock_finish"
              throws="1">
        <doc xml:space="preserve">Complete asynchronous operation to unlock items or collections in the secret
service.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were unlocked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">asynchronous result passed to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place list of items or collections that were unlocked</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="unlock_sync"
              c:identifier="secret_service_unlock_sync"
              throws="1">
        <doc xml:space="preserve">Unlock items or collections in the secret service.

The secret service may not be able to unlock items individually, and may
unlock an entire collection instead.

If @service is NULL, then secret_service_get_sync() will be called to get
the default #SecretService proxy.

This method may block indefinitely and should not be used in user
interface threads. The secret service may prompt the user.
secret_service_prompt() will be used to handle any prompts that show up.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of items or collections that were unlocked</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="service"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">the secret service</doc>
            <type name="Service" c:type="SecretService*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:space="preserve">the items or collections to unlock</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="unlocked"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">
           location to place list of items or collections that were unlocked</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="Gio.DBusProxy"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="collections"
                introspectable="0"
                transfer-ownership="none">
        <doc xml:space="preserve">A list of #SecretCollection objects representing the collections in
the Secret Service. This list may be %NULL if the collections have
not been loaded.

To load the collections, specify the %SECRET_SERVICE_LOAD_COLLECTIONS
initialization flag when calling the secret_service_get() or
secret_service_open() functions. Or call the secret_service_load_collections()
method.</doc>
        <type/>
      </property>
      <property name="flags"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A set of flags describing which parts of the secret service have
been initialized.</doc>
        <type/>
      </property>
      <field name="parent">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="ServicePrivate" c:type="SecretServicePrivate*"/>
      </field>
    </class>
    <record name="ServiceClass"
            c:type="SecretServiceClass"
            glib:is-gtype-struct-for="Service">
      <doc xml:space="preserve">The class for #SecretService.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">the parent class</doc>
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="collection_gtype">
        <doc xml:space="preserve">the #GType of the #SecretCollection objects instantiated
                   by the #SecretService proxy</doc>
        <type name="GType" c:type="GType"/>
      </field>
      <field name="item_gtype">
        <doc xml:space="preserve">the #GType of the #SecretItem objects instantiated by the
             #SecretService proxy</doc>
        <type name="GType" c:type="GType"/>
      </field>
      <field name="prompt_sync">
        <callback name="prompt_sync" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">the secret service</doc>
              <type name="Service" c:type="SecretService*"/>
            </parameter>
            <parameter name="prompt" transfer-ownership="none">
              <doc xml:space="preserve">the prompt</doc>
              <type name="Prompt" c:type="SecretPrompt*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">optional cancellation object</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="return_type" transfer-ownership="none">
              <doc xml:space="preserve">the variant type of the prompt result</doc>
              <type name="GLib.VariantType" c:type="const GVariantType*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prompt_async">
        <callback name="prompt_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Service" c:type="SecretService*"/>
            </parameter>
            <parameter name="prompt" transfer-ownership="none">
              <type name="Prompt" c:type="SecretPrompt*"/>
            </parameter>
            <parameter name="return_type" transfer-ownership="none">
              <type name="GLib.VariantType" c:type="const GVariantType*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="5">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="5">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prompt_finish">
        <callback name="prompt_finish" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">%NULL if the prompt was dismissed or an error occurred,
         a variant result if the prompt was successful</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">the secret service</doc>
              <type name="Service" c:type="SecretService*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_collection_gtype">
        <callback name="get_collection_gtype">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the gobject type for collections</doc>
            <type name="GType" c:type="GType"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">the secret service</doc>
              <type name="Service" c:type="SecretService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_item_gtype">
        <callback name="get_item_gtype">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the gobject type for items</doc>
            <type name="GType" c:type="GType"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">the service</doc>
              <type name="Service" c:type="SecretService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="14">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="ServiceFlags" c:type="SecretServiceFlags">
      <doc xml:space="preserve">Flags which determine which parts of the #SecretService proxy are initialized
during a secret_service_get() or secret_service_open() operation.</doc>
      <member name="none" value="0" c:identifier="SECRET_SERVICE_NONE">
        <doc xml:space="preserve">no flags for initializing the #SecretService</doc>
      </member>
      <member name="open_session"
              value="2"
              c:identifier="SECRET_SERVICE_OPEN_SESSION">
        <doc xml:space="preserve">establish a session for transfer of secrets
                              while initializing the #SecretService</doc>
      </member>
      <member name="load_collections"
              value="4"
              c:identifier="SECRET_SERVICE_LOAD_COLLECTIONS">
        <doc xml:space="preserve">load collections while initializing the
                                  #SecretService</doc>
      </member>
    </bitfield>
    <record name="ServicePrivate" c:type="SecretServicePrivate" disguised="1">
    </record>
    <record name="Value"
            c:type="SecretValue"
            glib:type-name="SecretValue"
            glib:get-type="secret_value_get_type"
            c:symbol-prefix="value">
      <doc xml:space="preserve">A secret value, like a password or other binary secret.</doc>
      <constructor name="new" c:identifier="secret_value_new">
        <doc xml:space="preserve">Create a #SecretValue for the secret data passed in. The secret data is
copied into non-pageable 'secure' memory.

If the length is less than zero, then @secret is assumed to be
null-terminated.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new #SecretValue</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <parameter name="secret" transfer-ownership="none">
            <doc xml:space="preserve">the secret data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">the length of the data</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve">the content type of the data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full" c:identifier="secret_value_new_full">
        <doc xml:space="preserve">Create a #SecretValue for the secret data passed in. The secret data is
not copied, and will later be freed with the @destroy function.

If the length is less than zero, then @secret is assumed to be
null-terminated.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new #SecretValue</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <parameter name="secret" transfer-ownership="none">
            <doc xml:space="preserve">the secret data</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">the length of the data</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve">the content type of the data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">function to call to free the secret data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get" c:identifier="secret_value_get">
        <doc xml:space="preserve">Get the secret data in the #SecretValue. The value is not necessarily
null-terminated unless it was created with secret_value_new() or a
null-terminated string was passed to secret_value_new_full().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the secret data</doc>
          <array length="0" zero-terminated="0" c:type="gchar*">
            <type name="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </instance-parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the length of the secret</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_type"
              c:identifier="secret_value_get_content_type">
        <doc xml:space="preserve">Get the content type of the secret value, such as
&lt;literal&gt;text/plain&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the content type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="secret_value_get_text">
        <doc xml:space="preserve">Get the secret data in the #SecretValue if it contains a textual
value. The content type must be &lt;literal&gt;text/plain&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the content type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="Value" c:type="SecretValue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="secret_value_ref">
        <doc xml:space="preserve">Add another reference to the #SecretValue. For each reference
secret_value_unref() should be called to unreference the value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the value</doc>
          <type name="Value" c:type="SecretValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">value to reference</doc>
            <type name="Value" c:type="SecretValue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="secret_value_unref">
        <doc xml:space="preserve">Unreference a #SecretValue. When the last reference is gone, then
the value will be freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="value"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">value to unreference</doc>
            <type name="Value" c:type="gpointer"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function name="attributes_build"
              c:identifier="secret_attributes_build"
              introspectable="0">
      <doc xml:space="preserve">Build up a hash table of attribute values.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new table of
         attributes, to be released with g_hash_table_unref()</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="attributes_buildv"
              c:identifier="secret_attributes_buildv"
              introspectable="0">
      <doc xml:space="preserve">Build up a hash table of attribute values.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new table of
         attributes, to be released with g_hash_table_unref()</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="va" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="error_get_quark" c:identifier="secret_error_get_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="password_clear"
              c:identifier="secret_password_clear"
              shadowed-by="password_clearv"
              introspectable="0">
      <doc xml:space="preserve">Clear unlocked matching passwords from the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.

All unlocked items that match the attributes will be deleted.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="3">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_clear_finish"
              c:identifier="secret_password_clear_finish"
              throws="1">
      <doc xml:space="preserve">Finish an asynchronous operation to remove passwords from the secret
service.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether any passwords were removed</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_clear_sync"
              c:identifier="secret_password_clear_sync"
              shadowed-by="password_clearv_sync"
              introspectable="0">
      <doc xml:space="preserve">Remove unlocked matching passwords from the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.

All unlocked items that match the attributes will be deleted.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether the any passwords were removed</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">location to place an error on failure</doc>
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_clearv"
              c:identifier="secret_password_clearv"
              shadows="password_clear">
      <doc xml:space="preserve">Remove unlocked matching passwords from the secret service.

The @attributes should be a set of key and value string pairs.

All unlocked items that match the attributes will be deleted.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_clearv_sync"
              c:identifier="secret_password_clearv_sync"
              shadows="password_clear_sync"
              throws="1">
      <doc xml:space="preserve">Remove unlocked matching passwords from the secret service.

The @attributes should be a set of key and value string pairs.

All unlocked items that match the attributes will be deleted.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether any passwords were removed</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_free"
              c:identifier="secret_password_free"
              introspectable="0">
      <doc xml:space="preserve">Clear the memory used by a password, and then free it.

This function must be used to free nonpageable memory returned by
secret_password_lookup_nonpageable_finish(),
secret_password_lookup_nonpageable_sync() or
secret_password_lookupv_nonpageable_sync().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">password to free</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookup"
              c:identifier="secret_password_lookup"
              shadowed-by="password_lookupv"
              introspectable="0">
      <doc xml:space="preserve">Lookup a password in the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.

If no secret is found then %NULL is returned.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="3">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookup_finish"
              c:identifier="secret_password_lookup_finish"
              throws="1">
      <doc xml:space="preserve">Finish an asynchronous operation to lookup a password in the secret service.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string which should be freed with
         secret_password_free() or may be freed with g_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookup_nonpageable_finish"
              c:identifier="secret_password_lookup_nonpageable_finish"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve">Finish an asynchronous operation to lookup a password in the secret service.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string stored in nonpageable memory
         which must be freed with secret_password_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookup_nonpageable_sync"
              c:identifier="secret_password_lookup_nonpageable_sync"
              introspectable="0">
      <doc xml:space="preserve">Lookup a password in the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attribtues should be terminated with a %NULL.

If no secret is found then %NULL is returned.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string stored in nonpageable memory
         which must be freed with secret_password_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">location to place an error on failure</doc>
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookup_sync"
              c:identifier="secret_password_lookup_sync"
              shadowed-by="password_lookupv_sync"
              introspectable="0">
      <doc xml:space="preserve">Lookup a password in the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the password
@schema. The list of attributes should be terminated with a %NULL.

If no secret is found then %NULL is returned.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string which should be freed with
         secret_password_free() or may be freed with g_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for the attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">location to place an error on failure</doc>
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookupv"
              c:identifier="secret_password_lookupv"
              shadows="password_lookup">
      <doc xml:space="preserve">Lookup a password in the secret service.

The @attributes should be a set of key and value string pairs.

If no secret is found then %NULL is returned.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookupv_nonpageable_sync"
              c:identifier="secret_password_lookupv_nonpageable_sync"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve">Lookup a password in the secret service.

The @attributes should be a set of key and value string pairs.

If no secret is found then %NULL is returned.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string stored in non pageable memory
         which should be freed with secret_password_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_lookupv_sync"
              c:identifier="secret_password_lookupv_sync"
              shadows="password_lookup_sync"
              throws="1">
      <doc xml:space="preserve">Lookup a password in the secret service.

The @attributes should be a set of key and value string pairs.

If no secret is found then %NULL is returned.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new password string which should be freed with
         secret_password_free() or may be freed with g_free() when done</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_store"
              c:identifier="secret_password_store"
              shadowed-by="password_storev"
              introspectable="0">
      <doc xml:space="preserve">Store a password in the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the @schema.
The list of attribtues should be terminated with a %NULL.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @collection is %NULL, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="collection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve">label for the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">the null-terminated password to store</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_store_finish"
              c:identifier="secret_password_store_finish"
              throws="1">
      <doc xml:space="preserve">Finish asynchronous operation to store a password in the secret service.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether the storage was successful or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">the asynchronous result passed to the callback</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_store_sync"
              c:identifier="secret_password_store_sync"
              shadowed-by="password_storev_sync"
              introspectable="0">
      <doc xml:space="preserve">Store a password in the secret service.

The variable argument list should contain pairs of a) The attribute name as
a null-terminated string, followed by b) attribute value, either a character
string, an int number, or a gboolean value, as defined in the @schema.
The list of attribtues should be terminated with a %NULL.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @collection is %NULL, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether the storage was successful or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="collection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve">label for the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">the null-terminated password to store</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">location to place an error on failure</doc>
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values, terminated with %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="password_storev"
              c:identifier="secret_password_storev"
              shadows="password_store">
      <doc xml:space="preserve">Store a password in the secret service.

The @attributes should be a set of key and value string pairs.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @collection is %NULL, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

This method will return immediately and complete asynchronously.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="collection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve">label for the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">the null-terminated password to store</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="7">
          <doc xml:space="preserve">called when the operation completes</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data to be passed to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_storev_sync"
              c:identifier="secret_password_storev_sync"
              shadows="password_store_sync"
              throws="1">
      <doc xml:space="preserve">Store a password in the secret service.

The @attributes should be a set of key and value string pairs.

If the attributes match a secret item already stored in the collection, then
the item will be updated with these new values.

If @collection is %NULL, then the default collection will be
used. Use #SECRET_COLLECTION_SESSION to store the password in the session
collection, which doesn't get stored across login sessions.

This method may block indefinitely and should not be used in user interface
threads.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">whether the storage was successful or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">the schema for attributes</doc>
          <type name="Schema" c:type="const SecretSchema*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">the attribute keys and values</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="collection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a collection alias, or D-Bus object path of the collection where to store the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve">label for the secret</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">the null-terminated password to store</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">optional cancellation object</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="password_wipe" c:identifier="secret_password_wipe">
      <doc xml:space="preserve">Clear the memory used by a password.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">password to clear</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
