<?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="Gio" version="2.0"/>
  <package name="polkit-gobject-1"/>
  <c:include name="polkit/polkit.h"/>
  <namespace name="Polkit"
             version="1.0"
             shared-library="libpolkit-gobject-1.so.0"
             c:identifier-prefixes="Polkit"
             c:symbol-prefixes="polkit">
    <class name="ActionDescription"
           c:symbol-prefix="action_description"
           parent="GObject.Object"
           glib:type-name="PolkitActionDescription"
           glib:get-type="polkit_action_description_get_type"
           glib:type-struct="ActionDescriptionClass">
      <doc xml:space="preserve">Object used to encapsulate a registered action.</doc>
      <method name="get_action_id"
              c:identifier="polkit_action_description_get_action_id">
        <doc xml:space="preserve">Gets the action id for @action_description.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_annotation"
              c:identifier="polkit_action_description_get_annotation">
        <doc xml:space="preserve">Get the value of the annotation with @key.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">%NULL if there is no annoation with @key,
otherwise the annotation value owned by @action_description. Do not
free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">An annotation key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_annotation_keys"
              c:identifier="polkit_action_description_get_annotation_keys">
        <doc xml:space="preserve">Gets the keys of annotations defined in @action_description.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The annotation keys owned by @action_description. Do not free.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="polkit_action_description_get_description">
        <doc xml:space="preserve">Gets the description used for @action_description.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="polkit_action_description_get_icon_name">
        <doc xml:space="preserve">Gets the icon name for @action_description, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_implicit_active"
              c:identifier="polkit_action_description_get_implicit_active">
        <doc xml:space="preserve">Gets the implicit authorization for @action_description used for
subjects in active sessions on a local console.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A value from the #PolkitImplicitAuthorization enumeration.</doc>
          <type name="ImplicitAuthorization"
                c:type="PolkitImplicitAuthorization"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_implicit_any"
              c:identifier="polkit_action_description_get_implicit_any">
        <doc xml:space="preserve">Gets the implicit authorization for @action_description used for
any subject.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A value from the #PolkitImplicitAuthorization enumeration.</doc>
          <type name="ImplicitAuthorization"
                c:type="PolkitImplicitAuthorization"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_implicit_inactive"
              c:identifier="polkit_action_description_get_implicit_inactive">
        <doc xml:space="preserve">Gets the implicit authorization for @action_description used for
subjects in inactive sessions on a local console.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A value from the #PolkitImplicitAuthorization enumeration.</doc>
          <type name="ImplicitAuthorization"
                c:type="PolkitImplicitAuthorization"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message"
              c:identifier="polkit_action_description_get_message">
        <doc xml:space="preserve">Gets the message used for @action_description.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor_name"
              c:identifier="polkit_action_description_get_vendor_name">
        <doc xml:space="preserve">Gets the vendor name for @action_description, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor_url"
              c:identifier="polkit_action_description_get_vendor_url">
        <doc xml:space="preserve">Gets the vendor URL for @action_description, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @action_description. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action_description"
                              transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitActionDescription.</doc>
            <type name="ActionDescription" c:type="PolkitActionDescription*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="ActionDescriptionClass"
            c:type="PolkitActionDescriptionClass"
            disguised="1"
            glib:is-gtype-struct-for="ActionDescription">
    </record>
    <class name="Authority"
           c:symbol-prefix="authority"
           parent="GObject.Object"
           glib:type-name="PolkitAuthority"
           glib:get-type="polkit_authority_get_type"
           glib:type-struct="AuthorityClass">
      <doc xml:space="preserve">#PolkitAuthority is used for checking whether a given subject is
authorized to perform a given action. Typically privileged system
daemons or suid helpers will use this when handling requests from
untrusted clients.

User sessions can register an authentication agent with the
authority. This is used for requests from untrusted clients where
system policy requires that the user needs to acknowledge (through
proving he is the user or the administrator) a given action. See
#PolkitAgentListener and #PolkitAgentSession for details.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <function name="get" c:identifier="polkit_authority_get">
        <doc xml:space="preserve">(deprecated)</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">value</doc>
          <type name="Authority" c:type="PolkitAuthority*"/>
        </return-value>
      </function>
      <function name="get_async" c:identifier="polkit_authority_get_async">
        <doc xml:space="preserve">Asynchronously gets a reference to the authority.

This is an asynchronous failable function. When the result is
ready, @callback will be invoked in the &lt;link
linkend="g-main-context-push-thread-default"&gt;thread-default main
loop&lt;/link&gt; of the thread you are calling this method from and you
can use polkit_authority_get_finish() to get the result. See
polkit_authority_get_sync() for the synchronous version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_finish"
                c:identifier="polkit_authority_get_finish"
                throws="1">
        <doc xml:space="preserve">Finishes an operation started with polkit_authority_get_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitAuthority. Free it with
g_object_unref() when done with it.</doc>
          <type name="Authority" c:type="PolkitAuthority*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_authority_get_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_sync"
                c:identifier="polkit_authority_get_sync"
                throws="1">
        <doc xml:space="preserve">Synchronously gets a reference to the authority.

This is a synchronous failable function - the calling thread is
blocked until a reply is received. See polkit_authority_get_async()
for the asynchronous version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitAuthority. Free it with
g_object_unref() when done with it.</doc>
          <type name="Authority" c:type="PolkitAuthority*"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <method name="authentication_agent_response"
              c:identifier="polkit_authority_authentication_agent_response">
        <doc xml:space="preserve">Asynchronously provide response that @identity successfully authenticated
for the authentication request identified by @cookie.

This function is only used by the privileged bits of an authentication agent.
It will fail if the caller is not sufficiently privileged (typically uid 0).

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_authentication_agent_response_finish() to get the
result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="cookie" transfer-ownership="none">
            <doc xml:space="preserve">The cookie passed to the authentication agent from the authority.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">The identity that was authenticated.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="authentication_agent_response_finish"
              c:identifier="polkit_authority_authentication_agent_response_finish"
              throws="1">
        <doc xml:space="preserve">Finishes providing response from an authentication agent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @authority acknowledged the call, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="authentication_agent_response_sync"
              c:identifier="polkit_authority_authentication_agent_response_sync"
              throws="1">
        <doc xml:space="preserve">Provide response that @identity successfully authenticated for the
authentication request identified by @cookie. See polkit_authority_authentication_agent_response()
for limitations on who is allowed is to call this method.

The calling thread is blocked until a reply is received. See
polkit_authority_authentication_agent_response() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @authority acknowledged the call, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="cookie" transfer-ownership="none">
            <doc xml:space="preserve">The cookie passed to the authentication agent from the authority.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">The identity that was authenticated.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_authorization"
              c:identifier="polkit_authority_check_authorization">
        <doc xml:space="preserve">Asynchronously checks if @subject is authorized to perform the action represented
by @action_id.

Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION
&lt;emphasis&gt;SHOULD&lt;/emphasis&gt; be passed &lt;emphasis&gt;ONLY&lt;/emphasis&gt; if
the event that triggered the authorization check is stemming from
an user action, e.g. the user pressing a button or attaching a
device.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_check_authorization_finish() to get the result of
the operation.

Known keys in @details include &lt;literal&gt;polkit.message&lt;/literal&gt;
and &lt;literal&gt;polkit.gettext_domain&lt;/literal&gt; that can be used to
override the message shown to the user. See the documentation for
the &lt;link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization"&gt;D-Bus method&lt;/link&gt; for more details.

If @details is non-empty then the request will fail with
#POLKIT_ERROR_FAILED unless the process doing the check itsef is
sufficiently authorized (e.g. running as uid 0).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="action_id" transfer-ownership="none">
            <doc xml:space="preserve">The action to check for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="details"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Details about the action or %NULL.</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">A set of #PolkitCheckAuthorizationFlags.</doc>
            <type name="CheckAuthorizationFlags"
                  c:type="PolkitCheckAuthorizationFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_authorization_finish"
              c:identifier="polkit_authority_check_authorization_finish"
              throws="1">
        <doc xml:space="preserve">Finishes checking if a subject is authorized for an action.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitAuthorizationResult or %NULL if
@error is set. Free with g_object_unref().</doc>
          <type name="AuthorizationResult"
                c:type="PolkitAuthorizationResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_authorization_sync"
              c:identifier="polkit_authority_check_authorization_sync"
              throws="1">
        <doc xml:space="preserve">Checks if @subject is authorized to perform the action represented
by @action_id.

Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION
&lt;emphasis&gt;SHOULD&lt;/emphasis&gt; be passed &lt;emphasis&gt;ONLY&lt;/emphasis&gt; if
the event that triggered the authorization check is stemming from
an user action, e.g. the user pressing a button or attaching a
device.

Note the calling thread is blocked until a reply is received. You
should therefore &lt;emphasis&gt;NEVER&lt;/emphasis&gt; do this from a GUI
thread or a daemon service thread when using the
%POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION flag. This
is because it may potentially take minutes (or even hours) for the
operation to complete because it involves waiting for the user to
authenticate.

Known keys in @details include &lt;literal&gt;polkit.message&lt;/literal&gt;
and &lt;literal&gt;polkit.gettext_domain&lt;/literal&gt; that can be used to
override the message shown to the user. See the documentation for
the &lt;link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization"&gt;D-Bus method&lt;/link&gt; for more details.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitAuthorizationResult or %NULL if @error is set. Free with g_object_unref().</doc>
          <type name="AuthorizationResult"
                c:type="PolkitAuthorizationResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="action_id" transfer-ownership="none">
            <doc xml:space="preserve">The action to check for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="details"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Details about the action or %NULL.</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">A set of #PolkitCheckAuthorizationFlags.</doc>
            <type name="CheckAuthorizationFlags"
                  c:type="PolkitCheckAuthorizationFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_actions"
              c:identifier="polkit_authority_enumerate_actions">
        <doc xml:space="preserve">Asynchronously retrieves all registered actions.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call polkit_authority_enumerate_actions_finish()
to get the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_actions_finish"
              c:identifier="polkit_authority_enumerate_actions_finish"
              throws="1">
        <doc xml:space="preserve">Finishes retrieving all registered actions.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of
#PolkitActionDescription objects or %NULL if @error is set. The returned
list should be freed with g_list_free() after each element have been freed
with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="ActionDescription"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_actions_sync"
              c:identifier="polkit_authority_enumerate_actions_sync"
              throws="1">
        <doc xml:space="preserve">Synchronously retrieves all registered actions - the calling thread
is blocked until a reply is received. See
polkit_authority_enumerate_actions() for the asynchronous version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of
#PolkitActionDescription or %NULL if @error is set. The returned list should
be freed with g_list_free() after each element have been freed with
g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="ActionDescription"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_temporary_authorizations"
              c:identifier="polkit_authority_enumerate_temporary_authorizations">
        <doc xml:space="preserve">Asynchronously gets all temporary authorizations for @subject.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_enumerate_temporary_authorizations_finish() to get
the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject, typically a #PolkitUnixSession.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_temporary_authorizations_finish"
              c:identifier="polkit_authority_enumerate_temporary_authorizations_finish"
              throws="1">
        <doc xml:space="preserve">Finishes retrieving all registered actions.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A
list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The
returned list should be freed with g_list_free() after each element have
been freed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TemporaryAuthorization"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_temporary_authorizations_sync"
              c:identifier="polkit_authority_enumerate_temporary_authorizations_sync"
              throws="1">
        <doc xml:space="preserve">Synchronousky gets all temporary authorizations for @subject.

The calling thread is blocked until a reply is received. See
polkit_authority_enumerate_temporary_authorizations() for the
asynchronous version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A
list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The
returned list should be freed with g_list_free() after each element have
been freed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TemporaryAuthorization"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject, typically a #PolkitUnixSession.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backend_features"
              c:identifier="polkit_authority_get_backend_features">
        <doc xml:space="preserve">Gets the features supported by the authority backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Flags from #PolkitAuthorityFeatures.</doc>
          <type name="AuthorityFeatures" c:type="PolkitAuthorityFeatures"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backend_name"
              c:identifier="polkit_authority_get_backend_name">
        <doc xml:space="preserve">Gets the name of the authority backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The name of the backend.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backend_version"
              c:identifier="polkit_authority_get_backend_version">
        <doc xml:space="preserve">Gets the version of the authority backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The version string for the backend.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="polkit_authority_get_owner">
        <doc xml:space="preserve">The unique name on the system message bus of the owner of the name
&lt;literal&gt;org.freedesktop.PolicyKit1&lt;/literal&gt; or %NULL if no-one
currently owns the name. You may connect to the #GObject::notify
signal to track changes to the #PolkitAuthority:owner property.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">%NULL or a string that should be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent"
              c:identifier="polkit_authority_register_authentication_agent">
        <doc xml:space="preserve">Asynchronously registers an authentication agent.

Note that this should be called by the same effective UID which will be
the real UID using the #PolkitAgentSession API or otherwise calling
polkit_authority_authentication_agent_response().

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_register_authentication_agent_finish() to get the
result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">The locale of the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent_finish"
              c:identifier="polkit_authority_register_authentication_agent_finish"
              throws="1">
        <doc xml:space="preserve">Finishes registering an authentication agent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully registered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent_sync"
              c:identifier="polkit_authority_register_authentication_agent_sync"
              throws="1">
        <doc xml:space="preserve">Registers an authentication agent.

Note that this should be called by the same effective UID which will be
the real UID using the #PolkitAgentSession API or otherwise calling
polkit_authority_authentication_agent_response().

The calling thread is blocked
until a reply is received. See
polkit_authority_register_authentication_agent() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully registered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">The locale of the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent_with_options"
              c:identifier="polkit_authority_register_authentication_agent_with_options">
        <doc xml:space="preserve">Asynchronously registers an authentication agent.

Note that this should be called by the same effective UID which will be
the real UID using the #PolkitAgentSession API or otherwise calling
polkit_authority_authentication_agent_response().

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_register_authentication_agent_with_options_finish() to get the
result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">The locale of the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GVariant with options or %NULL.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent_with_options_finish"
              c:identifier="polkit_authority_register_authentication_agent_with_options_finish"
              throws="1">
        <doc xml:space="preserve">Finishes registering an authentication agent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully registered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_authentication_agent_with_options_sync"
              c:identifier="polkit_authority_register_authentication_agent_with_options_sync"
              throws="1">
        <doc xml:space="preserve">Registers an authentication agent.

Note that this should be called by the same effective UID which will be
the real UID using the #PolkitAgentSession API or otherwise calling
polkit_authority_authentication_agent_response().

The calling thread is blocked
until a reply is received. See
polkit_authority_register_authentication_agent_with_options() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully registered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="locale" transfer-ownership="none">
            <doc xml:space="preserve">The locale of the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GVariant with options or %NULL.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorization_by_id"
              c:identifier="polkit_authority_revoke_temporary_authorization_by_id">
        <doc xml:space="preserve">Asynchronously revoke a temporary authorization.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_revoke_temporary_authorization_by_id_finish() to
get the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The opaque identifier for the temporary authorization.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorization_by_id_finish"
              c:identifier="polkit_authority_revoke_temporary_authorization_by_id_finish"
              throws="1">
        <doc xml:space="preserve">Finishes revoking a temporary authorization by id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the temporary authorization was revoked, %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorization_by_id_sync"
              c:identifier="polkit_authority_revoke_temporary_authorization_by_id_sync"
              throws="1">
        <doc xml:space="preserve">Synchronously revokes a temporary authorization.

The calling thread is blocked until a reply is received. See
polkit_authority_revoke_temporary_authorization_by_id() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the temporary authorization was revoked, %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The opaque identifier for the temporary authorization.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorizations"
              c:identifier="polkit_authority_revoke_temporary_authorizations">
        <doc xml:space="preserve">Asynchronously revokes all temporary authorizations for @subject.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_revoke_temporary_authorizations_finish() to get
the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject to revoke authorizations from, typically a #PolkitUnixSession.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorizations_finish"
              c:identifier="polkit_authority_revoke_temporary_authorizations_finish"
              throws="1">
        <doc xml:space="preserve">Finishes revoking temporary authorizations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if all the temporary authorizations was revoked, %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="revoke_temporary_authorizations_sync"
              c:identifier="polkit_authority_revoke_temporary_authorizations_sync"
              throws="1">
        <doc xml:space="preserve">Synchronously revokes all temporary authorization from @subject.

The calling thread is blocked until a reply is received. See
polkit_authority_revoke_temporary_authorizations() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the temporary authorization was revoked, %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject to revoke authorizations from, typically a #PolkitUnixSession.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_authentication_agent"
              c:identifier="polkit_authority_unregister_authentication_agent">
        <doc xml:space="preserve">Asynchronously unregisters an authentication agent.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_authority_unregister_authentication_agent_finish() to get
the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_authentication_agent_finish"
              c:identifier="polkit_authority_unregister_authentication_agent_finish"
              throws="1">
        <doc xml:space="preserve">Finishes unregistering an authentication agent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_authentication_agent_sync"
              c:identifier="polkit_authority_unregister_authentication_agent_sync"
              throws="1">
        <doc xml:space="preserve">Unregisters an authentication agent. The calling thread is blocked
until a reply is received. See
polkit_authority_unregister_authentication_agent() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="authority" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthority.</doc>
            <type name="Authority" c:type="PolkitAuthority*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">The subject the authentication agent is for, typically a #PolkitUnixSession object.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve">The object path for the authentication agent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="backend-features" transfer-ownership="none">
        <doc xml:space="preserve">The features of the currently used Authority backend.</doc>
        <type name="AuthorityFeatures"/>
      </property>
      <property name="backend-name" transfer-ownership="none">
        <doc xml:space="preserve">The name of the currently used Authority backend.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="backend-version" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="owner" transfer-ownership="none">
        <doc xml:space="preserve">The unique name of the owner of the org.freedesktop.PolicyKit1
D-Bus service or %NULL if there is no owner. Connect to the
#GObject::notify signal to track changes to this property.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve">Emitted when actions and/or authorizations change</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AuthorityClass"
            c:type="PolkitAuthorityClass"
            disguised="1"
            glib:is-gtype-struct-for="Authority">
    </record>
    <bitfield name="AuthorityFeatures"
              glib:type-name="PolkitAuthorityFeatures"
              glib:get-type="polkit_authority_features_get_type"
              c:type="PolkitAuthorityFeatures">
      <doc xml:space="preserve">Flags describing features supported by the Authority implementation.</doc>
      <member name="none"
              value="0"
              c:identifier="POLKIT_AUTHORITY_FEATURES_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags set.</doc>
      </member>
      <member name="temporary_authorization"
              value="1"
              c:identifier="POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION"
              glib:nick="temporary-authorization">
        <doc xml:space="preserve">The authority supports temporary authorizations
that can be obtained through authentication.</doc>
      </member>
    </bitfield>
    <class name="AuthorizationResult"
           c:symbol-prefix="authorization_result"
           parent="GObject.Object"
           glib:type-name="PolkitAuthorizationResult"
           glib:get-type="polkit_authorization_result_get_type"
           glib:type-struct="AuthorizationResultClass">
      <doc xml:space="preserve">This class represents the result you get when checking for an authorization.</doc>
      <constructor name="new" c:identifier="polkit_authorization_result_new">
        <doc xml:space="preserve">Creates a new #PolkitAuthorizationResult object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitAuthorizationResult object. Free with g_object_unref().</doc>
          <type name="AuthorizationResult"
                c:type="PolkitAuthorizationResult*"/>
        </return-value>
        <parameters>
          <parameter name="is_authorized" transfer-ownership="none">
            <doc xml:space="preserve">Whether the subject is authorized.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="is_challenge" transfer-ownership="none">
            <doc xml:space="preserve">Whether the subject is authorized if more
information is provided. Must be %FALSE unless @is_authorized is
%TRUE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="details"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Must be %NULL unless @is_authorized is %TRUE</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_details"
              c:identifier="polkit_authorization_result_get_details">
        <doc xml:space="preserve">Gets the details about the result.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #PolkitDetails object or
%NULL if there are no details. This object is owned by @result and
should not be freed by the caller.</doc>
          <type name="Details" c:type="PolkitDetails*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dismissed"
              c:identifier="polkit_authorization_result_get_dismissed"
              version="0.101">
        <doc xml:space="preserve">Gets whether the authentication request was dismissed / canceled by the user.

This method simply reads the value of the key/value pair in @details with the
key &lt;literal&gt;polkit.dismissed&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authentication request was dismissed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_authorized"
              c:identifier="polkit_authorization_result_get_is_authorized">
        <doc xml:space="preserve">Gets whether the subject is authorized.

If the authorization is temporary, use polkit_authorization_result_get_temporary_authorization_id()
to get the opaque identifier for the temporary authorization.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether the subject is authorized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_challenge"
              c:identifier="polkit_authorization_result_get_is_challenge">
        <doc xml:space="preserve">Gets whether the subject is authorized if more information is provided.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether the subject is authorized if more information is provided.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_retains_authorization"
              c:identifier="polkit_authorization_result_get_retains_authorization">
        <doc xml:space="preserve">Gets whether authorization is retained if obtained via authentication. This can only be the case
if @result indicates that the subject can obtain authorization after challenge (cf.
polkit_authorization_result_get_is_challenge()), e.g. when the subject is not already authorized (cf.
polkit_authorization_result_get_is_authorized()).

If the subject is already authorized, use polkit_authorization_result_get_temporary_authorization_id()
to check if the authorization is temporary.

This method simply reads the value of the key/value pair in @details with the
key &lt;literal&gt;polkit.retains_authorization_after_challenge&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the authorization is or will be temporary.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_temporary_authorization_id"
              c:identifier="polkit_authorization_result_get_temporary_authorization_id">
        <doc xml:space="preserve">Gets the opaque temporary authorization id for @result if @result indicates the
subject is authorized and the authorization is temporary rather than one-shot or
permanent.

You can use this string together with the result from
polkit_authority_enumerate_temporary_authorizations() to get more details
about the temporary authorization or polkit_authority_revoke_temporary_authorization_by_id()
to revoke the temporary authorization.

If the subject is not authorized, use polkit_authorization_result_get_retains_authorization()
to check if the authorization will be retained if obtained via authentication.

This method simply reads the value of the key/value pair in @details with the
key &lt;literal&gt;polkit.temporary_authorization_id&lt;/literal&gt;.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The opaque temporary authorization id for
   @result or %NULL if not available. Do not free this string, it
   is owned by @result.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitAuthorizationResult.</doc>
            <type name="AuthorizationResult"
                  c:type="PolkitAuthorizationResult*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="AuthorizationResultClass"
            c:type="PolkitAuthorizationResultClass"
            disguised="1"
            glib:is-gtype-struct-for="AuthorizationResult">
    </record>
    <bitfield name="CheckAuthorizationFlags"
              glib:type-name="PolkitCheckAuthorizationFlags"
              glib:get-type="polkit_check_authorization_flags_get_type"
              c:type="PolkitCheckAuthorizationFlags">
      <doc xml:space="preserve">Possible flags when checking authorizations.</doc>
      <member name="none"
              value="0"
              c:identifier="POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags set.</doc>
      </member>
      <member name="allow_user_interaction"
              value="1"
              c:identifier="POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION"
              glib:nick="allow-user-interaction">
        <doc xml:space="preserve">If the subject can obtain the authorization
through authentication, and an authentication agent is available, then attempt to do so. Note, this
means that the method used for checking authorization is likely to block for a long time.</doc>
      </member>
    </bitfield>
    <class name="Details"
           c:symbol-prefix="details"
           parent="GObject.Object"
           glib:type-name="PolkitDetails"
           glib:get-type="polkit_details_get_type"
           glib:type-struct="DetailsClass">
      <doc xml:space="preserve">An object used for passing details around.</doc>
      <constructor name="new" c:identifier="polkit_details_new">
        <doc xml:space="preserve">Creates a new #PolkitDetails object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitDetails object. Free with g_object_unref().</doc>
          <type name="Details" c:type="PolkitDetails*"/>
        </return-value>
      </constructor>
      <method name="get_keys" c:identifier="polkit_details_get_keys">
        <doc xml:space="preserve">Gets a list of all keys on @details.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">%NULL if there are no keys
otherwise an array of strings that should be freed with
g_strfreev().</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="details" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitDetails.</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="polkit_details_insert">
        <doc xml:space="preserve">Inserts a copy of @key and @value on @details.

If @value is %NULL, the key will be removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="details" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitDetails.</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">A key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="polkit_details_lookup">
        <doc xml:space="preserve">Gets the value for @key on @details.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">%NULL if there is no value for @key, otherwise a string owned by @details.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="details" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitDetails.</doc>
            <type name="Details" c:type="PolkitDetails*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">A key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="DetailsClass"
            c:type="PolkitDetailsClass"
            disguised="1"
            glib:is-gtype-struct-for="Details">
    </record>
    <enumeration name="Error"
                 glib:type-name="PolkitError"
                 glib:get-type="polkit_error_get_type"
                 c:type="PolkitError"
                 glib:error-domain="polkit-error-quark">
      <doc xml:space="preserve">Possible error when using PolicyKit.</doc>
      <member name="failed"
              value="0"
              c:identifier="POLKIT_ERROR_FAILED"
              glib:nick="failed">
        <doc xml:space="preserve">The operation failed.</doc>
      </member>
      <member name="cancelled"
              value="1"
              c:identifier="POLKIT_ERROR_CANCELLED"
              glib:nick="cancelled">
        <doc xml:space="preserve">The operation was cancelled.</doc>
      </member>
      <member name="not_supported"
              value="2"
              c:identifier="POLKIT_ERROR_NOT_SUPPORTED"
              glib:nick="not-supported">
        <doc xml:space="preserve">Operation is not supported.</doc>
      </member>
      <member name="not_authorized"
              value="3"
              c:identifier="POLKIT_ERROR_NOT_AUTHORIZED"
              glib:nick="not-authorized">
        <doc xml:space="preserve">Not authorized to perform operation.</doc>
      </member>
      <function name="quark" c:identifier="polkit_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <interface name="Identity"
               c:symbol-prefix="identity"
               glib:type-name="PolkitIdentity"
               glib:get-type="polkit_identity_get_type"
               glib:type-struct="IdentityIface">
      <doc xml:space="preserve">#PolkitIdentity is an abstract type for representing one or more
identities.</doc>
      <function name="from_string"
                c:identifier="polkit_identity_from_string"
                throws="1">
        <doc xml:space="preserve">Creates an object from @str that implements the #PolkitIdentity
interface.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitIdentity or %NULL
if @error is set. Free with g_object_unref().</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">A string obtained from polkit_identity_to_string().</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="equal" invoker="equal">
        <doc xml:space="preserve">Checks if @a and @b are equal, ie. represent the same identity.

This function can be used in e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hash" invoker="hash">
        <doc xml:space="preserve">Gets a hash code for @identity that can be used with e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A hash code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="to_string" invoker="to_string">
        <doc xml:space="preserve">Serializes @identity to a string that can be used in
polkit_identity_from_string().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string representing @identity. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="equal" c:identifier="polkit_identity_equal">
        <doc xml:space="preserve">Checks if @a and @b are equal, ie. represent the same identity.

This function can be used in e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="polkit_identity_hash">
        <doc xml:space="preserve">Gets a hash code for @identity that can be used with e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A hash code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="polkit_identity_to_string">
        <doc xml:space="preserve">Serializes @identity to a string that can be used in
polkit_identity_from_string().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string representing @identity. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="identity" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitIdentity.</doc>
            <type name="Identity" c:type="PolkitIdentity*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="IdentityIface"
            c:type="PolkitIdentityIface"
            glib:is-gtype-struct-for="Identity">
      <doc xml:space="preserve">An interface for identities.</doc>
      <field name="parent_iface">
        <doc xml:space="preserve">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="hash">
        <callback name="hash">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">A hash code.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="identity" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitIdentity.</doc>
              <type name="Identity" c:type="PolkitIdentity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="equal">
        <callback name="equal">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="a" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitIdentity.</doc>
              <type name="Identity" c:type="PolkitIdentity*"/>
            </parameter>
            <parameter name="b" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitIdentity.</doc>
              <type name="Identity" c:type="PolkitIdentity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="to_string">
        <callback name="to_string">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A string representing @identity. Free with g_free().</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="identity" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitIdentity.</doc>
              <type name="Identity" c:type="PolkitIdentity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ImplicitAuthorization"
                 glib:type-name="PolkitImplicitAuthorization"
                 glib:get-type="polkit_implicit_authorization_get_type"
                 c:type="PolkitImplicitAuthorization">
      <doc xml:space="preserve">Possible implicit authorizations.</doc>
      <member name="unknown"
              value="-1"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_UNKNOWN"
              glib:nick="unknown">
        <doc xml:space="preserve">Unknown whether the subject is authorized, never returned in any public API.</doc>
      </member>
      <member name="not_authorized"
              value="0"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED"
              glib:nick="not-authorized">
        <doc xml:space="preserve">Subject is not authorized.</doc>
      </member>
      <member name="authentication_required"
              value="1"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_AUTHENTICATION_REQUIRED"
              glib:nick="authentication-required">
        <doc xml:space="preserve">Authentication is required.</doc>
      </member>
      <member name="administrator_authentication_required"
              value="2"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_ADMINISTRATOR_AUTHENTICATION_REQUIRED"
              glib:nick="administrator-authentication-required">
        <doc xml:space="preserve">Authentication as an administrator is required.</doc>
      </member>
      <member name="authentication_required_retained"
              value="3"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_AUTHENTICATION_REQUIRED_RETAINED"
              glib:nick="authentication-required-retained">
        <doc xml:space="preserve">Authentication is required. If the authorization is obtained, it is retained.</doc>
      </member>
      <member name="administrator_authentication_required_retained"
              value="4"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_ADMINISTRATOR_AUTHENTICATION_REQUIRED_RETAINED"
              glib:nick="administrator-authentication-required-retained">
        <doc xml:space="preserve">Authentication as an administrator is required. If the authorization is obtained, it is retained.</doc>
      </member>
      <member name="authorized"
              value="5"
              c:identifier="POLKIT_IMPLICIT_AUTHORIZATION_AUTHORIZED"
              glib:nick="authorized">
        <doc xml:space="preserve">The subject is authorized</doc>
      </member>
      <function name="from_string"
                c:identifier="polkit_implicit_authorization_from_string">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="out_implicit_authorization"
                     transfer-ownership="none">
            <type name="ImplicitAuthorization"
                  c:type="PolkitImplicitAuthorization*"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string"
                c:identifier="polkit_implicit_authorization_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="implicit_authorization" transfer-ownership="none">
            <type name="ImplicitAuthorization"
                  c:type="PolkitImplicitAuthorization"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="Permission"
           c:symbol-prefix="permission"
           parent="Gio.Permission"
           glib:type-name="PolkitPermission"
           glib:get-type="polkit_permission_get_type">
      <doc xml:space="preserve">#PolkitPermission is a #GPermission implementation. It can be used
with e.g. #GtkLockButton. See the #GPermission documentation for
more information.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <constructor name="new_finish"
                   c:identifier="polkit_permission_new_finish"
                   throws="1">
        <doc xml:space="preserve">Finishes an operation started with polkit_permission_new().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GPermission or %NULL if @error is set.</doc>
          <type name="Gio.Permission" c:type="GPermission*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_permission_new().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_sync"
                   c:identifier="polkit_permission_new_sync"
                   throws="1">
        <doc xml:space="preserve">Creates a #GPermission instance for the PolicyKit action
@action_id.

This is a synchronous failable constructor. See
polkit_permission_new() for the asynchronous version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GPermission or %NULL if @error is set.</doc>
          <type name="Gio.Permission" c:type="GPermission*"/>
        </return-value>
        <parameters>
          <parameter name="action_id" transfer-ownership="none">
            <doc xml:space="preserve">The PolicyKit action identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subject"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #PolkitSubject or %NULL for the current process.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new" c:identifier="polkit_permission_new">
        <doc xml:space="preserve">Creates a #GPermission instance for the PolicyKit action
@action_id.

When the operation is finished, @callback will be invoked. You can
then call polkit_permission_new_finish() to get the result of the
operation.

This is a asynchronous failable constructor. See
polkit_permission_new_sync() for the synchronous version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action_id" transfer-ownership="none">
            <doc xml:space="preserve">The PolicyKit action identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subject"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #PolkitSubject or %NULL for the current process.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied.</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_action_id"
              c:identifier="polkit_permission_get_action_id">
        <doc xml:space="preserve">Gets the PolicyKit action identifier used for @permission.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @permission. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitPermission.</doc>
            <type name="Permission" c:type="PolkitPermission*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subject" c:identifier="polkit_permission_get_subject">
        <doc xml:space="preserve">Gets the subject used for @permission.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An object owned by @permission. Do not free.</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="permission" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitPermission.</doc>
            <type name="Permission" c:type="PolkitPermission*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="action-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The action identifier to use for the permission.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subject"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #PolkitSubject to use for the permission. If not set during
construction, it will be set to match the current process.</doc>
        <type name="Subject"/>
      </property>
    </class>
    <interface name="Subject"
               c:symbol-prefix="subject"
               glib:type-name="PolkitSubject"
               glib:get-type="polkit_subject_get_type"
               glib:type-struct="SubjectIface">
      <doc xml:space="preserve">#PolkitSubject is an abstract type for representing one or more
processes.</doc>
      <function name="from_string"
                c:identifier="polkit_subject_from_string"
                throws="1">
        <doc xml:space="preserve">Creates an object from @str that implements the #PolkitSubject
interface.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSubject or %NULL if @error is
set. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">A string obtained from polkit_subject_to_string().</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="equal" invoker="equal">
        <doc xml:space="preserve">Checks if @a and @b are equal, ie. represent the same subject.

This function can be used in e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="exists" invoker="exists">
        <doc xml:space="preserve">Asynchronously checks if @subject exists.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call polkit_subject_exists_finish() to get the
result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="2">
            <doc xml:space="preserve">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="exists_finish" invoker="exists_finish" throws="1">
        <doc xml:space="preserve">Finishes checking whether a subject exists.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="exists_sync" invoker="exists_sync" throws="1">
        <doc xml:space="preserve">Checks if @subject exists.

This is a synchronous blocking call - the calling thread is blocked
until a reply is received. See polkit_subject_exists() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hash" invoker="hash">
        <doc xml:space="preserve">Gets a hash code for @subject that can be used with e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A hash code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="to_string" invoker="to_string">
        <doc xml:space="preserve">Serializes @subject to a string that can be used in
polkit_subject_from_string().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string representing @subject. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="equal" c:identifier="polkit_subject_equal">
        <doc xml:space="preserve">Checks if @a and @b are equal, ie. represent the same subject.

This function can be used in e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="exists" c:identifier="polkit_subject_exists">
        <doc xml:space="preserve">Asynchronously checks if @subject exists.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call polkit_subject_exists_finish() to get the
result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="exists_finish"
              c:identifier="polkit_subject_exists_finish"
              throws="1">
        <doc xml:space="preserve">Finishes checking whether a subject exists.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="exists_sync"
              c:identifier="polkit_subject_exists_sync"
              throws="1">
        <doc xml:space="preserve">Checks if @subject exists.

This is a synchronous blocking call - the calling thread is blocked
until a reply is received. See polkit_subject_exists() for the
asynchronous version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="polkit_subject_hash">
        <doc xml:space="preserve">Gets a hash code for @subject that can be used with e.g. g_hash_table_new().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A hash code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="polkit_subject_to_string">
        <doc xml:space="preserve">Serializes @subject to a string that can be used in
polkit_subject_from_string().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string representing @subject. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSubject.</doc>
            <type name="Subject" c:type="PolkitSubject*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="SubjectIface"
            c:type="PolkitSubjectIface"
            glib:is-gtype-struct-for="Subject">
      <doc xml:space="preserve">An interface for subjects.</doc>
      <field name="parent_iface">
        <doc xml:space="preserve">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="hash">
        <callback name="hash">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">A hash code.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="subject" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="equal">
        <callback name="equal">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @a and @b are equal, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="a" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
            <parameter name="b" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="to_string">
        <callback name="to_string">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A string representing @subject. Free with g_free().</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="subject" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="exists">
        <callback name="exists">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="subject" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="3">
              <doc xml:space="preserve">The data to pass to @callback.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="exists_finish">
        <callback name="exists_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="subject" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
            <parameter name="res" transfer-ownership="none">
              <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="exists_sync">
        <callback name="exists_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the subject exists, %FALSE if not or @error is set.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="subject" transfer-ownership="none">
              <doc xml:space="preserve">A #PolkitSubject.</doc>
              <type name="Subject" c:type="PolkitSubject*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SystemBusName"
           c:symbol-prefix="system_bus_name"
           parent="GObject.Object"
           glib:type-name="PolkitSystemBusName"
           glib:get-type="polkit_system_bus_name_get_type"
           glib:type-struct="SystemBusNameClass">
      <doc xml:space="preserve">An object that represents a process owning a unique name on the system bus.</doc>
      <implements name="Subject"/>
      <function name="new" c:identifier="polkit_system_bus_name_new">
        <doc xml:space="preserve">Creates a new #PolkitSystemBusName for @name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSystemBusName. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A unique system bus name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_name" c:identifier="polkit_system_bus_name_get_name">
        <doc xml:space="preserve">Gets the unique system bus name for @system_bus_name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The unique system bus name for @system_bus_name. Do not
free, this string is owned by @system_bus_name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system_bus_name" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSystemBusName.</doc>
            <type name="SystemBusName" c:type="PolkitSystemBusName*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_process_sync"
              c:identifier="polkit_system_bus_name_get_process_sync"
              throws="1">
        <doc xml:space="preserve">Synchronously gets a #PolkitUnixProcess object for @system_bus_name
- the calling thread is blocked until a reply is received.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitUnixProcess object or %NULL if @error is set.</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system_bus_name" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSystemBusName.</doc>
            <type name="SystemBusName" c:type="PolkitSystemBusName*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_user_sync"
              c:identifier="polkit_system_bus_name_get_user_sync"
              throws="1">
        <doc xml:space="preserve">Synchronously gets a #PolkitUnixUser object for @system_bus_name;
the calling thread is blocked until a reply is received.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitUnixUser object or %NULL if @error is set.</doc>
          <type name="UnixUser" c:type="PolkitUnixUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system_bus_name" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSystemBusName.</doc>
            <type name="SystemBusName" c:type="PolkitSystemBusName*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="polkit_system_bus_name_set_name">
        <doc xml:space="preserve">Sets the unique system bus name for @system_bus_name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="system_bus_name" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitSystemBusName.</doc>
            <type name="SystemBusName" c:type="PolkitSystemBusName*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A unique system bus name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The unique name on the system message bus.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="SystemBusNameClass"
            c:type="PolkitSystemBusNameClass"
            disguised="1"
            glib:is-gtype-struct-for="SystemBusName">
    </record>
    <class name="TemporaryAuthorization"
           c:symbol-prefix="temporary_authorization"
           parent="GObject.Object"
           glib:type-name="PolkitTemporaryAuthorization"
           glib:get-type="polkit_temporary_authorization_get_type"
           glib:type-struct="TemporaryAuthorizationClass">
      <doc xml:space="preserve">Object used to describe a temporary authorization.</doc>
      <method name="get_action_id"
              c:identifier="polkit_temporary_authorization_get_action_id">
        <doc xml:space="preserve">Gets the action that @authorization is for.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @authorization. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authorization" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitTemporaryAuthorization.</doc>
            <type name="TemporaryAuthorization"
                  c:type="PolkitTemporaryAuthorization*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="polkit_temporary_authorization_get_id">
        <doc xml:space="preserve">Gets the opaque identifier for @authorization.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string owned by @authorization. Do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authorization" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitTemporaryAuthorization.</doc>
            <type name="TemporaryAuthorization"
                  c:type="PolkitTemporaryAuthorization*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subject"
              c:identifier="polkit_temporary_authorization_get_subject">
        <doc xml:space="preserve">Gets the subject that @authorization is for.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSubject, free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="authorization" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitTemporaryAuthorization.</doc>
            <type name="TemporaryAuthorization"
                  c:type="PolkitTemporaryAuthorization*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time_expires"
              c:identifier="polkit_temporary_authorization_get_time_expires">
        <doc xml:space="preserve">Gets the time when @authorization will expire.

(Note that the PolicyKit daemon is using monotonic time internally
so the returned value may change if system time changes.)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Seconds since the Epoch Jan 1. 1970, 0:00 UTC.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="authorization" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitTemporaryAuthorization.</doc>
            <type name="TemporaryAuthorization"
                  c:type="PolkitTemporaryAuthorization*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time_obtained"
              c:identifier="polkit_temporary_authorization_get_time_obtained">
        <doc xml:space="preserve">Gets the time when @authorization was obtained.

(Note that the PolicyKit daemon is using monotonic time internally
so the returned value may change if system time changes.)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Seconds since the Epoch Jan 1. 1970, 0:00 UTC.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="authorization" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitTemporaryAuthorization.</doc>
            <type name="TemporaryAuthorization"
                  c:type="PolkitTemporaryAuthorization*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="TemporaryAuthorizationClass"
            c:type="PolkitTemporaryAuthorizationClass"
            disguised="1"
            glib:is-gtype-struct-for="TemporaryAuthorization">
    </record>
    <class name="UnixGroup"
           c:symbol-prefix="unix_group"
           parent="GObject.Object"
           glib:type-name="PolkitUnixGroup"
           glib:get-type="polkit_unix_group_get_type"
           glib:type-struct="UnixGroupClass">
      <doc xml:space="preserve">An object representing a group identity on a UNIX system.</doc>
      <implements name="Identity"/>
      <function name="new" c:identifier="polkit_unix_group_new">
        <doc xml:space="preserve">Creates a new #PolkitUnixGroup object for @gid.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitUnixGroup object. Free with g_object_unref().</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="gid" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX group id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_name"
                c:identifier="polkit_unix_group_new_for_name"
                throws="1">
        <doc xml:space="preserve">Creates a new #PolkitUnixGroup object for a group with the group name
@name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">(allow-none): A #PolkitUnixGroup object or %NULL if @error
is set.</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX group name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_gid" c:identifier="polkit_unix_group_get_gid">
        <doc xml:space="preserve">Gets the UNIX group id for @group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A UNIX group id.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixGroup.</doc>
            <type name="UnixGroup" c:type="PolkitUnixGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_gid" c:identifier="polkit_unix_group_set_gid">
        <doc xml:space="preserve">Sets @gid for @group.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixGroup.</doc>
            <type name="UnixGroup" c:type="PolkitUnixGroup*"/>
          </instance-parameter>
          <parameter name="gid" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX group id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="gid"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX group id.</doc>
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="UnixGroupClass"
            c:type="PolkitUnixGroupClass"
            disguised="1"
            glib:is-gtype-struct-for="UnixGroup">
    </record>
    <class name="UnixNetgroup"
           c:symbol-prefix="unix_netgroup"
           parent="GObject.Object"
           glib:type-name="PolkitUnixNetgroup"
           glib:get-type="polkit_unix_netgroup_get_type"
           glib:type-struct="UnixNetgroupClass">
      <doc xml:space="preserve">An object representing a netgroup identity on a UNIX system.</doc>
      <implements name="Identity"/>
      <function name="new" c:identifier="polkit_unix_netgroup_new">
        <doc xml:space="preserve">Creates a new #PolkitUnixNetgroup object for @name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitUnixNetgroup object. Free with g_object_unref().</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A netgroup name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_name" c:identifier="polkit_unix_netgroup_get_name">
        <doc xml:space="preserve">Gets the netgroup name for @group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A netgroup name string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixNetgroup.</doc>
            <type name="UnixNetgroup" c:type="PolkitUnixNetgroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="polkit_unix_netgroup_set_name">
        <doc xml:space="preserve">Sets @name for @group.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixNetgroup.</doc>
            <type name="UnixNetgroup" c:type="PolkitUnixNetgroup*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A netgroup name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The NIS netgroup name.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="UnixNetgroupClass"
            c:type="PolkitUnixNetgroupClass"
            disguised="1"
            glib:is-gtype-struct-for="UnixNetgroup">
    </record>
    <class name="UnixProcess"
           c:symbol-prefix="unix_process"
           parent="GObject.Object"
           glib:type-name="PolkitUnixProcess"
           glib:get-type="polkit_unix_process_get_type"
           glib:type-struct="UnixProcessClass">
      <doc xml:space="preserve">An object for representing a UNIX process.

To uniquely identify processes, both the process id and the start
time of the process (a monotonic increasing value representing the
time since the kernel was started) is used.</doc>
      <implements name="Subject"/>
      <function name="new" c:identifier="polkit_unix_process_new">
        <doc xml:space="preserve">Creates a new #PolkitUnixProcess for @pid.

The uid and start time of the process will be looked up in using
e.g. the &lt;filename&gt;/proc&lt;/filename&gt; filesystem depending on the
platform in use.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSubject. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">The process id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_owner"
                c:identifier="polkit_unix_process_new_for_owner">
        <doc xml:space="preserve">Creates a new #PolkitUnixProcess object for @pid, @start_time and @uid.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSubject. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">The process id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="start_time" transfer-ownership="none">
            <doc xml:space="preserve">The start time for @pid or 0 to look it up in e.g. &lt;filename&gt;/proc&lt;/filename&gt;.</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. &lt;filename&gt;/proc&lt;/filename&gt;.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_full" c:identifier="polkit_unix_process_new_full">
        <doc xml:space="preserve">Creates a new #PolkitUnixProcess object for @pid and @start_time.

The uid of the process will be looked up in using e.g. the
&lt;filename&gt;/proc&lt;/filename&gt; filesystem depending on the platform in
use.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitSubject. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">The process id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="start_time" transfer-ownership="none">
            <doc xml:space="preserve">The start time for @pid.</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_owner"
              c:identifier="polkit_unix_process_get_owner"
              throws="1">
        <doc xml:space="preserve">(deprecated)</doc>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="polkit_unix_process_get_pid">
        <doc xml:space="preserve">Gets the process id for @process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The process id for @process.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_start_time"
              c:identifier="polkit_unix_process_get_start_time">
        <doc xml:space="preserve">Gets the start time of @process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The start time of @process.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="polkit_unix_process_get_uid">
        <doc xml:space="preserve">Gets the user id for @process. Note that this is the real user-id,
not the effective user-id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The user id for @process or -1 if unknown.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_pid" c:identifier="polkit_unix_process_set_pid">
        <doc xml:space="preserve">Sets @pid for @process.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">A process id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_start_time"
              c:identifier="polkit_unix_process_set_start_time">
        <doc xml:space="preserve">Set the start time of @process.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
          <parameter name="start_time" transfer-ownership="none">
            <doc xml:space="preserve">The start time for @pid.</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="polkit_unix_process_set_uid">
        <doc xml:space="preserve">Sets the (real, not effective) user id for @process.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="process" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixProcess.</doc>
            <type name="UnixProcess" c:type="PolkitUnixProcess*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">The user id to set for @process or -1 to unset it.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="pid"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX process id.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="start-time"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The start time of the process.</doc>
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="uid"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX user id of the process or -1 if unknown.

Note that this is the real user-id, not the effective user-id.</doc>
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="UnixProcessClass"
            c:type="PolkitUnixProcessClass"
            disguised="1"
            glib:is-gtype-struct-for="UnixProcess">
    </record>
    <class name="UnixSession"
           c:symbol-prefix="unix_session"
           parent="GObject.Object"
           glib:type-name="PolkitUnixSession"
           glib:get-type="polkit_unix_session_get_type"
           glib:type-struct="UnixSessionClass">
      <doc xml:space="preserve">An object that represents an user session.

The session id is an opaque string obtained from ConsoleKit.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <implements name="Subject"/>
      <function name="new" c:identifier="polkit_unix_session_new">
        <doc xml:space="preserve">Creates a new #PolkitUnixSession for @session_id.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitUnixSession. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="session_id" transfer-ownership="none">
            <doc xml:space="preserve">The session id.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_process"
                c:identifier="polkit_unix_session_new_for_process">
        <doc xml:space="preserve">Asynchronously creates a new #PolkitUnixSession object for the
process with process id @pid.

When the operation is finished, @callback will be invoked in the
&lt;link linkend="g-main-context-push-thread-default"&gt;thread-default
main loop&lt;/link&gt; of the thread you are calling this method
from. You can then call
polkit_unix_session_new_for_process_finish() to get the result of
the operation.

This method constructs the object asynchronously, for the synchronous and blocking version
use polkit_unix_session_new_for_process_sync().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">The process id of the process to get the session for.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</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">A #GAsyncReadyCallback to call when the request is satisfied</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">The data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_process_finish"
                c:identifier="polkit_unix_session_new_for_process_finish"
                throws="1">
        <doc xml:space="preserve">Finishes constructing a #PolkitSubject for a process id.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitUnixSession for the @pid passed to
    polkit_unix_session_new_for_process() or %NULL if @error is
    set. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_unix_session_new_for_process().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_process_sync"
                c:identifier="polkit_unix_session_new_for_process_sync"
                throws="1">
        <doc xml:space="preserve">Creates a new #PolkitUnixSession for the process with process id @pid.

This is a synchronous call - the calling thread is blocked until a
reply is received. For the asynchronous version, see
polkit_unix_session_new_for_process().</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitUnixSession for
@pid or %NULL if @error is set. Free with g_object_unref().</doc>
          <type name="Subject" c:type="PolkitSubject*"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve">The process id of the process to get the session for.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_session_id"
              c:identifier="polkit_unix_session_get_session_id">
        <doc xml:space="preserve">Gets the session id for @session.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The session id for @session. Do not free this string, it
is owned by @session.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixSession.</doc>
            <type name="UnixSession" c:type="PolkitUnixSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_session_id"
              c:identifier="polkit_unix_session_set_session_id">
        <doc xml:space="preserve">Sets the session id for @session to @session_id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixSession.</doc>
            <type name="UnixSession" c:type="PolkitUnixSession*"/>
          </instance-parameter>
          <parameter name="session_id" transfer-ownership="none">
            <doc xml:space="preserve">The session id.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="pid"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX process id to look up the session.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="session-id"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX session id.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="UnixSessionClass"
            c:type="PolkitUnixSessionClass"
            disguised="1"
            glib:is-gtype-struct-for="UnixSession">
    </record>
    <class name="UnixUser"
           c:symbol-prefix="unix_user"
           parent="GObject.Object"
           glib:type-name="PolkitUnixUser"
           glib:get-type="polkit_unix_user_get_type"
           glib:type-struct="UnixUserClass">
      <doc xml:space="preserve">An object representing a user identity on a UNIX system.</doc>
      <implements name="Identity"/>
      <function name="new" c:identifier="polkit_unix_user_new">
        <doc xml:space="preserve">Creates a new #PolkitUnixUser object for @uid.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #PolkitUnixUser object. Free with g_object_unref().</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX user id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_name"
                c:identifier="polkit_unix_user_new_for_name"
                throws="1">
        <doc xml:space="preserve">Creates a new #PolkitUnixUser object for a user with the user name
@name.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #PolkitUnixUser object or %NULL if @error is set.</doc>
          <type name="Identity" c:type="PolkitIdentity*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX user name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_name" c:identifier="polkit_unix_user_get_name">
        <doc xml:space="preserve">Get the user's name.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">User name string or %NULL if user uid not found.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixUser.</doc>
            <type name="UnixUser" c:type="PolkitUnixUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="polkit_unix_user_get_uid">
        <doc xml:space="preserve">Gets the UNIX user id for @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A UNIX user id.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixUser.</doc>
            <type name="UnixUser" c:type="PolkitUnixUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="polkit_unix_user_set_uid">
        <doc xml:space="preserve">Sets @uid for @user.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">A #PolkitUnixUser.</doc>
            <type name="UnixUser" c:type="PolkitUnixUser*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">A UNIX user id.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="uid"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The UNIX user id.</doc>
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="UnixUserClass"
            c:type="PolkitUnixUserClass"
            disguised="1"
            glib:is-gtype-struct-for="UnixUser">
    </record>
    <function name="error_quark"
              c:identifier="polkit_error_quark"
              moved-to="Error.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="identity_from_string"
              c:identifier="polkit_identity_from_string"
              moved-to="Identity.from_string"
              throws="1">
      <doc xml:space="preserve">Creates an object from @str that implements the #PolkitIdentity
interface.</doc>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve">A #PolkitIdentity or %NULL
if @error is set. Free with g_object_unref().</doc>
        <type name="Identity" c:type="PolkitIdentity*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">A string obtained from polkit_identity_to_string().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="implicit_authorization_from_string"
              c:identifier="polkit_implicit_authorization_from_string"
              moved-to="ImplicitAuthorization.from_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="out_implicit_authorization" transfer-ownership="none">
          <type name="ImplicitAuthorization"
                c:type="PolkitImplicitAuthorization*"/>
        </parameter>
      </parameters>
    </function>
    <function name="implicit_authorization_to_string"
              c:identifier="polkit_implicit_authorization_to_string"
              moved-to="ImplicitAuthorization.to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="implicit_authorization" transfer-ownership="none">
          <type name="ImplicitAuthorization"
                c:type="PolkitImplicitAuthorization"/>
        </parameter>
      </parameters>
    </function>
    <function name="subject_from_string"
              c:identifier="polkit_subject_from_string"
              moved-to="Subject.from_string"
              throws="1">
      <doc xml:space="preserve">Creates an object from @str that implements the #PolkitSubject
interface.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A #PolkitSubject or %NULL if @error is
set. Free with g_object_unref().</doc>
        <type name="Subject" c:type="PolkitSubject*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">A string obtained from polkit_subject_to_string().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
